0

ここでhttp://www.bom.gov.au/climate/data/変電所番号を入力できます、たとえば 009572; 変数 (Temperature など) とそのタイプ (Maximum など) を選択します。「データを取得」をクリックすると、「すべての年のデータ」リンクのあるページに移動します。それをクリックすると、zip ファイルが得られます。この質問は承知していますが、zip ファイルへの直接リンクはありません。R を使用して、オーストラリア気象局の Web サイトから気象データの抽出を自動化するために何かできることはありますか?

4

4 に答える 4

3

すぐにダウンロードするために行ったコードを次に示します。これにより、p_c の問題も解決されます。必要に応じて機能を改善して投稿できます。

#daily code = 136
#monthy code = 139

bomdata<- function(station,code){
for(i in 1: length(station)){
p.url<-paste("http://www.bom.gov.au/jsp/ncc/cdio/weatherData/av?p_stn_num=",station[i],"&p_display_type=availableYears&p_nccObsCode=",code,sep ="")
download.file(p.url,"test.txt")
filelist <- list.files(pattern = ".txt")
foo<- file(filelist,"r")
text<- suppressWarnings(readLines(foo))
close(foo)
l<- regexpr(":",text[1])
m<- unlist(gregexpr(",", text[1], perl = TRUE))
pc<- substr(text[1],l[[1]]+1,l[[1]]+(m[2]-(l[[1]]+1)))
url<-paste("http://www.bom.gov.au/jsp/ncc/cdio/weatherData/av?p_display_type=dailyZippedDataFile&p_stn_num=",station[i],"&p_c=",pc,"&p_nccObsCode=",code,"&p_startYear=2013", sep ="")
suppressWarnings(download.file(url,paste(station[i],".zip",sep= ""), mode = "wb"))
unlink("test.txt")
 }
}

bomdata(073137,136)
于 2013-12-23T05:52:10.620 に答える
0

download.file() でこれを行う方法はまだわかりませんが、Chrome の「ダウンロードする前に各ファイルを保存する場所を確認する」のチェックが外されている場合、次のようにほぼ機能します。

system(paste('"C:/Documents and Settings/UserName/Local Settings/Application Data/Google/Chrome/Application/chrome.exe"',
         '-url http://www.bom.gov.au/jsp/ncc/cdio/weatherData/av?p_display_type=dailyZippedDataFile&p_stn_num=009572&p_c=-18465084&p_nccObsCode=136'), wait = FALSE)

p_c=-18465084 が何を意味し、ステーションごとにどのように変化するかを知っていれば、p_c=-18465084 を使用してさまざまなステーション番号をループすることができます。

于 2013-10-10T15:18:24.167 に答える