Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Wetterstationen in verschiedenen Städten mit gleicher Stationskennung

Aperta
#13 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Documentazione
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
pandas, python
Ambito
api, documentation

Direzione di ricerca

Inizia dalla documentazione dell’API per il parametro stationsIds o stationID e dal lessico delle stazioni DWD collegato, concentrandoti sull’identificatore duplicato 10519 e sugli esempi riportati in questa issue. Confronta il comportamento di ricerca documentato con le voci del lessico; il lavoro è completato quando la documentazione spiega chiaramente l’ambito dell’identificatore, i casi di duplicazione e come selezionare una stazione specifica quando necessario.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
148
Fork
11
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di bundesAPI/dwd-api

Tutte le issue di bundesAPI/dwd-api

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.