[英]Extracting matrix from NetCDF and converting it to raster - issues with rows - R
[英]Extracting data from a NetCDF file with package raster in R and finding the proper projection
我在这里下载了一个 NetCDF 文件并通过以下方式阅读:
library(raster)
b <- brick("precipitationintensity14rcp45modelsensemblemedianannual.nc")
然后我检查了proj4string
以查看投影以及如何提供坐标:
> proj4string(b)
[1] "+proj=lcc +lat_0=47.5 +lon_0=13.3299999237061 +lat_1=49 +lat_2=46 +x_0=400000 +y_0=400000 +datum=WGS84 +units=m +no_defs"
为了在某个点提取数据,我使用 WGS84 格式的 long/lat 坐标:
coords<-data.frame(lon=47.4, lat=11.5)
coordinates(coords)<-c("lon","lat")
然后我尝试通过以下方式提取数据:
> extract(b$X1981.07.15,coords)
[,1]
[1,] NA
这让我莫名其妙地感到困惑。 因为我期望在这个给定点有一个值。
为了调试我的代码,我尝试将光栅对象的坐标与我的坐标进行比较:
> coordinates(b$X1981.07.15)
x y
[1,] 111500 571500
[2,] 112500 571500
[3,] 113500 571500
现在我很困惑,因为提供的坐标与proj4string
格式(WGES84)不匹配。 你能帮我吗:
您需要将点转换为栅格的坐标参考系(而不是相反!)。 下面我将展示如何使用“terra”来替换“raster”包。
library(terra)
b <- rast("precipitationintensity14rcp45modelsensemblemedianannual.nc")
coords <- data.frame(lon=47.4, lat=11.5)
pts <- vect(coords, crs="+proj=longlat")
#crs(b) = "+proj=lcc +lat_0=47.5 +lon_0=13.3299999237061 ...
lccpts <- project(pts, crs(b))
extract(b$X1981.07.15, lccpts)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.