[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
各位大大好,小弟我想要將台灣多年的降雨觀測資料去計算一些降雨指標,而我所用
的觀測資料將台灣範圍的經緯度切成60x81格,而我所要計算的降雨指標也需要一格一格
網格點去計算(無法所有網格點同時計算),因此必須寫迴圈,但這個降雨指標在單一格網
格點上一年會算出一個值,所以我會再將多年的值求平均,以代表這個網格點長時間平均
的降雨指標值,之後再將每格網格點的值放入一個矩陣中,以利最後我能畫圖。下面是我所寫的程式碼,希望大大們能提供指點,謝謝,降雨觀測資料可從這裡取得
:http://0rz.tw/JI056。
[程式範例]:
library(ncdf4)
library(climdex.pcic)
#讀檔.變數
memory.limit(size=50000)
TCCIP_file <- "C:\\Users\\TOM\\Desktop\\R(資料庫)\\TCCIP觀測資料
\\Daily\\pr_day_tccip5kmV2_1960-2015.nc"
TCCIP_data <- nc_open(TCCIP_file)
print(TCCIP_data)
obs_lon <- ncvar_get(TCCIP_data,"lon")
obs_lat <- ncvar_get(TCCIP_data,"lat")
obs_time <- ncvar_get(TCCIP_data,"time")
obs_time <- seq(as.POSIXct("1960-01-01"), as.POSIXct("2015-12-31"), by="day")
obs_pr <- ncvar_get(TCCIP_data,"pr")
#obs_pr <- ncvar_get(TCCIP_data,"pr",start=c(25,25,1),count=c(1,1,20454))
dim(obs_pr)
#降雨指標之計算
#5.rnnmm(Annual count of days when PRCP>1mm)
obs_pr.dates <- as.PCICt(obs_time,cal="365_day",origin="1960-01-01")
rnnmm.mean <- matrix(NA_real_,nrow=60,ncol=81)
for(i in c(1:60)){
for(j in c(1:81)){
obs_pr <- ncvar_get(TCCIP_data,"pr",start=c(i,j,1),count=c(1,1,20454))
#把要計算降雨指標的資料和時間放入
obs <- climdexInput.raw(tmax = NULL, tmin = NULL,prec=obs_pr,tmax.dates = NULL
,tmin.dates = NULL, prec.dates=obs_pr.dates,base.range=c(1960,2015),northern.h
emisphere=TRUE)
#計算資料的降雨指標值
rnnmm <- climdex.rnnmm(obs)
#將多年的降雨指標值取平均
rnnmm.mean <- mean(rnnmm)
}
}
View(rnnmm.mean)
[環境敘述]:
[關鍵字]:
for迴圈 降雨指標 經緯度