2016-04-08 21 views
1

Bir manipülasyondan sonra bir şekil dosyası kaydetmek istiyorum.R, bir şekil dosyası kaydetme

Öncelikle, benim nesne Bundan sonra

map<-readOGR("C:/MAPS","33SEE250GC_SIR") 

okumak, benim shape dosyası subsetine:

test <- fortify(map, region="CD_GEOCODI") 
test<- subset(test, -43.41<long & long < -43.1 & - 23.05<lat & lat< -22.79) 

Bu alt kümesi

ids<- unique(test$id) 
map2<- map[map$CD_GEOCODI %in% ids ,] 

Ben arsa karşılık gelen kimliklerini almak map2, her şey yolunda. Bu şekil dosyası kaydetmeye çalıştığınızda Fakat, somethinh ben sürücüyü almak için nasıl bilmiyorum

writeOGR(map2, dsn = "C:/MAPS" , layer = "nameofmynewmap") 
> Error in match(driver, drvs$name) : 
argument "driver" is missing, with no default 

yanlıştır. Bir çözüm mü?

+1

Sürücü bağımsız değişkenini iletmeniz gerekiyor mu? driver = "ESRI Şekil Dosyası" dokümantasyonunda örnekler var mı? http://www.inside-r.org/packages/cran/rgdal/docs/writeOGR – chinsoon12

cevap

1

Sorun şu ki, map2 nesnesinin artık bir şekil dosyası olmadığı ve bu nedenle şekil dosyası olarak kaydedemeyeceğinizdir. fortify komutu, eşleme amacıyla kullanılacak şekil dosyasının ([email protected]) veri yuvasını data.frame nesnesine dönüştürür. ggplot2, sınıf sp'nin nesnelerini (uzaysal çokgen, yani şekil dosyaları) işleyemiyor. Bu 'azaltılmış' veya 'altlanmış' verileri kaydetmek istediğinizi varsayalım. Yapmanız gereken şey şudur:

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