我还在堆栈gis 1上发布了这个问题。从具有子类别的netcdf4数据中,我希望能够读取"Retrieval/fs"变量。我也想阅读它们,并转换为光栅网格,但似乎光栅不支持netcdf4。我很感谢你的建议。
library(ncdf4)
library(raster)
file <- "http://140906_B7101Ar_150909171225s.nc4"
names(file$var)
"latitude" ... "longitude"... "Retrieval/fs"
lat <- raster(file, varname="latitude")
lon <- raster(file, varname="longitude")
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘raster’ for signature ‘"ncdf4"’发布于 2015-12-30 14:55:18
以下是我提出的问题的答案。由于数据不是网格化的,所以我将检索lon和lat信息以及变量来创建数据。
fs <- ncvar_get(ncfile, "Retrieval/fs")
xlon <- ncvar_get(ncfile, "longitude")
xlat <- ncvar_get(ncfile, "latitude")
d <- data.frame( as.vector(xlon),as.vector(xlat), as.vector(fs))# create a dataframe
coordinates(d) <- c("xlon","xlat")
proj4string(d) <- CRS("+proj=longlat")
spoint <- SpatialPoints(coords = d) #create a spatial point object发布于 2015-11-18 19:13:58
raster确实与ncdf4一起工作,您现在显示的是实际代码。file是一个字符向量。你不能用它来做names(file$var) (至少你不会得到“纬度”.“经度”“检索/飞秒”。因此,file可能是ncdf4对象(请参阅错误消息),而raster函数需要文件名(但不是url)。
如果您下载该文件,然后执行
library(raster)
x <- brick(filename, var="Retrieval/fs")如果ncdf文件有固定的栅格数据,那么事情就会发生变化。
但是,它并不是这样,所以您不能直接将它作为光栅导入。相反,您可以从文件中获取lat和lon以及值,将它们视为点,然后对这些点进行栅格化(内插)以得到一个规则的栅格。
https://stackoverflow.com/questions/33784940
复制相似问题