在一个矢量文件的背后绘制一个栅格图像

12

我该如何在一个"raster"对象后面绘制一个shapefile对象?它们各自单独绘制得很好,但点无法覆盖在栅格上:

require(rgdal)
require(maptools)
require(raster)

myproj = "+proj=utm +zone=12 +north +ellps=WGS84 +units=m"
shp = readShapeSpatial(fn.shp, proj4string = CRS(myproj))
ras = raster(fn.tif)

plot(ras)
plot(shp, bg="transparent", add=TRUE)
1个回答

21

可以很好地将点、线和多边形与栅格图一起绘制,如下面的示例所示。

我的最佳猜测是你试图在栅格图上方绘制的 Spatial* 对象超出了正在绘制的区域。你是否检查过rasterSpatial* 对象是否在相同的CRS中,并且(假设它们是)边界框是否重叠?(即尝试使用bbox(shp)bbox(ras)来比较结果)。

library(rgdal)
library(raster)
# Create a raster
ras <- raster(ncols=36, nrows=18)
ras[] <- runif(ncell(ras))
# Create a SpatialPoints object
shpPts <- spsample(Spatial(bbox=bbox(ras)), 20, type="random")
# Create a SpatialPolygons object
p1 <- rbind(c(-10,0), c(140,60), c(160,0), c(140,-55), c(-10,0))
shpPolys <- SpatialPolygons( list(Polygons(list(Polygon(p1)), 1)))

# Plot them, one layer after another
plot(ras)
plot(shpPts, pch=16, col="red", add=TRUE)
plot(shpPolys, col="yellow", add=TRUE)

这里输入图像描述


好的,我的光栅位置不正确。感谢您确认这个工作正常。 - Benjamin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接