1

我在使用 R 中的 raster 包对 shapefile 进行光栅化时遇到问题。

shp<-shapefile(ZoneShape);
lcRas<-raster(lcRaster);

r<-raster(ncol=ncol(lcRas), nrow=nrow(lcRas), crs=CRS);
res(r)<-res(lcRas);
extent(r)<-extent(lcRas);

>r

class       : RasterLayer 
dimensions  : 22610, 27959, 632152990  (nrow, ncol, ncell)
resolution  : 1, 1  (x, y)
extent      : 554739, 582698, 3837197, 3859807  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0

shp$GID<-1:nrow(shp);

> shp

class       : SpatialPolygonsDataFrame 
nfeatures   : 1 
extent      : 554838, 582597.6, 3837297, 3859707  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=15 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0 
nvariables  : 14
names       : SP_ID,              NAME, Shape_Leng, Shape_Area, GID

>zoneRas<-rasterize(shp, r, "GID")

返回以下错误:

trying to get slot "coords" from an object of a basic class ("NULL") with no slots.

谁能看到我在这里错过/搞砸了什么?

谢谢

4

1 回答 1

3

这是当 SpatialPolygonsDataFrame 对象只有一个几何图形时发生的错误。这是一个解决方法:

  zoneRas <- rasterize(shp, r, shp$GID)
于 2013-06-30T17:16:40.350 回答