我正在处理空间多边形数据框(SPDF)数据集。该数据集包含一个月度气候数据的时间序列。我的目标是将SPDF转换为1000米分辨率的栅格堆叠,以进行进一步的统计分析。我已经编写了R代码,但它非常缓慢,转换一个列需要很长时间。如果您有任何建议可以使其更快,我将不胜感激。
hru<-readOGR("E:\\Tade\\HRU\\ubn_merge.shp",layer="ubn_merge") # spatial polygon
spdf<-merge(hru,spdf.2000,by.x="HRU",by.y="HRU",all.x=T,sort=F) # spdf nrow=565 ncol=375
# convert sp to raster
hru.ras<-raster(hru,resolution=1000) # raster hru shape to 1km
for (i in 1:length(spdf){
et.ras<-rasterize(spdf,hru.ras,field=paste("m",1,sep="")) # rasterize
et.stack<-stack(et.stack,et.ras)
}
谢谢
rasterize()
函数来完成此任务,你将会面对许多问题。通过我的测试,直接使用gdal_rasterize
工具将矢量转换为栅格更易管理。我使用系统调用来调用它,例如system(paste0("gdal_rasterize -burn 1 -l census_buffer ", census_buffer_path, " /tmp/census_mask.tif"))
等,这当然假定了您的路径中包含gdal
实用程序。 - Forrest R. Stevens