2014-10-13 1 views
2

자세한 모양 파일을 사용하여 새 모양 파일을 빠르게 만들 수 있습니까? 아래 예는 문제를 나타냅니다.자세한 모양 파일에서 새 다각형 만들기

이 데이터를 사용하면 link에서 상 파울로 시정촌을 얻을 수 있습니다. 이 도표에서

sao paulo municipalities

if(require(rgdal) == F){install.packages('rgdal'); require(rgdal)} 
if(require(ggplot2) == F){install.packages('ggplot2'); require(ggplot2)} 
setwd("..data directory..") 
sp4.rg <- readOGR(".", "35MUE250GC_SIR") 
plot(sp4.rg, axes=TRUE, border="gray") 

645 개 지방 자치 단체가 있습니다. 나는 똑같은 줄거리를 만들고 싶지만 이제는 새로운 지역 (다각형)에서이 시정촌 중 일부를 집계하고 싶습니다. 예를 들어,이 새로운 영역을 "SPABCD"라고 부르 자. 이 지역은 "Sã PAULO", "São BERNARDO DO CAMPO", "SANTO ANDRÉ", "Sã CAETANO"및 "DIADEMA"와 같은 시정촌으로 구성됩니다.

sp <- fortify(sp4.rg, region = "NM_MUNICIP") 
spabcd <- c("SÃO PAULO", "SÃO BERNARDO DO CAMPO", "SANTO ANDRÉ", "SÃO CAETANO DO SUL", "DIADEMA") 
sp$region <- ifelse(sp$id %in% spabcd, "SPABCD", sp$id) 

내 질문은 : 그것을 그릴 수있을 것입니다있는 방법으로 새로운 지역을 둘러싸고있는 위도와 경도를 선택하는 빠른 방법 (이미 생성 된 함수)가있다? 데이터와

+2

이 [maptools 네트 (http://cran.r-project.org/web/packages/maptools/vignettes/combine_maptools.pdf) 시작하는 데 도움이 될 수 있습니다. – hrbrmstr

+0

@hrbrmstr 감사합니다! 나는 그것을 볼 것이다! –

+3

@ hrbrmstr의 'maptools :: unionSpatialPolygons()'를 사용하는 간접적 인 제안. 또한, 일반적으로, 여러분은'Spatial *'objects *의 모든 조작을하기 전에 그것들을 요새화 (fortify())하기를 원할 것입니다 ... –

답변

3

빠른/장난감 예를 (그것이이 일을 당신의 부분에 더 많은 작업을 것 때문에, 저는 믿습니다) :

library(maptools) 

regs <- c("S\xc3O PAULO", "S\xc3O BERNARDO DO CAMPO", 
      "SANTO ANDR\xc9", "S\xc3O CAETANO DO SUL", "DIADEMA") 

# make a copy of all the IDs 
sp2 <- sp$ID 

# filter out only the ones we want dissolved: 
sp2[which(!sp$NM_MUNICIP %in% regs)] <- NA 
sp.u <- unionSpatialPolygons(sp, sp2) 

# sample new plot 
plot(sp.u) 

enter image description here

# showing this region on the whole map 

plot(sp, axes=TRUE, border="gray") 
plot(sp.u, col="red", add=TRUE) 

enter image description here

국경 바로 옆 :

# make one "bin" 
sp.u.s <- getSpPPolygonsLabptSlots(sp.u) 

outline <- cut(sp.u.s[,1], range(sp.u.s[,1]), include.lowest=TRUE) 

# one more dissolve 
dissolved <- unionSpatialPolygons(sp.u ,outline) 

plot(sp, axes=TRUE, border="gray") 
plot(dissolved, add=TRUE) 

enter image description here

+0

thx, Josh. maptools 라이브러리 호출을 완전히 잊어 버렸습니다. – hrbrmstr

+0

@hrbrmstr. 감사합니다. 국경을 그릴 수 있습니까? 사실,이 부분 집합 만 음모하고 싶지는 않습니다.이 지역 전체지도를 원합니다. –

+0

@hrbrmstr 다시 한번 감사드립니다. 지역의 경계를 그릴 수 있습니까? –