我在哪里可以找到我正在进行的项目的历史原始天气数据,重点是美国和加拿大。我主要需要温度,但其他细节会很好。我很难找到这些数据。我真的不想要刮一个天气现场。
答案 0 :(得分:56)
我发现自己也在问同样的问题,并将分享我未来Google员工的经验。
我想要原始数据,而且很多...... API不会这样做。我需要直接前往源头。所有这些数据的最佳来源似乎是NCEP或NCDC NOMADS服务器:
http://nomads.ncdc.noaa.gov/dods/< - 适用于历史数据
http://nomads.ncep.noaa.gov/dods/< - 最近的数据
(注意:一位评论者表示你现在必须使用https而不是http。我还没有测试过,但如果你遇到问题,试试吧!)
为了了解数据量,他们的数据一直追溯到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 model获取最新预测(如果您想获得有关当前天气的准确信息,最好的选择):
from forecasting import Model
rap = Model('rap')
rap.connect(database='weather', user='chef')
fields = ['tmp2m']
rap.transfer(fields)
然后在好的'ole USA:
的地图上绘制数据
该图的数据直接来自SQL,可以轻松修改查询以获取所需的任何类型的数据。
如果上述示例不够,请查看文档,您可以在其中找到更多示例。
答案 1 :(得分:25)
在美国国家严重风暴实验室Historical Weather Data Archive(注意:此后已经退役)。
此外,美国国家气候数据中心Geodata Portal。
美国国家气候数据中心Climate Data Online。
美国国家气候数据中心Most Popular Products。
答案 2 :(得分:0)
wunderground.com有一个很好的API。每天可以免费拨打500个电话。