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

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

90929 次浏览

在美国国家强风暴实验室 历史天气资料库(注意: 这已经退休)。

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

美国国家气候数据中心。

美国国家气候数据中心。

Wunderground.com 有很好的 API,每天可以免费打500个电话。

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

我发现自己也在问同样的问题,并将把我的经历分享给未来的谷歌员工。

数据来源

我想要原始数据,很多数据... API 是不行的。我需要直接去找源头。所有这些数据的最佳来源似乎是 NCEP 或 NCDC NOMADS 服务器:

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

(注意: 一个评论者指出您现在必须使用 https 而不是 http。我还没有测试过,但是如果你有问题,试试看!)

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

利用数据

我是一个巨大的 Python 用户,无论是 废话还是 网上社区发展基金似乎都是不错的工具。没什么特别的原因,我就开始玩弄那些废物。

要举例说明如何从 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月份的时间序列(每3小时)数据!如果您需要多个位置或所有的月份,以上代码将很容易修改以适应。

敬超级数据... 以及更多!

我不喜欢停在那里。我想在 SQL 数据库中使用这些数据,这样我就可以轻松地对它们进行切割。完成所有这些工作的一个很好的选择是 python 预测模块。

说明: 我把模块后面的代码放在一起。这些代码都是开源的——您可以修改它以更好地满足您的需求(也许您正在预测火星?)或者为你的项目提取一些小片段。

我的目标是能够从 快速刷新模型上获得最新的天气预报(如果你想获得当前天气的准确信息,这是你最好的选择) :

from forecasting import Model


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

然后把数据绘制在美国地图上:

heat map of usa temperatures with data from sql

该图的数据直接来自 SQL,可以很容易地修改查询,以获得所需的任何类型的数据。

如果上面的示例还不够,请查看文档,在那里您可以找到更多的示例。