Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Wetterstationen in verschiedenen Städten mit gleicher Stationskennung

未关闭
#13 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
文档
描述清晰度
需要澄清
活跃度
停滞
技术栈
pandas, python
领域
api, documentation

调研方向

从 stationsIds 或 stationID 参数的 API 文档以及链接的 DWD stations lexicon 开始,重点关注重复标识符 10519 和此 issue 中的示例。将文档描述的查找行为与 lexicon 条目进行比较;当文档清楚地解释标识符的适用范围、重复情况以及在需要时如何选择特定站点时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

In der DWD API-Dokumentation heißt es

Beim Parameter stationsIds handelt es sich um die Stationskennungen. Die List der Stationskennungen kann z.B. hier eingesehen werden.

Im oben verlinkten Stationslexikon habe ich in die Tabelle geschaut und gemerkt, dass die Stationskennung 10519 doppelt für verschiedene Städte vorkommt, und zwar neben Königswinter-Heiderhof (mich von Interesse) auch in Karlsruhe-Durlach.

import pandas as pd

stations_lexikon = pd.read_html("https://www.dwd.de/DE/leistungen/klimadatendeutschland/statliste/statlex_html.html?view=nasPublication")[0]["Stationslexikon"]
print(stations_lexikon[stations_lexikon["Stations-kennung"] == "10519"][
    ["Stations_ID", "Stations-kennung", "Stationsname"]
])

#       Stations_ID Stations-kennung            Stationsname
# 8348        10519            10519  Karlsruhe-Durlach (Ph)
# 9203          603            10519  Königswinter-Heiderhof
# 9206          603            10519  Königswinter-Heiderhof

Ich bin nicht überrascht dass die gleiche Kennung für mehrere Stationen unterschiedlichen Typs in einer Stadt erhalte, aber dass die gleiche Stationskennung in verschiedenen Städten vorkommt hat mich überrascht, weil ich erwartet hatte, damit über die API eindeutig Wetterdaten für einen bestimmten Standort zu erhalten.

Wenn ich in der API die Stationskennung 10519 verwende, bekomme ich die Wetterdaten für Königswinter-Heiderho und nicht Karlsruhef, jedenfalls scheint es so wenn ich die Temperaturen vergleichen mit dem was ich in der DWD-App sehe. Das ist eigentlich auch was ich möchte.

Auf diese Duplizierung kam ich nur, weil ich in meinem Skript eine Funktion schreiben wollte, die von der stationID automatisch den Stationsnamen über das Stationslexikon herausholt, was jetzt aber doch nicht so eindeutig ist wie ich erhofft hatte.

Das kommt sogar recht häufig vor

station_name_counts = stations_lexikon.groupby("Stations-kennung")["Stationsname"].agg(
    [lambda namen: len(set(namen)), lambda namen: set(namen)]
)
station_name_counts.columns = ["counts", "Stationsnamen"]
station_name_counts = station_name_counts[station_name_counts["counts"] > 1]
station_name_counts.sort_values("counts", ascending=False)

#                   counts                                      Stationsnamen
# Stations-kennung                                                           
# 10791                  3   {Großer Arber, Obereschach, Grosser Falkenstein}
# 10639                  3  {Langen (BZ), Darmstadt (US-Air-Base), Lauda-K...
# 10156                  3     {Lübeck, Sankt Goarshausen, Lübeck-Blankensee}
# 10515                  3          {Heidelberg-Königstuhl, Koblenz, Bendorf}
# 10875                  3         {Hayingen (PH), Mühldorf, Obertaufkirchen}
# ...                  ...                                                ...
# 10424                  2                            {Leonberg/Württ., Werl}
# 10419                  2        {Ingelfingen (PH), Lüdenscheid (Flugplatz)}
# 10418                  2                        {Lüdenscheid, Hermuthausen}
# 10410                  2                        {Weinsberg, Essen-Bredeney}
# T362                   2              {Winterberg, Winterberg-Altastenberg}
#
# [402 rows x 2 columns]

War mir nicht sicher wen ich hier am besten zuerst anpingen soll und über welche Kanäle, aber dachte vielleicht kriege ich über ein Issue Antworten, vielleicht weiß jemand von euch mehr. Vermute die Stations-kennung ist vielleicht nur innnerhalb eines Stationstyps eindeutig. Z.B. ist 10519 in Karlsruhe-Durlach vom Typ PE (phänologische Beobachtungen) und die sind vielleicht eh nicht über die API erreichbar, bin mir aber nicht sicher, denn wüsste jetzt nicht wie ich Karlsruhe-Durlach 10519 über die API anpingen kann 🤷

Was von Seiten der API-Dokumentation gemacht werden muss ist möglicherweise nur ein Hinweis zum Kommentar zur stationID, vielleiht gibt es aber auch weitere Parameter mit denen man die die Stations einschränken kann?

Übrigens ist mir auch bewusst, dass die Stationslexikon-Tabelle nicht Teil der API ist, aber irgendwie gehört sie meines Erachtens nach zur Dokumentation und daher würde ich sie gerne verstehen.

主要语言
Python
星标
148
派生
11
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

bundesAPI/dwd-api 的其他 Issue

查看 bundesAPI/dwd-api 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。