我想提取包含栅格中不同像元中心坐标的摘要矢量。以下代码有效但我认为涉及n平方比较操作。有更有效的方法吗?在{raster}的指导中没有看到任何明显的东西。
require(raster)
r = raster(volcano)
pts = rasterToPoints(r)
x_centroids = unique(pts[,1])
y_centroids = unique(pts[,2])
答案 0 :(得分:3)
要获取栅格单元格的中心,您应该使用函数xFromCol
,yFromRow
和朋友(另请参阅帮助页面)
在这种情况下,您得到的结果完全相同:
require(raster)
r <- raster(volcano)
x_centers <- xFromCol(r)
y_centers <- yFromRow(r)
请注意,除了检查坐标的最小值和栅格的分辨率外,这些函数实际上没有其他功能。根据这两个值,他们按如下方式计算中心序列:
xmin(r) + (seq_len(ncol(r)) - 0.5) * xres(r)
ymin(r) + (seq_len(nrow(r)) - 0.5) * xres(r)
但是你最好使用上面提到的功能,因为它们会进行更多的安全检查。