如何使用NOAA API查询给定坐标集的过去天气数据

use*_*941 9 python r noaa weather-api

我试图使用纬度和纵向坐标检索过去的NOAA数据.我对历史时间序列和温度,风速,云分数和降水等变量的年度总结感兴趣.

EX:2008-02-20 13:00 in(25.033972,121.564493)

我希望自动化一个能够在900,000多个地点实现这一目标的流程.有任何想法吗?理想情况下,此脚本将使用R或Python编写.

Way*_*ner 8

  1. 找出包含所需信息(或多个信息)的端点/数据集
  2. 将lat/long转换为邮政编码
  3. 此处找到邮政编码的正确站点
  4. 对于每个端点,请为每个位置提取数据.
  5. ???
  6. 利润???

如果您正在寻找某人为您编写代码,我(可以像许多其他人一样)可以自由工作.


dgk*_*hum 7

NOAA现在是其第二版的NOAA Web API。API很有用,因为您实质上可以查询Web服务,使用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)
Run Code Online (Sandbox Code Playgroud)

如果要去成千上万个地方,则可以考虑下载网格化数据,制作点的shapefile,然后按照此处的步骤将栅格值提取到属性表中。