R - 栅格化SpatialPolygonsDataFrame - 删除变量/属性

时间:2016-07-10 14:51:52

标签: r spatial r-raster

每当我栅格化我的SpatialPolygonsDataFrame时,我都会丢失属性/数据信息部分。命令“rasterize”来自R。

中的包“raster”

我有以下RasterLayer(名为“raster1”)

char[] word1 = new char[]{'H', 'e', 'l', 'l', 'o'};
char[] word2 = new char[]{'W', 'o', 'r', 'l', 'd'};
char[] newArray = new char[word1.length + word2.length];
System.arraycopy(word1, 0, newArray, 0, word1.length);
System.arraycopy(word2, 0, newArray, word1.length, word2.length);

我的SpatialPolygonsDataFrame(名为“bw1”)具有以下属性

class       : RasterLayer 
dimensions  : 6000, 4800, 28800000  (nrow, ncol, ncell)
resolution  : 0.00025, 0.00015  (x, y)
extent      : 8.699875, 9.899875, 46.69993, 47.59993  (xmin, xmax, ymin, ymax)
coord. ref. : +init=epsg:3857 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs 

当我使用命令

class       : SpatialPolygonsDataFrame 
features    : 7663 
extent      : 980075.6, 1076577, 5908811, 6023151  (xmin, xmax, ymin, ymax)
coord. ref. : +init=epsg:3857 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs 
variables   : 2
names       :    A,  B 
min values  : 3231, 11 
max values  : 3955, 19 

我得到了新对象“bw1_raster”:

bw1_raster<-rasterize(bw1,raster1,fun='last',field=c("A","B")

如何获得具有属性/图层“A”和“B”的栅格对象?

1 个答案:

答案 0 :(得分:1)

问题是SpatialPolygons的坐标参考系统与RasterLayer的坐标参考系统不匹配。 看起来像匹配,但这可能是因为您将RasterLayer的crs更改为不正确的值。 RasterLayer几乎肯定有一个longt crs,而不是merc。

您需要为其指定正确的crs(或者至少不要将其更改为错误的crs!)。

根据您想要实现的目标,您可以使用spTransform将 SpatialPolygons 转换为RasterLayer的crs,然后重试。

或者,你可以沿着这些方向做点什么

library(raster)
r <- raster(bw1, res=10000)
r <- rasterize(bw1, r)