Так что у меня этот NetCDF файл:Как я могу подмножить данные из файла netcdf?
1] "file test.nc has 2 dimensions:"
[1] "Time Size: 216"
[1] "ID Size: 36"
[1] "------------------------"
[1] "file test.nc has 1 variables:"
[1] "float Q[ID,Time] Longname:Q Missval:1e+30"
Все, что я хочу сделать, это дать ему один идентификатор (скажем, 100300). И прочитать определенный период времени (скажем, от 4 до 20) временного шага
library(ncdf)
ncfile<-nc<-open.ncdf("test.nc")
varcomid <- get.var.ncdf(ncfile,varid = "ID")
vartime <- get.var.ncdf(ncfile,varid = "Time")
ndims = ncfile$var[['Q']]$ndims
varsize = ncfile$var[['Q']]$varsize
comid<-which(ncfile$dim$ID$vals == 100300)
start=c(comid,4)
count = c(varsize[1], varsize[2])
dat<-get.var.ncdf(nc=ncfile,varid="Q",start,count)
Я не в состоянии закончить логику конечного временного шага.
Кроме того, я получаю эту ошибку: функция C R_nc_get_vara_double возвратил ошибку
Диагностика с помощью комментарии
start=c(comid,4)
count = c(varsize[2], varsize[1])
dat<-get.var.ncdf(nc=ncfile,varid="Q",start,count)
Error in R_nc_get_vara_double: NetCDF: Start+count exceeds dimension bound
Var: Q Ndims: 2 Start: 3,27Count: 36,216Error in get.var.ncdf(nc = ncfile, varid = "Q", start, count) :
C function R_nc_get_vara_double returned error
Если не это будет 'начать = c (4, comid) 'и' count = c (varsize [2], varsize [1]) '? Первое измерение - «ID», а второе - «Время». –
Я не знал, что это было наоборот, чем кажется. новичок в netcdf формате ... Позвольте мне попробовать. Кроме того, как включить логику конечного времени. В принципе, я хочу включить время между 4:25 (скажем) – maximusdooku
Вы не можете сказать время окончания. Конечное время рассчитывается в соответствии с началом и счетом: 'end = start + count'. –