我正在尝试使用光栅函数在R包terra (v.1.6-7)中将与城市相关的人口值转移到栅格中。我这样做是为了两个shapefiles,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会产生错误。
我无法确定shapefile municipiosPOP.shp是什么特性导致了这个错误。
有人知道这是怎么回事吗?
Shapefile可以访问这里。
发布于 2022-09-02 05:24:29
原因是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)) https://stackoverflow.com/questions/73563329
复制相似问题