如果我使用plot()绘制GIS光栅图像,则使用points()在图像上添加一些点:例如。以下代码
in_rast_str <- "PET_eclp.tif"
in_rast <- raster(in_rast_str)
selected_cells <- choose_points(in_rast_str,10,30)
plot(in_rast)
points(selected_cells[,1],selected_cells[,2])
初始输出正确呈现。但是,如果我然后在导出窗口或RStudio的缩放窗口中调整绘图的大小,则点和底层光栅相对于彼此移位并变得不对齐。
这是RStudio或R的问题吗? 我猜这可能是一个错误,而不是我做的事情显然是错误的。
更新...
以下是一些例子:
和相同的情节,但调整大小
答案 0 :(得分:2)
raster
的这个问题多年来一直困扰着我。
这并不能完全回答您的问题,但rasterVis
提供了一个非常令人满意的(对我而言)解决方法。
library(rasterVis)
r <- raster(matrix(runif(100), 10))
xy <- xyFromCell(r, which(values(r) > 0.9))
levelplot(r, margin=FALSE) + layer(sp.points(xy, pch=20, cex=2, col=1))
根据需要调整大小和缩放范围 - 这些点会粘在正确的单元格上。