web-dev-qa-db-ja.com

過去の生気象データはどこで入手できますか?

私が行っているプロジェクトの過去の生の気象データはどこで見つけることができますか?私は主に温度が必要ですが、他の詳細はいいでしょう。このデータを見つけるのに非常に苦労しています。天気予報サイトをスクレイピングする必要は本当にありません。

75
Recursion

米国国立暴風雨研究所で 過去の気象データアーカイブ (注:これは廃止されました)。

また、米国国立気候データセンター Geodata Portal

米国国立気候データセンター 気候データオンライン

米国国立気候データセンター 最も人気のある製品

26

私もこれと同じ質問をしていることに気付いたので、今後のGoogle社員と経験を共有していきます。

データソース

生データが欲しかったのですが、たくさんあります... APIではできませんでした。ソースに直接向かう必要がありました。すべてのデータの最適なソースは、NCEPまたはNCDC NOMADSサーバーのいずれかであると思われました。

http://nomads.ncdc.noaa.gov/dods/ <-履歴データに適しています
http://nomads.ncep.noaa.gov/dods/ <-最近のデータに適しています

(注:コメント者は、httpではなくhttpsを使用する必要があると指摘しました。まだテストしていませんが、問題がある場合は試してください!)

データの量を知るために、彼らのデータは1979年までさかのぼります!カナダとアメリカを探しているなら、北米地域再分析データセットがおそらく最良の答えでしょう。

データを使用する

私は大きなpythonユーザーであり、 pydap または NetCDF のいずれかが使用するのに適したツールのように見えました。 pydapで遊んでいます。

遊牧民のウェブサイトから特定の場所の温度データをすべて取得する方法の例を示すには、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] 

上記のスニペットは、1979年1月全体の時系列(3時間ごと)のデータを取得します!複数の場所またはすべての月が必要な場合、上記のコードは簡単に変更できます。

スーパーデータへ...そしてそれ以上!

私はそこに立ち止まって満足していませんでした。このデータをSQLデータベースに入れて、簡単に切り分けられるようにしました。このすべてを行うための素晴らしいオプションは、python予測モジュールです。

開示:モジュールの背後にコードをまとめました。コードはすべてオープンソースです-ニーズに合わせて変更することができます(火星を予測しているのでしょうか?)か、プロジェクトの小さな断片を引き出します。

私の目標は、 Rapid Refreshモデル (現在の天気に関する正確な情報が必要な場合の最善策)から最新の予報を取得できるようにすることでした。

from forecasting import Model

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

そして、良い 'ole USAの地図にデータをプロットするには:

heat map of usa temperatures with data from sql

プロットのデータはSQLから直接取得され、クエリを簡単に変更して、必要な任意のタイプのデータを取得できます。

上記の例では不十分な場合は、ドキュメントを参照してください。ここでさらに例を見つけることができます。

56
sAlexander

wunderground.comには優れたAPIがあります。 1日あたり500コールまで無料です。

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

1
Lance Fisher