Wo finde ich historische Rohwetterdaten? [geschlossen]

80

Wo finde ich historische Rohwetterdaten für ein Projekt, das ich mit Schwerpunkt auf den USA und Kanada durchführe? Ich brauche hauptsächlich Temperaturen, aber andere Details wären schön. Es fällt mir sehr schwer, diese Daten zu finden. Ich möchte wirklich nicht eine Wetterseite kratzen müssen.

Rekursion
quelle
4
Überprüfen Sie die Prognose.io , Sie können historische Daten sowie zukünftige Prognosen mit sehr einfach zu bedienender API erhalten
iTech

Antworten:

59

Ich stellte die gleiche Frage und werde meine Erfahrungen für zukünftige Googler teilen.

Datenquellen

Ich wollte Rohdaten und viele davon ... eine API würde das nicht tun. Ich musste direkt zur Quelle gehen. Die beste Quelle für all diese Daten schienen entweder die NCEP- oder NCDC-NOMADS-Server zu sein:

http://nomads.ncdc.noaa.gov/dods/ <- gut für historische Daten
http://nomads.ncep.noaa.gov/dods/ <- gut für aktuelle Daten

(Hinweis: Ein Kommentator gab an, dass Sie jetzt https anstelle von http verwenden müssen. Ich habe es noch nicht getestet, aber wenn Sie Probleme haben, versuchen Sie es!)

Um eine Vorstellung von der Datenmenge zu geben, reichen ihre Daten bis ins Jahr 1979 zurück! Wenn Sie nach Kanada und den USA suchen, ist der Datensatz für die regionale Reanalyse in Nordamerika wahrscheinlich die beste Antwort.

Daten verwenden

Ich bin ein großer Python-Benutzer, und entweder pydap oder NetCDF schienen gute Werkzeuge zu sein. Ohne besonderen Grund fing ich an, mit Pydap herumzuspielen.

Um ein Beispiel zu geben, wie Sie alle Temperaturdaten für einen bestimmten Ort von der Nomaden-Website abrufen können, versuchen Sie Folgendes in Python:

from pydap.client import open_url

# setup the connection
url = 'http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/narr-a_221_197901dd_hh00_000'
modelconn = open_url(url)
tmp2m = modelconn['tmp2m']

# grab the data
lat_index = 200    # you could tie this to tmp2m.lat[:]
lon_index = 200    # you could tie this to tmp2m.lon[:]
print tmp2m.array[:,lat_index,lon_index] 

Mit dem obigen Ausschnitt erhalten Sie eine Zeitreihe (alle drei Stunden) mit Daten für den gesamten Monat Januar 1979! Wenn Sie mehrere Standorte oder alle Monate benötigen, kann der obige Code problemlos geändert werden.

Zu Superdaten ... und darüber hinaus!

Ich war nicht glücklich, dort anzuhalten. Ich wollte diese Daten in einer SQL-Datenbank, damit ich sie leicht in Scheiben schneiden und würfeln kann. Eine großartige Option, um all dies zu tun, ist das Python-Prognosemodul.

Offenlegung: Ich habe den Code hinter dem Modul zusammengestellt. Der Code ist allesamt Open Source - Sie können ihn ändern, um Ihren Anforderungen besser zu entsprechen (vielleicht prognostizieren Sie für den Mars?) Oder kleine Schnipsel für Ihr Projekt herausholen.

Mein Ziel war es, die neueste Vorhersage aus dem Rapid Refresh-Modell abrufen zu können (Ihre beste Wahl, wenn Sie genaue Informationen zum aktuellen Wetter wünschen):

from forecasting import Model

rap = Model('rap')
rap.connect(database='weather', user='chef')
fields = ['tmp2m']
rap.transfer(fields)

und dann die Daten auf einer Karte der guten alten USA zu zeichnen:

Wärmekarte der USA-Temperaturen mit Daten von SQL

Die Daten für das Diagramm stammten direkt aus SQL und konnten die Abfrage leicht ändern, um alle gewünschten Datentypen zu erhalten.

Wenn das obige Beispiel nicht ausreicht, lesen Sie die Dokumentation, in der Sie weitere Beispiele finden.

sAlexander
quelle
1
Ich benötige Wetterdaten für das gesamte Jahr 2015, die Ihr Link für historische Daten nicht enthält - er endet bei 201410. Haben Sie Ideen für mich?
rjurney
Alle Daten, die aus dem ersten Codeausschnitt stammen, geben einen fehlenden Wert von 9,999E20 zurück. Egal welches Jahr ich wähle oder welchen Breiten- und Längenindex ich wähle. Irgendwelche Ideen?
Matias Grioni
Nur ein kurzer Tipp: Anscheinend unterstützen sie jetzt nur https. zB verwenden Sie url = ' nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/… '
Junier
2
share my experience for future Googlers<- dieser zukünftige Googler dankt Ihnen
inspectorG4dget
3
Der obige Link ist nicht zugänglich
Anagha
1

wunderground.com hat eine gute API. Es ist kostenlos für 500 Anrufe pro Tag.

http://www.wunderground.com/weather/api/

Lance Fisher
quelle
47
Historische Daten NICHT enthalten!
iTurki
1
@Rob Ich bin nicht mit wunderground.com verbunden. Stimmen Sie die Antwort ab, wenn sie nicht hilfreich ist.
Lance Fisher
4
Eigentlich @iturki entschuldige ich mich, das andere Poster ist falsch, Wetter unterirdische Dosis haben die einzige historische Projektions-API, die ich finden konnte !!
Rob
1
@ Wilsotc 27C ist 80F. Jeder Idiot aus Kanada hätte das gewusst :). Ich wette, die Einheiten wurden einfach falsch eingestellt. Sie hätten auch gerade eine Station entdecken können, die Wind Chill in ihren Bericht aufgenommen hat. Sicher kann ich nicht sicher sagen, aber 25F liegt gut im Bereich der Chill-Faktoren. Es wäre interessant, es herauszufinden. Aber ja, ich stimme zu, WU sollte diese Unstimmigkeiten beheben / melden.
aidan.plenert.macdonald
1
Wir haben tatsächlich wunderground verwendet ... Leider haben sie ihre Nutzungsbedingungen dahingehend geändert, dass Sie die API nur verwenden können, wenn Sie selbst eine Wetterstation hosten ... weshalb ich nach einer Alternative suche. +1 für wunderground, da es viele Jahre lang gut für unsere Bedürfnisse funktioniert hat.
Anthony Griggs