我想在操作后保存一个 shapefile。
首先,我阅读了我的对象
map<-readOGR("C:/MAPS","33SEE250GC_SIR")
Run Code Online (Sandbox Code Playgroud)
在此之后,我将我的 shapefile 子集:
test <- fortify(map, region="CD_GEOCODI")
test<- subset(test, -43.41<long & long < -43.1 & - 23.05<lat & lat< -22.79)
Run Code Online (Sandbox Code Playgroud)
我得到了这个子集的相应 id
ids<- unique(test$id)
map2<- map[map$CD_GEOCODI %in% ids ,]
Run Code Online (Sandbox Code Playgroud)
当我绘制map2时,一切正常。但是,当我尝试保存此 shapefile 时,出现了错误
writeOGR(map2, dsn = "C:/MAPS" , layer = "nameofmynewmap")
Run Code Online (Sandbox Code Playgroud)
匹配错误(驱动程序,drvs$name):缺少参数“驱动程序”,没有默认值
我不知道如何获得驱动器。一些解决方案?
Cyr*_*ian 13
问题是您的map2对象不再是 shapefile,因此您无法将其另存为 shapefile。该fortify命令将形状文件 ( map@data)的数据槽转换为用于映射目的的 data.frame 对象。ggplot2无法处理 sp 类对象(空间多边形,即形状文件)。我假设你想保存这个“减少”或“子集”的数据。您需要做的是:
library(rgdal)
library(dplyr)
map <- readOGR("C:/MAPS","33SEE250GC_SIR")
map <- subset(world, LON>-43.41 | LON < -43.1 & LAT>- 23.05 | LAT< -22.79)
writeOGR(map, ".", "filename",
driver = "ESRI Shapefile") #also you were missing the driver argument
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24858 次 |
| 最近记录: |