在哪里可以找到历史原始天气数据?[关闭]


80

在哪里可以找到我正在做的项目的历史原始天气数据,重点放在美国和加拿大。我主要需要温度,但其他细节会很好。我很难找到这些数据。我真的不想刮刮一个天气站点。


4
检查Forecast.io,您可以使用非常易于使用的API获取历史数据以及未来的预测
iTech 2014年

Answers:



59

我发现自己也问了同样的问题,并将与以后的Google员工分享我的经验。

数据源

我想要原始数据,而且很多……API不会。我需要直接前往消息来源。所有这些数据的最佳来源似乎是NCEP或NCDC NOMADS服务器:

http://nomads.ncdc.noaa.gov/dods/ <-适用于历史数据
http://nomads.ncep.noaa.gov/dods/ <-适用于近期数据

(注意:评论者指出您现在必须使用https而不是http。我尚未对其进行测试,但是如果遇到问题,请尝试!)

为了让您对数据量有所了解,他们的数据可以追溯到1979年!如果您要查找加拿大和美国,则“北美区域再分析”数据集可能是您的最佳答案。

使用数据

我是python的大用户,而pydapNetCDF似乎都是可以使用的好工具。出于特殊原因,我开始玩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的数据的美国温度热图

绘图的数据直接来自SQL,可以轻松地修改查询以获取所需的任何类型的数据。

如果以上示例还不够,请查看文档,在此处可以找到更多示例。


1
我需要2015年全年的天气数据,而您所需要的历史数据链接却没有,它的链接在201410年停止。
rjurney16年

来自第一个代码段的所有数据都返回缺失值9.999E20。无论我选择哪一年或选择什么经纬度指数。有任何想法吗?
Matias Grioni'1

提示:似乎他们现在仅支持https;例如,使用URL = ' nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/... '
Junier

2
share my experience for future Googlers<-这位未来的Googler谢谢您
inspectorG4dget

3
上面的链接不可访问
-Anagha

1

wunderground.com具有良好的API。每天免费拨打500个电话。

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


47
不包括历史数据!
iTurki

1
@Rob我不隶属于wunderground.com。如果对您没有帮助,请投票否决答案。
Lance Fisher

4
其实@iturki我很抱歉,其他海报是错误的,地下气象是我能找到的唯一历史投影API!
罗布

1
@wilsotc 27C是80F。任何来自加拿大的白痴都会知道:)。我敢打赌,单位设置错了。另外,您可能还刚刚发现了一个在其报告中包括风寒的站点。当然,不能肯定地说,但是25F恰好在寒冷因素的范围内。找出来会很有趣。但是,是的,我同意,WU应该纠正/报告这些差异。
aidan.plenert.macdonald '18

1
我们实际上一直在使用wunderground...。但是,不幸的是,他们只是更改了使用条款,因为只有在您自己托管气象站的情况下才可以使用API​​ ...这就是为什么我正在研究替代方案。+1为奇观,因为它可以很好地满足我们多年的需求。
Anthony Griggs
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.