Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将光栅名称从光栅堆栈导出到R中的NetCDF文件_R_Raster_Netcdf_Netcdf4 - Fatal编程技术网

将光栅名称从光栅堆栈导出到R中的NetCDF文件

将光栅名称从光栅堆栈导出到R中的NetCDF文件,r,raster,netcdf,netcdf4,R,Raster,Netcdf,Netcdf4,我正在尝试从netcdf文件中提取光栅图层名称,就像以前从光栅堆栈中写入的那样。将光栅堆栈导出到ncdf效果良好。例如: library(raster) library(ncdf4) library(RNetCDF) #Create some rasters (x3) r1<-raster(system.file("external/test.grd", package="raster")) r2<-r1*2 r3<-r2*3 #Stack them rstack<-

我正在尝试从netcdf文件中提取光栅图层名称,就像以前从光栅堆栈中写入的那样。将光栅堆栈导出到ncdf效果良好。例如:

library(raster)
library(ncdf4)
library(RNetCDF)

#Create some rasters (x3)
r1<-raster(system.file("external/test.grd", package="raster"))
r2<-r1*2
r3<-r2*3

#Stack them
rstack<-stack(r1,r2,r3)

#Give each raster layer a name - in this instance years 2014 to 2016
names(rstack)<-c("2014","2015","2016")

#Write out to netcdf format
writeRaster(rstack, "rstack.nc", overwrite=TRUE, format="CDF", varname="Temperature", varunit="degC", 
        longname="Temperature -- raster stack to netCDF", xname="X", yname="Y",zname="Year",
        zunit="numeric")
库(光栅)
图书馆(ncdf4)
图书馆(RNetCDF)
#创建一些光栅(x3)

r1我认为这与另一个问题不是同一个问题。NetCDF变量没有
dimnames
,因此无法按此处所需的方式往返光栅堆栈

但是,
Zdim
,是Z维度上的值,而不是名称,至少我希望您在编写之前
setZ(rstack,)
。我没有足够的经验使用
writerater
生成3D变量,但这似乎是可行的

library(raster)
library(ncdf4)
library(RNetCDF)

#Create some rasters (x3)
r1<-raster(system.file("external/test.grd", package="raster"))
r2<-r1*2
r3<-r2*3

#Stack them
rstack<-stack(r1,r2,r3)
rstack <- setZ(rstack, 2014:2016)
#names(rstack)<-c("2014","2015","2016")

#Write out to netcdf format
writeRaster(rstack, "rstack.nc", overwrite=TRUE, format="CDF",     varname="Temperature", varunit="degC", 
        longname="Temperature -- raster stack to netCDF", xname="X",   yname="Y",zname="Year",
        zunit="numeric")

## your ncdf4 code was not right, looked like RNetCDF (which is fine)
data.nc<- nc_open("rstack.nc")
Zdim = ncvar_get(data.nc,varid="Year")
#print(Zdim)  ## now it's numeric
##[1] 2014 2015 2016
库(光栅)
图书馆(ncdf4)
图书馆(RNetCDF)
#创建一些光栅(x3)

r1我认为这与另一个问题不是同一个问题。NetCDF变量没有
dimnames
,因此无法按此处所需的方式往返光栅堆栈

但是,
Zdim
,是Z维度上的值,而不是名称,至少我希望您在编写之前
setZ(rstack,)
。我没有足够的经验使用
writerater
生成3D变量,但这似乎是可行的

library(raster)
library(ncdf4)
library(RNetCDF)

#Create some rasters (x3)
r1<-raster(system.file("external/test.grd", package="raster"))
r2<-r1*2
r3<-r2*3

#Stack them
rstack<-stack(r1,r2,r3)
rstack <- setZ(rstack, 2014:2016)
#names(rstack)<-c("2014","2015","2016")

#Write out to netcdf format
writeRaster(rstack, "rstack.nc", overwrite=TRUE, format="CDF",     varname="Temperature", varunit="degC", 
        longname="Temperature -- raster stack to netCDF", xname="X",   yname="Y",zname="Year",
        zunit="numeric")

## your ncdf4 code was not right, looked like RNetCDF (which is fine)
data.nc<- nc_open("rstack.nc")
Zdim = ncvar_get(data.nc,varid="Year")
#print(Zdim)  ## now it's numeric
##[1] 2014 2015 2016
库(光栅)
图书馆(ncdf4)
图书馆(RNetCDF)
#创建一些光栅(x3)
r1
library(raster)
library(ncdf4)
library(RNetCDF)

#Create some rasters (x3)
r1<-raster(system.file("external/test.grd", package="raster"))
r2<-r1*2
r3<-r2*3

#Stack them
rstack<-stack(r1,r2,r3)
rstack <- setZ(rstack, 2014:2016)
#names(rstack)<-c("2014","2015","2016")

#Write out to netcdf format
writeRaster(rstack, "rstack.nc", overwrite=TRUE, format="CDF",     varname="Temperature", varunit="degC", 
        longname="Temperature -- raster stack to netCDF", xname="X",   yname="Y",zname="Year",
        zunit="numeric")

## your ncdf4 code was not right, looked like RNetCDF (which is fine)
data.nc<- nc_open("rstack.nc")
Zdim = ncvar_get(data.nc,varid="Year")
#print(Zdim)  ## now it's numeric
##[1] 2014 2015 2016