我有来自Global Administrative Areas Database的行政边界数据。使用此数据绘制细分非常简单。例如,如果我想在佛罗里达州的县上覆盖文件mydata
中包含的地理编码数据,我会下载美国的“2级”,然后使用此代码:
load("/home/anindya/Desktop/DELETE/USA_adm2.RData")
temp = as.data.frame(gadm) *Code for eyeballing structure of data
florida = gadm[344:410,]
plot(florida); points(mydata$longitude, mydata$latitude)
但是你如何在地形和水道上覆盖其他信息呢?我对来自Natural Earth和Global Lakes and Wetlands Database的数据特别感兴趣。
后续编辑:非常感谢保罗解决这个问题。我在here at gis.stackexchange上交叉了这个问题的变体,其中R.K。给了一个很好的答案。也请仔细阅读。
答案 0 :(得分:3)
如果我理解正确的话,你会问如何使用GUI GIS来叠加不同的地理图层。
如果数据位于Spatial*
对象(例如来自SpatialPoints, SpatialLines, SpatialPolygons
包的sp
等)或来自{{1}的Raster*
对象,则这是直截了当的包。如果给出参数raster
,则这两个包中的plot()
方法都可以处理此叠加。
要将基于矢量的地理数据导入add=TRUE
个对象,您可以使用Spatial*
包中的函数(例如maptools
读取ESRI多边形shapefile)。可以使用readShapePoly()
加载来自各种文件规范的栅格,如果安装了raster()
软件包,则可以使用其他格式。
以下是使用制作的地理数据叠加地理数据类型的示例。首先在UTM网格上创建一些示例数据:
rgdal
现在做这些情节:
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)))
结果如下: