У меня есть 3-мерный массив данных о суточных осадках [lon, lat, 365] и 3-мерный файл с датой посева [lon, lat, 30]. Один посев на каждый год в ячейке сетки. У меня есть код (приведенный ниже), чтобы извлечь общее количество осадков за сезон (посев для сбора урожая) в каждой ячейке сетки.
НО, теперь я хочу извлечь значения осадков только с 30-60-го дня после даты посева на каждую ячейку сетки (т.е. посев = день 157 по x, у ячейки сетки по сезону Харифа, а день 305 - это дата посева по раби на х, у ячейка сетки). Результатом будет 3-мерный массив через 30 дней после даты посева [долгота, широта, 30 дней].
Мне нужны разные окна дней после посева, т.е. день 30-60, 80-100. Дата посева может быть разной в каждой ячейке сетки, поэтому день 30 после посева может быть разным в разных ячейках сетки, но продолжительность дней (день 30-60) должна быть одинаковой. Любая помощь в выборе определенной продолжительности дня в течение сезона на основе файлов посева (sdate) и урожая (hdate), пожалуйста, оцените
просто в качестве примера:
#precipitation aray
prec<-array(0,dim=nyear)
for (year in c(2:30)) #first year not, because growing season might have started in year 0
{
print(year+1980)
inputprec.file<-paste("E:/Paper_2018/Prec/","prec_",1980+year,".nc",sep="")
inputprec.file.previous<-paste("E:/Paper_2018/Prec/","prec_",1980+year-1,".nc",sep="")
nc<-nc_open(inputprec.file)
lons<-ncvar_get(nc,"longitude")
lats<-ncvar_get(nc,"latitude")
val<-ncvar_get(nc,"pr")
nc_close(nc)
x<-which(abs(lons-lon)<0.01)
y<-which(abs(lats-lat)<0.01)
#for kharif season harvest date (260) is > sowing (157)
if(hdate[year]>sdate[year])
{
prec[year]<-sum(val[x,y,sdate[year]:hdate[year]]) # season total
}else
{
#for Rabi sowing start in November and harvets occurs in March-April next year
prec[year]<-sum(val[x,y,1:hdate[year]]) # code to extract winter season total precipitation from sdate: hdate spans over two years (1982-1983)
# nc<-nc_open(inputprec.file.previous)
# val<-ncvar_get(nc,"pr")
# nc_close(nc)
prec[year]<-prec[year]+sum(val[x,y,sdate[year-1]:365])
}
}