2012-02-14 35 views
10

Làm cách nào để vẽ một đối tượng "raster" phía sau đối tượng shapefile? Cả hai âm mưu đều tốt đẹp của riêng chúng nhưng các điểm không vẽ trên raster:Vẽ một raster phía sau một 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) 

Trả lời

17

Các ô raster với điểm, đường và đa giác sẽ hoạt động tốt như ví dụ sau đây.

Dự đoán tốt nhất của tôi là đối tượng Spatial* mà bạn đang cố vẽ trên đầu của phần raster nằm ngoài vùng được vẽ. Bạn đã kiểm tra rằng cả hai đối tượng rasterSpatial* đều nằm trong cùng một CRS và (giả sử chúng là) các hộp giới hạn chồng chéo? (ví dụ: thử bbox(shp)bbox(ras) và so sánh kết quả).

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) 

enter image description here

+0

Tốt gọi, raster của tôi đã nằm không đúng cách. Cảm ơn bạn đã xác nhận rằng điều này hoạt động đúng. – Benjamin

Các vấn đề liên quan