我仍然在我要求的同一个项目中工作
this question
.
library(raster)
library(ncdf4)
library(ncdf4.helpers)
library(rworldxtra)
data("countriesHigh")
我拥有的NETCdf文件适用于全世界,但我只使用南美洲
countiresHigh县
从
rworldxtra公司
NONA <- countriesHigh[!is.na(countriesHigh@data$GEO3),]
## get shapefile of South America
SA <- NONA[NONA@data$GEO3 == "South America",]
然后使用下面的代码裁剪我需要的每一层。
##Open conection to the layer
nc <- nc_open("C:/Users/mean_temperature-15000BP-10000BP.nc")
现在我开始循环
for(i in 1:10){
message(paste("reading layer", i))
# Read the stack for year i
r <- stack("C:/Users/mean_temperaturemean_temperature-15000BP-10000BP.nc", varname = age[i])
#Change the extent to the correct one
extent(r) <- c(-180,180,-90,90)
#Crop it to South America
r <- crop(r, SA)
gc()
}
问题1:我可以在读取堆栈之前裁剪netcdf一次以加快这个过程吗?
我已经看过了
here
,
here
here
,没有找到答案。
问题2:如果我可以裁剪它,那么如何定义NETCDF文件只包含正纬度和正经度的范围
这个问题
,地图的定义范围不是最常见的,但是我将裁剪基于具有更典型的形状文件的范围
c(-180,180,-90,90)