[问题类型]:
程式咨询(我想用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循环 降雨指标 经纬度