首页 > 解决方案 > 如何使用 R 从加拿大政府网站批量下载历史天气数据

问题描述

我正在尝试使用 R 从加拿大政府的国家天气和气候数据报告服务中批量下载气候数据。以下是通过他们的网站提供的说明,解释了如何使用 Cygwin 进行此操作,我能够做到这一点,但是,我'想将文件检索作为 R 中脚本的一部分包含在内,该脚本迭代抓取多个站点和时间范围的数据并处理它们等。我对 R 有点陌生,所以我在这个过程中遇到了麻烦.

自述文件.txt

基于 URL 的程序从气候网站自动批量下载数据 (http://www.climate.weather.gc.ca) 版本:2016-05-10

加拿大环境和气候变化

要在线阅读此文件,请访问:ftp://client_climate@ftp.tor.ec.gc.ca/Pub/Get_More_Data_Plus_de_donnees/

文件夹:Get_More_Data_Plus_de_donnees > Readme.txt

关于如何从加拿大环境和气候变化部的气候网站下载一个站的所有天气数据的说明:

国家档案馆中每日更新的气候站列表,包括其气候 ID、站 ID、WMO ID、TC ID 和坐标,可在以下文件夹中找到:
Get_More_Data_Plus_de_donnees > Station Inventory EN.csv

使用以下实用程序下载数据:
wget(GNU / Linux 操作系统)
Cygwin(Windows 操作系统)https://www.cygwin.com
Homebrew(OS X - Apple) http://brew.sh/

以 .csv 格式下载 1998 年至 2008 年 Yellowknife A 的所有可用每小时数据的示例

命令行:

在 `seq 1998 2008` 中获取年份;在 `seq 1 12` 中获取月份;执行 wget --content-disposition "http://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID=1706&Year =${year}&Month=${month}&Day=14&timeframe=1&submit= 下载+数据" ;done;done

WHERE:
年份 = 命令行中的更改值 (`seq 1998 2008`) 月 = 命令行中的更改值 (`seq 1 12`)
格式= [csv|xml]:格式输出
timeframe = 1:每小时数据
timeframe = 2:每日数据
timeframe = 3:对于月数据
Day:不使用“day”变量的值,可以是任意值 对于其他站,更改变量 stationID 的值 对于 XML 格式的数据,将变量格式的值更改为 xml in网址。

有关法语的信息,请将下载+数据更改为 ++T%C3%A9l%C3%A9charger+%0D%0Ades+don​​n%C3%A9e​​s,同时在 url 中将 _e 更改为 _f。

如有问题或疑虑,请联系我们的国家气候服务办公室:ec.services.climatiques-climate.services.ec@canada.ca

如上所述,Cygwin 命令是:

for year in `seq 2015 2018`;do for month in `seq 1 12`;do wget --content-disposition "http://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID=51459&Year=${year}&Month=${month}&Day=14&timeframe=1&submit=Download+Data" ;done;done

我知道download.file()有一个选项wget,正如 Cygwin 命令所使用的那样,但是,当我尝试以下操作时:

download.file("http://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID=51459&Year=$2018&Month=$12&Day=14&timeframe=2&submit=Download+Data","X:/folderX/example.csv", method = "wget")

我得到一个'wget' call had nonzero exit status错误。

不确定这是否与--content-dispositionCygwin 命令有关,或者我什至是否使用正确的功能来处理这个问题,因此非常感谢任何方向。

谢谢。

标签: rurldownload

解决方案



推荐阅读