在哪里可以找到我正在做的项目的历史原始天气数据,重点放在美国和加拿大。我主要需要温度,但其他细节会很好。我很难找到这些数据。我真的不想刮刮一个天气站点。
Answers:
我发现自己也问了同样的问题,并将与以后的Google员工分享我的经验。
我想要原始数据,而且很多……API不会。我需要直接前往消息来源。所有这些数据的最佳来源似乎是NCEP或NCDC NOMADS服务器:
http://nomads.ncdc.noaa.gov/dods/ <-适用于历史数据
http://nomads.ncep.noaa.gov/dods/ <-适用于近期数据
(注意:评论者指出您现在必须使用https而不是http。我尚未对其进行测试,但是如果遇到问题,请尝试!)
为了让您对数据量有所了解,他们的数据可以追溯到1979年!如果您要查找加拿大和美国,则“北美区域再分析”数据集可能是您的最佳答案。
我是python的大用户,而pydap或NetCDF似乎都是可以使用的好工具。出于特殊原因,我开始玩pydap。
举例说明如何从nomads网站获取特定位置的所有温度数据,请在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月整个月的时间序列(每三个小时)!如果您需要多个地点或所有月份,则可以轻松修改上面的代码以适应需要。
我不高兴在这里停下来。我希望将这些数据存储在SQL数据库中,以便可以轻松对其进行切片和切块。做所有这些工作的一个很好的选择是python Forecasting模块。
披露:我将代码汇总在模块后面。该代码都是开放源代码的-您可以对其进行修改以更好地满足您的需求(也许您正在预测火星吗?)或为您的项目提取一些摘要。
我的目标是能够从Rapid Refresh模型中获取最新的预报(如果您想要有关当前天气的准确信息,最好的选择):
from forecasting import Model
rap = Model('rap')
rap.connect(database='weather', user='chef')
fields = ['tmp2m']
rap.transfer(fields)
然后在“好极了”美国地图上绘制数据:
绘图的数据直接来自SQL,可以轻松地修改查询以获取所需的任何类型的数据。
如果以上示例还不够,请查看文档,在此处可以找到更多示例。
share my experience for future Googlers
<-这位未来的Googler谢谢您
wunderground.com具有良好的API。每天免费拨打500个电话。