我在哪里可以找到历史原始天气数据?

时间:2010-07-08 05:55:12

标签: database datasource weather weather-api

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

3 个答案:

答案 0 :(得分:56)

我发现自己也在问同样的问题,并将分享我未来Google员工的经验。

数据来源

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

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

(注意:一位评论者表示你现在必须使用https而不是http。我还没有测试过,但如果你遇到问题,试试吧!)

为了了解数据量,他们的数据一直追溯到1979年!如果您正在寻找加拿大和美国,北美地区再分析数据集可能是您的最佳答案。

使用数据

我是一个很棒的python用户,而pydapNetCDF似乎是一个很好的工具。没有特别的原因,我开始玩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:

的地图上绘制数据

heat map of usa temperatures with data from sql

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

如果上述示例不够,请查看文档,您可以在其中找到更多示例。

答案 1 :(得分:25)

在美国国家严重风暴实验室Historical Weather Data Archive(注意:此后已经退役)。

此外,美国国家气候数据中心Geodata Portal

美国国家气候数据中心Climate Data Online

美国国家气候数据中心Most Popular Products

答案 2 :(得分:0)

wunderground.com有一个很好的API。每天可以免费拨打500个电话。

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