【问题标题】:Where can I find historical raw weather data? [closed]我在哪里可以找到历史原始天气数据? [关闭]
【发布时间】:2011-03-13 04:10:26
【问题描述】:

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

【问题讨论】:

标签: database datasource weather weather-api


【解决方案1】:

在美国国家强风暴实验室Historical Weather Data Archive(注意:这已经退役)。

还有美国国家气候数据中心Geodata Portal

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

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

【讨论】:

【解决方案2】:

wunderground.com 有一个很好的 API。每天 500 次通话是免费的。

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

【讨论】:

  • 不包括历史数据!
  • @Rob 我不隶属于 wunderground.com 如果没有帮助,请投下答案。
  • 其实@iturki 我很抱歉,另一张海报错了,地下天气剂量有我能找到的唯一历史投影 API!
  • @wilsotc 27C 是 80F。任何来自加拿大的白痴都会知道:)。我敢打赌,单位设置错误。此外,您还可以在他们的报告中发现一个包含wind chill 的电台。当然,不能肯定地说,但 25F 完全在寒冷因素的范围内。发现会很有趣。但是,是的,我同意,WU 应该修复/报告这些差异。
  • 我们实际上一直在使用 wunderground...。但是,不幸的是,他们只是更改了使用条款,因为您只能在您自己托管气象站时使用 API...为什么我要研究替代方案。为 wunderground +1,因为它多年来一直很好地满足我们的需求。
【解决方案3】:

我发现自己也在问同样的问题,并将与未来的 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] 

上面的 sn-p 将为您提供 1979 年 1 月整个月份的时间序列(每三个小时)数据!如果您需要多个位置或所有月份,则可以轻松修改上述代码以适应。

到超级数据……甚至更多!

我不高兴停在那里。我希望将这些数据保存在 SQL 数据库中,这样我就可以轻松地对其进行切片和切块。执行所有这些操作的一个很好的选择是 python 预测模块。

披露:我将模块背后的代码放在一起。代码都是开源的——您可以修改它以更好地满足您的需求(也许您正在预测火星?)或为您的项目提取一些小sn-ps。

我的目标是能够从Rapid Refresh model 获取最新预报(如果您想了解当前天气的准确信息,最好的选择):

from forecasting import Model

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

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

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

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

【讨论】:

  • 我需要 2015 年全年的天气数据,而您的历史数据链接没有 - 它在 201410 停止。您有什么想法吗?
  • 来自第一个 sn-p 代码的所有数据都返回了 9.999E20 的缺失值。不管我选择什么年份,​​或者我选择什么经纬度指数。有什么想法吗?
  • 只是一个小提示:似乎他们现在只支持 https;例如使用 url = 'nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/197901/197901/…'
  • share my experience for future Googlers
  • 以上链接无法访问
猜你喜欢
  • 2010-09-21
  • 2018-01-02
  • 1970-01-01
  • 2012-09-13
  • 2014-10-12
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多