如果我正确理解了你,你会问如何叠加不同的地理层,就像使用GUI GIS一样。
这是直截了当的,如果数据是在一个Spatial*
对象(例如SpatialPoints, SpatialLines, SpatialPolygons
等从sp
封装)或作为来自raster
封装的Raster*
对象。如果给出参数add=TRUE
,则这两个包中的plot()
方法都可以处理此叠加。
要将基于矢量的地理数据导入Spatial*
对象,可以使用maptools
包中的函数(例如readShapePoly()
读取ESRI多边形shape文件)。可以使用raster()
加载各种文件规格的光栅,如果安装了rgdal
软件包,则可以使用其他格式。
以下是使用拼凑的地理数据叠加地理数据类型的示例。首先创建一个UTM网格一些示例数据:
library(sp)
library(raster)
## Create a RasterLayer object and fill with random values
baseRaster <- raster(nrow=100, ncol=100,
xmn=0, xmx=100, ymn=0, ymx=100,
crs= "+proj=utm")
baseRaster[] <- runif(ncell(baseRaster))
## Create a second raster to superimpose
## It should contain NA values where it is transparent
supRaster <- baseRaster
supRaster[] <- NA
supRaster[cellFromCol(supRaster, 48:52)] <- 1
## Create SpatialPoints object to superimpose on these
loc <- SpatialPoints(cbind(seq(10, 90, by=10), seq(10, 90, by=10)))
现在做图:
## Plot base raster
plot(baseRaster)
## Superimpose second raster in a different colour
## Turn off legend
plot(supRaster, add=TRUE, col="blue", legend=FALSE)
## Superimpose points and make them big and colourful
plot(loc, add=TRUE, pch=20, cex=3, col="red")
下面是结果:
看看在http:// gis.stackexchange.com/ – 2012-02-09 12:33:48
对不起,我找不到直接相关的东西。当然,应该有一个简单的功能,用于在同一地理区域上覆盖具有不同细节的两个地块?! – user702432 2012-02-10 04:32:14