Gdzie mogę znaleźć historyczne surowe dane pogodowe? [Zamknięte]

80

Gdzie mogę znaleźć historyczne surowe dane pogodowe dla projektu, który realizuję, koncentrując się na USA i Kanadzie. Głównie potrzebuję temperatur, ale inne szczegóły byłyby fajne. Bardzo trudno mi znaleźć te dane. Naprawdę nie chcę zeskrobać miejsca z pogodą.

rekurencja
źródło
4
Sprawdź prognozy.io , możesz uzyskać dane historyczne, a także prognozę na przyszłość z bardzo łatwym w użyciu API
iTech

Odpowiedzi:

59

Zadałem to samo pytanie i podzielę się swoim doświadczeniem z przyszłymi pracownikami Google.

Źródła danych

Chciałem surowych danych, a wiele z nich ... API nie wystarczy. Musiałem udać się bezpośrednio do źródła. Wydawało się, że najlepszym źródłem wszystkich tych danych były serwery NCEP lub NCDC NOMADS:

http://nomads.ncdc.noaa.gov/dods/ <- dobre dla danych historycznych
http://nomads.ncep.noaa.gov/dods/ <- dobre dla najnowszych danych

(Uwaga: komentator wskazał, że musisz teraz używać https zamiast http. Jeszcze tego nie testowałem, ale jeśli masz problemy, spróbuj tego!)

Aby dać wyobrażenie o ilości danych, ich dane sięgają 1979 roku! Jeśli szukasz Kanady i Stanów Zjednoczonych, zbiór danych North American Regional Reanalysis jest prawdopodobnie najlepszą odpowiedzią.

Korzystanie z danych

Jestem dużym użytkownikiem Pythona i albo pydap, albo NetCDF wydawały się dobrymi narzędziami w użyciu. Bez konkretnego powodu zacząłem bawić się pydapem.

Aby dać przykład, jak uzyskać wszystkie dane o temperaturze dla określonej lokalizacji z witryny nomadów, spróbuj wykonać następujące czynności w Pythonie:

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] 

Powyższy fragment zawiera szereg czasowy (co trzy godziny) danych z całego stycznia 1979 roku! Jeśli potrzebujesz wielu lokalizacji lub wszystkich miesięcy, powyższy kod można łatwo zmodyfikować w celu dostosowania.

Do super-danych ... i nie tylko!

Nie byłem szczęśliwy, że się tam zatrzymałem. Chciałem, aby te dane znajdowały się w bazie danych SQL, abym mógł je łatwo pokroić i pokroić w kostkę. Świetną opcją do tego wszystkiego jest moduł prognozowania języka Python.

Ujawnienie: ułożyłem kod za modułem. Cały kod jest open source - możesz go zmodyfikować, aby lepiej odpowiadał Twoim potrzebom (może prognozujesz dla Marsa?) Lub wyciągnąć małe fragmenty dla swojego projektu.

Moim celem było pobranie najnowszej prognozy z modelu Rapid Refresh (najlepszy zakład, jeśli chcesz uzyskać dokładne informacje o aktualnej pogodzie):

from forecasting import Model

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

a następnie wykreślić dane na mapie dobrych 'starych Stanów Zjednoczonych:

mapa cieplna temperatur w USA z danymi z sql

Dane do wykresu pochodzą bezpośrednio z SQL i można je łatwo zmodyfikować, aby uzyskać dowolny typ danych.

Jeśli powyższy przykład nie wystarczy, zajrzyj do dokumentacji, w której znajdziesz więcej przykładów.

sAlexander
źródło
1
Potrzebuję danych pogodowych z całego 2015 roku, których nie ma w Twoim linku do danych historycznych - kończy się na 201410. Masz dla mnie jakieś pomysły?
rjurney
Wszystkie dane pochodzące z pierwszego fragmentu kodu zwracają brakującą wartość 9.999E20. Bez względu na to, który rok wybieram i jaki indeks szerokości i długości geograficznej wybieram. Jakieś pomysły?
Matias Grioni,
Szybka wskazówka: wygląda na to, że teraz obsługują tylko protokół https; np. użyj url = ' nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/… '
Junier
2
share my experience for future Googlers<- ten przyszły pracownik Google dziękuje
inspectorG4dget
3
Powyższy link nie jest dostępny
Anagha
1

wunderground.com ma dobre API. Usługa jest bezpłatna w przypadku 500 połączeń dziennie.

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

Lance Fisher
źródło
47
Brak danych historycznych!
iTurki
1
@Rob Nie jestem powiązany z wunderground.com W dół zagłosuj na odpowiedź, jeśli nie jest to pomocne.
Lance Fisher
4
Właściwie @iturki, przepraszam, drugi plakat jest zły, pogoda pod ziemią ma jedyne historyczne API, jakie udało mi się znaleźć !!
Rob
1
@wilsotc 27C to 80F. Każdy idiota z Kanady wiedziałby o tym :). Założę się, że jednostki były źle ustawione. Mogłeś też właśnie odkryć stację, która w swoim raporcie uwzględniła chłód wiatru . Z pewnością nie mogę powiedzieć na pewno, ale 25F jest dobrze w zakresie współczynników chłodu. Byłoby ciekawie się dowiedzieć. Ale tak, zgadzam się, WU powinno naprawić / zgłosić te rozbieżności.
aidan.plenert.macdonald
1
Właściwie używaliśmy wunderground ... Niestety, zmienili jednak tylko swoje warunki użytkowania, ponieważ możesz korzystać z API tylko wtedy, gdy sam hostujesz stację pogodową ... dlatego szukam alternatywy. +1 za wunderground, ponieważ działał dobrze na nasze potrzeby przez wiele lat.
Anthony Griggs