我正在尝试使用R包terra(v.1.6-7(中的光栅化函数将与市政当局相关的人口值转移到光栅。我这样做是为了两个形状文件,dipomun00gw.shp
和municipiosPOP.shp
。这是代码:
library(terra)
# Read shapefiles for 2000 and 2010
v_00 <- vect("dipomun00gw.shp")
v_10 <- vect("municipiosPOP.shp")
# create blank rasters using each year's shape file as extent
r_00 <- rast(v_00, res=.01)
r_10 <- rast(v_10, res=.01)
# Rasterize
x_00 <- rasterize(v_00, r_00, "POTO00")
x_10 <- rasterize(v_10, r_10, "POB_10")
#Error: [rasterize] cannot create dataset
由于某些原因,v_00
光栅化没有任何问题,但v_10
会产生错误。
我无法确定形状文件municipiosPOP.shp
的哪个特性导致了此错误。
有人知道发生了什么事吗?
可以在此处访问形状文件。
原因是r_10
太大(它有>6.4e+16个细胞!(
r_10
#class : SpatRaster
#dimensions : 203046581, 317517559, 1 (nrow, ncol, nlyr)
#resolution : 0.01, 0.01 (x, y)
#extent : 907821.8, 4082997, 319149.1, 2349615 (xmin, xmax, ymin, ymax)
#coord. ref. : North_America_Lambert_Conformal_Conic
这是因为您指定了0.01(即~1厘米(的空间分辨率,您可能认为您使用的是0.01度(~1公里(。如果您首先将v_10
投影到long/lat(如v_00
(,那么您的代码就可以工作。
v_10 <- project(v_10, crs(v_00))