每当我栅格化我的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”的栅格对象?
答案 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)