来自 NOAA 的历史天气数据
Posted
技术标签:
【中文标题】来自 NOAA 的历史天气数据【英文标题】:Historical weather data from NOAA 【发布时间】:2013-11-27 12:36:54 【问题描述】:我正在从事一个数据挖掘项目,我想收集历史天气数据。我可以通过他们在http://www.ncdc.noaa.gov/cdo-web/search 提供的网络界面获取历史数据。但我想通过 API 以编程方式访问这些数据。根据我在 *** 上阅读的内容,这些数据应该是公共领域的,但我唯一能找到它的地方是 Wunderground 等非免费服务。如何免费访问这些数据?
【问题讨论】:
How to use the NOAA API to query past weather data for a given set of coordinates的可能重复 好问题。如果没有 api,我只是依靠(尊重)抓取策略。 NOAA 数据是一个很好的资源,但需要一些 QA/QC。查看与this article相关的this resource 另一种选择是为 GHCN-D 使用 ftp page 【参考方案1】:国家气候数据中心提供的所有服务API列表:http://www.ncdc.noaa.gov/cdo-web/webservices
支持您列出的搜索页面的 API 的完整文档:http://www.ncdc.noaa.gov/cdo-web/webservices/v2
需要令牌,并且每天限制为 1000 个请求。如果您出于正当原因需要提高限制,请联系http://www.ncdc.noaa.gov/customer-support。
另外,对于批量下载,请使用 ftp:ftp://ftp.ncdc.noaa.gov/pub/data/
【讨论】:
我遇到了令牌问题,这是我的 curl 请求:curl -H "Authorization: <token>" http://www.ncdc.noaa.gov/cdo-web/api/v2/datasets
其中<token>
是通过电子邮件发送给我的令牌,但它返回错误"status" : "400", "message" : "Token parameter is required."
跨度>
我只找到了curl()
这样的方法-> curl_setopt($init, CURLOPT_URL, 'http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&startdate='.$startDate.'&enddate='.$endDate.'&datatypeid=TMAX&datatypeid=TMIN&stationid=GHCND:'.$city_id.'&limit='.$limit);//'http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&stationid=GHCND:ZI000067964&limit=31'); curl_setopt($init, CURLOPT_HEADER, false); curl_setopt($init, CURLOPT_HTTPHEADER, array('token:<token here>')); curl_setopt($init, CURLOPT_RETURNTRANSFER, 1);
azrosen92: curl -H "token: <token>" http://www.ncdc.noaa.gov/cdo-web/api/v2/datasets
API 已更新,文档位于:ncei.noaa.gov/support/…(是的,尽管版本号较低,但这是一个更新)以上是关于来自 NOAA 的历史天气数据的主要内容,如果未能解决你的问题,请参考以下文章