Я пытаюсь загрузить климатические данные в большом количестве из национальной службы отчетности о погоде и климате правительства Канады с использованием R. Вот инструкции, предоставленные на их веб-сайте, которые объясняют, как это сделать с помощью Cygwin, которыйЯ мог сделать, однако, я хотел бы включить извлечение файла как часть скрипта в R, который выполняет итерацию сбора данных для нескольких станций и временных периодов и обрабатывает их, и т. Д. Я несколько новичок в R,поэтому у меня возникли проблемы с этим процессом.
Readme.txt
Процедура на основе URL для автоматической загрузки данных с веб-сайта Climate * (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
Инструкции о том, как загрузить все погодные данные для одной станции из Окружающей среды и климата Change Канадский веб-сайт по климату:
Ежедневно обновляемый список климатических станций в Национальном архиве, включая их климатический идентификатор, идентификатор станции, идентификатор ВМО, идентификатор TC и координаты, можно найти в следующей папке:
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/
Пример загрузки всех доступных почасовых данных для Yellowknife A, с 1998 по 2008 год, в формате .csv
Командная строка:
за год в `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 = Download + Data "; done; done
WHERE:
year = изменить значения в командной строке (` seq 1998 2008`)month = изменить значения в командной строке (`seq 1 12`)
format = [csv | xml]: формат вывода
timeframe = 1
: для часовых данных
timeframe = 2
: для суточных данных
timeframe = 3
: для месячных данных
Day: значениеПеременная «день» не используется и может быть произвольным значением. Для другой станции измените значение переменной stationID. Для данных в формате XML измените значение формата переменной на xml в URL.
Для получения информации на французском языке измените Загрузить + Данные с ++ T% C3% A9l% C3% A9charger +% 0D% 0Ades + donn% C3% A9es, также измените _e с _f в URL.
По вопросам или проблемам обращайтесь в наш национальный офис климатического обслуживания по адресу: 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-disposition
из команды Cygwin или я даже подхожу к этому с правильнымфункция или нет, поэтому любое направление очень ценится.
Спасибо.