如何使用NOAA API查询给定坐标的历史天气数据

10

我想使用纬度和经度坐标检索过去的NOAA数据。我对历史时间序列和温度、风速、云量和降水等变量的年度摘要都很感兴趣。

例如:在(25.033972,121.564493)的2008-02-20 13:00时

我希望自动化这个过程,为900,000多个位置实现此目标。有什么好的建议吗?理想情况下,这个脚本将使用R或Python编写。


http://stackoverflow.com/questions/2502340/noaa-web-service-for-current-weather - Andrew
https://code.google.com/p/python-weather-api/wiki/Examples#NOAA - Andrew
https://bitbucket.org/btbytes/python-weather-api - Andrew
2个回答

12
  1. 找到包含所需信息的终端/数据集(一个或多个)
  2. 将纬度/经度转换为邮政编码
  3. 查找该邮政编码的正确站点在这里
  4. 对于每个终端,获取每个位置的数据。
  5. ???
  6. 利润???

9

美国国家海洋和大气管理局现在推出了第二版的 NOAA 网络 API。API 非常有用,因为您可以使用 requests 和 Python 的 dict 参数查询网络服务以描述您想要的内容。@Cravden 制作了一个很好的类,可以帮助您开始使用 GitHub。NOAA 有详细文档描述您可以获取和如何获取(您需要提供电子邮件以获取访问令牌)。其他 气候数据聚合器也可以做到这种事情。
像这样简单的东西可能会让您入门:

import requests


def get_noaa_data(url, data_type, header):

    r = requests.get(url, data_type, headers=header)
    print(r)


if __name__ == '__main__':

    token = 'gotowebsitetorequesttoken'
    creds = dict(token=token)
    dtype = 'dataset'
    url = 'https://www.ncdc.noaa.gov/cdo-web/api/v2/'

    get_noaa_data(url, dtype, creds)

如果你需要处理成千上万个地点,可以考虑下载格网数据,制作一个点的shapefile文件,然后提取栅格值到属性表中,方法可以参考这里的做法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接