首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取Netcdf子类别并转换为网格

读取Netcdf子类别并转换为网格
EN

Stack Overflow用户
提问于 2015-11-18 16:10:48
回答 2查看 821关注 0票数 1

我还在堆栈gis 1上发布了这个问题。从具有子类别的netcdf4数据中,我希望能够读取"Retrieval/fs"变量。我也想阅读它们,并转换为光栅网格,但似乎光栅不支持netcdf4。我很感谢你的建议。

代码语言:javascript
复制
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"’
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-30 14:55:18

以下是我提出的问题的答案。由于数据不是网格化的,所以我将检索lon和lat信息以及变量来创建数据。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2015-11-18 19:13:58

raster确实与ncdf4一起工作,您现在显示的是实际代码。file是一个字符向量。你不能用它来做names(file$var) (至少你不会得到“纬度”.“经度”“检索/飞秒”。因此,file可能是ncdf4对象(请参阅错误消息),而raster函数需要文件名(但不是url)。

如果您下载该文件,然后执行

代码语言:javascript
复制
library(raster)
x <- brick(filename, var="Retrieval/fs")

如果ncdf文件有固定的栅格数据,那么事情就会发生变化。

但是,它并不是这样,所以您不能直接将它作为光栅导入。相反,您可以从文件中获取lat和lon以及值,将它们视为点,然后对这些点进行栅格化(内插)以得到一个规则的栅格。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33784940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档