rasterFromXYZ 生成意外的空行
rasterFromXYZ generates an unexpected blank line
我通过 rasterToPoints 将栅格转换为数据帧,然后使用 rasterFromXYZ 将其转换回栅格。第二个光栅上出现意外的空白行,如下所示。有什么办法可以避免这种情况?
例如你可以做(可重现的例子)
library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
v <- as.matrix(r)
v <- v * 2
x <- setValues(r, v)
但在大多数情况下,不建议走这条路,因为您几乎可以对栅格对象本身执行任何操作。
我用你的数据做:
r <- raster("bv2.tif")
x <- rasterToPoints(r)
z <- rasterFromXYZ(x)
e <- extent(-121.4,-114.6,49,50.4)
zoom(z, e)
而且没有白线。进一步放大也没有显示出不规则性。所以这可能是您用来制作地图的工具的问题。
证实了这一点
sum(values(z) != values(r), na.rm=TRUE)
# [1] 0
cellStats(r, 'countNA')
# [1] 2130763
cellStats(z, 'countNA')
# [1] 2130763
我通过 rasterToPoints 将栅格转换为数据帧,然后使用 rasterFromXYZ 将其转换回栅格。第二个光栅上出现意外的空白行,如下所示。有什么办法可以避免这种情况?
例如你可以做(可重现的例子)
library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
v <- as.matrix(r)
v <- v * 2
x <- setValues(r, v)
但在大多数情况下,不建议走这条路,因为您几乎可以对栅格对象本身执行任何操作。
我用你的数据做:
r <- raster("bv2.tif")
x <- rasterToPoints(r)
z <- rasterFromXYZ(x)
e <- extent(-121.4,-114.6,49,50.4)
zoom(z, e)
而且没有白线。进一步放大也没有显示出不规则性。所以这可能是您用来制作地图的工具的问题。
证实了这一点sum(values(z) != values(r), na.rm=TRUE)
# [1] 0
cellStats(r, 'countNA')
# [1] 2130763
cellStats(z, 'countNA')
# [1] 2130763