【发布时间】:2016-12-15 15:51:51
【问题描述】:
我正在使用 R 中的 shapefile,需要将其从多边形转换为栅格。虽然矢量在绘制时看起来很完美,但当使用“光栅化”转换为光栅时,它们会产生错误的水平线。这是一个问题的例子:
这是我正在使用的代码的通用示例(抱歉,我无法上传数据本身,因为它是专有的):
spdf.dat <- readOGR("directory here", "layer here")
# Plot polygon
plot(spdf.dat, col = 'dimgrey', border = 'black')
# Extract boundaries
ext <- extent(spdf.dat)
# Set resolution for rasterization
res <- 1
# determine no. of columns from extents and resolution
yrow <- round((ext@ymax - ext@ymin) / res)
xcol <- round((ext@xmax - ext@xmin) / res)
# Rasterize base
rast.base <- raster(ext, yrow, xcol, crs = projection(spdf.dat))
# Rasterize substrate polygons
rast <- rasterize(spdf.dat, rast.base, field = 1, fun = 'min', progress='text')
plot(rast, col = 'dimgrey')
这似乎是源数据或光栅化功能的问题吗?有没有人见过这种错误?感谢您提供的任何建议。
【问题讨论】:
-
我已经用我的数据尝试了你的代码,它的行为很好。你的代码对我来说看起来不错。也许您的数据有问题?尝试使用您的另一个数据集。
-
当我看你的图时,在我看来,光栅中出现问题的线条位于某些岛屿的同一纬度。尝试从您的数据集中删除这些岛屿。如果问题消失,您就会知道问题出在您的数据上,以及问题出在哪里。
-
你可能想试试 gdalUtils 包,它有一个功能:
gdal_rasterize -
太好了,谢谢@Bastien!我没有注意到它与岛屿重合,但现在看到你是绝对正确的。我会试试那个包。
标签: r vector mapping gis raster