통계지리정보서비스 에서 신청하고 다운로드 승인난 shape 파일을 mapshaper 에서 간략히 한 후 작업에 착수한다. 승인 후 다운로드 기간이 1주일에 불과하므로 승인 즉시 받아놓는 것을 잊지 않도록.
mapshaper
작업과정에서 유의할 점은 .zip
채로 옮겨야 .prj
등의 정보를 그대로 활용할 수 있다는 것이다. 그러지 않고 .shp
파일만 끌어다 놓고 작업하면 추후에 .prj
파일을 원본 shape 파일에서 복사해서 사용해야 한다.
library(maptools) #> `readShapePoly()`, `rgdal::readOGR()`로 대체
library(GISTools) #> `choropleth`
library(ggmap) #> `geocode()`, `ggmap()`, `qmap()`, `revgeocode()`
library(ggplot2) #> `ggplot()`
library(rgdal) #> `CRS`, `ogrInfo()`, `ogrListLayers()`, `readOGR()`, `spTransform()`
library(dplyr) #> `arrange()`, `filter()`, `group_by()`, `left_join()`, `mutate()`,
library(broom) #> `tidy()`
library(extrafont) #> "HCR Dotum LVT"
options(width = 132)
ogrInfo(dsn = "../data/BND_SIDO_PG", #> `ogrInfo()`
layer = "BND_SIDO_PG")
## Source: "../data/BND_SIDO_PG", layer: "BND_SIDO_PG"
## Driver: ESRI Shapefile; number of rows: 17
## Feature type: wkbPolygon with 2 dimensions
## Extent: (746117.8 1464008) - (1302164 2068438)
## CRS: +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs
## LDID: 78
## Number of fields: 6
## name type length typeName
## 1 OBJECTID 0 9 Integer
## 2 BASE_YEAR 4 4 String
## 3 SIDO_CD 4 2 String
## 4 SIDO_NM 4 50 String
## 5 SHAPE_LENG 2 19 Real
## 6 SHAPE_AREA 2 19 Real
shp1 <- readOGR(dsn = "../data/BND_SIDO_PG",
layer = "BND_SIDO_PG",
stringsAsFactors = FALSE)
## OGR data source with driver: ESRI Shapefile
## Source: "../data/BND_SIDO_PG", layer: "BND_SIDO_PG"
## with 17 features
## It has 6 fields
# encoding = "CP949")
shp1@data #> data file 이 빈약한 것 확인.
## OBJECTID BASE_YEAR SIDO_CD SIDO_NM SHAPE_LENG SHAPE_AREA
## 0 1 2015 11 서울특별시 180613.1 606430426
## 1 2 2015 21 부산광역시 373988.6 793540061
## 2 3 2015 22 대구광역시 211834.4 879775266
## 3 4 2015 23 인천광역시 1054310.7 1167435302
## 4 5 2015 24 광주광역시 135811.9 498134459
## 5 6 2015 25 대전광역시 153540.4 539199225
## 6 7 2015 26 울산광역시 245577.1 1069415828
## 7 8 2015 29 세종특별자치시 144684.7 465430058
## 8 9 2015 33 충청북도 779948.1 7409073778
## 9 10 2015 34 충청남도 1497991.2 8323924705
## 10 11 2015 35 전라북도 1097452.3 8035471571
## 11 12 2015 36 전라남도 6213827.0 12657093637
## 12 13 2015 37 경상북도 1248393.5 19040801161
## 13 14 2015 38 경상남도 2516640.1 10616566548
## 14 15 2015 39 제주특별자치도 433156.2 1888752859
## 15 16 2015 31 경기도 1191386.1 10401806219
## 16 17 2015 32 강원도 942910.5 16933074307
data.frame(shp1)
## OBJECTID BASE_YEAR SIDO_CD SIDO_NM SHAPE_LENG SHAPE_AREA
## 0 1 2015 11 서울특별시 180613.1 606430426
## 1 2 2015 21 부산광역시 373988.6 793540061
## 2 3 2015 22 대구광역시 211834.4 879775266
## 3 4 2015 23 인천광역시 1054310.7 1167435302
## 4 5 2015 24 광주광역시 135811.9 498134459
## 5 6 2015 25 대전광역시 153540.4 539199225
## 6 7 2015 26 울산광역시 245577.1 1069415828
## 7 8 2015 29 세종특별자치시 144684.7 465430058
## 8 9 2015 33 충청북도 779948.1 7409073778
## 9 10 2015 34 충청남도 1497991.2 8323924705
## 10 11 2015 35 전라북도 1097452.3 8035471571
## 11 12 2015 36 전라남도 6213827.0 12657093637
## 12 13 2015 37 경상북도 1248393.5 19040801161
## 13 14 2015 38 경상남도 2516640.1 10616566548
## 14 15 2015 39 제주특별자치도 433156.2 1888752859
## 15 16 2015 31 경기도 1191386.1 10401806219
## 16 17 2015 32 강원도 942910.5 16933074307
class(shp1)
## [1] "SpatialPolygonsDataFrame"
## attr(,"package")
## [1] "sp"
shp1$SIDO_NM2 <- c("서울", "부산", "대구", "인천", "광주", "대전", "율산", "세종", "충북", "충남", "전북", "전남", "경북", "경남", "제주", "경기", "강원")
summary(shp1) #> 요약
## Object of class SpatialPolygonsDataFrame
## Coordinates:
## min max
## x 746117.8 1302164
## y 1464007.7 2068438
## Is projected: TRUE
## proj4string :
## [+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs]
## Data attributes:
## OBJECTID BASE_YEAR SIDO_CD SIDO_NM SHAPE_LENG SHAPE_AREA SIDO_NM2
## Min. : 1 Length:17 Length:17 Length:17 Min. : 135812 Min. :4.654e+08 Length:17
## 1st Qu.: 5 Class :character Class :character Class :character 1st Qu.: 211834 1st Qu.:7.935e+08 Class :character
## Median : 9 Mode :character Mode :character Mode :character Median : 779948 Median :1.889e+09 Mode :character
## Mean : 9 Mean :1083651 Mean :5.960e+09
## 3rd Qu.:13 3rd Qu.:1191386 3rd Qu.:1.040e+10
## Max. :17 Max. :6213827 Max. :1.904e+10
shp1@data
## OBJECTID BASE_YEAR SIDO_CD SIDO_NM SHAPE_LENG SHAPE_AREA SIDO_NM2
## 0 1 2015 11 서울특별시 180613.1 606430426 서울
## 1 2 2015 21 부산광역시 373988.6 793540061 부산
## 2 3 2015 22 대구광역시 211834.4 879775266 대구
## 3 4 2015 23 인천광역시 1054310.7 1167435302 인천
## 4 5 2015 24 광주광역시 135811.9 498134459 광주
## 5 6 2015 25 대전광역시 153540.4 539199225 대전
## 6 7 2015 26 울산광역시 245577.1 1069415828 율산
## 7 8 2015 29 세종특별자치시 144684.7 465430058 세종
## 8 9 2015 33 충청북도 779948.1 7409073778 충북
## 9 10 2015 34 충청남도 1497991.2 8323924705 충남
## 10 11 2015 35 전라북도 1097452.3 8035471571 전북
## 11 12 2015 36 전라남도 6213827.0 12657093637 전남
## 12 13 2015 37 경상북도 1248393.5 19040801161 경북
## 13 14 2015 38 경상남도 2516640.1 10616566548 경남
## 14 15 2015 39 제주특별자치도 433156.2 1888752859 제주
## 15 16 2015 31 경기도 1191386.1 10401806219 경기
## 16 17 2015 32 강원도 942910.5 16933074307 강원
coordinates(shp1)
## [,1] [,2]
## 0 955147.8 1950404
## 1 1141893.3 1690421
## 2 1096225.7 1759768
## 3 927092.2 1943711
## 4 939520.4 1684688
## 5 990475.6 1815819
## 6 1157601.9 1729970
## 7 978439.9 1840377
## 8 1029521.4 1860032
## 9 942432.4 1837111
## 10 968132.7 1746569
## 11 950352.7 1660784
## 12 1111374.6 1816905
## 13 1068870.3 1708016
## 14 912019.1 1488544
## 15 971323.2 1949690
## 16 1070371.2 1970287
opar <- par() #> 기본 설정을 저장한다.
par("mar") #> 플롯 마진의 기본 설정 확인
## [1] 5.1 4.1 4.1 2.1
par(mar = c(0, 0, 0, 0)) #> 여백의 빈 공간을 줄이기 위하여 설정. 없을 때와 비교
plot(shp1) #
AREA.shades <- auto.shading(shp1$SHAPE_AREA, cols = brewer.pal(5, "Greens"))
choropleth(shp1, shp1$SHAPE_AREA, shading = AREA.shades)
choro.legend(1110000, 1600000, AREA.shades)
par <- opar
proj4string(shp1) #> .shp 파일을 mapshaper.org 에서 간략히 하면 .prj 는 생성되지 않음.
## [1] "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"
#> 원시 layer에 제공되어 있는 .prj 파일을 옮겨와야 함.
# projInfo(type = "proj")
# projInfo(type = "datum")
# projInfo(type = "ellps")
# CRS("+init=epsg:4326")
# EPSG <- make_EPSG()
coordinates(shp1) #> 좌표 확인. 변환 필요한 좌표계.
## [,1] [,2]
## 0 955147.8 1950404
## 1 1141893.3 1690421
## 2 1096225.7 1759768
## 3 927092.2 1943711
## 4 939520.4 1684688
## 5 990475.6 1815819
## 6 1157601.9 1729970
## 7 978439.9 1840377
## 8 1029521.4 1860032
## 9 942432.4 1837111
## 10 968132.7 1746569
## 11 950352.7 1660784
## 12 1111374.6 1816905
## 13 1068870.3 1708016
## 14 912019.1 1488544
## 15 971323.2 1949690
## 16 1070371.2 1970287
shp1_84 <- shp1 %>%
spTransform(CRS("+init=epsg:4326")) #> 통상의 WGS84 좌표계로 변환
coordinates(shp1_84) #> 통상의 좌표계로 변환된 것을 확인함.
## [,1] [,2]
## 0 126.9922 37.55190
## 1 129.0589 35.19912
## 2 128.5655 35.82975
## 3 126.6753 37.48983
## 4 126.8360 35.15561
## 5 127.3939 36.33975
## 6 129.2388 35.55324
## 7 127.2590 36.56098
## 8 127.8316 36.73877
## 9 126.8560 36.53051
## 10 127.1480 35.71498
## 11 126.9566 34.94085
## 12 128.7412 36.34418
## 13 128.2578 35.36537
## 14 126.5543 33.38484
## 15 127.1750 37.54729
## 16 128.2961 37.73040
# names(shp_simp84@data) <- c("id", "base_year", "code", "name_kor", "length", "area", "AB_name") #> 변수명 바꿈.
str(shp1_84@data) #> 변수명 등 확인.
## 'data.frame': 17 obs. of 7 variables:
## $ OBJECTID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ BASE_YEAR : chr "2015" "2015" "2015" "2015" ...
## $ SIDO_CD : chr "11" "21" "22" "23" ...
## $ SIDO_NM : chr "서울특별시" "부산광역시" "대구광역시" "인천광역시" ...
## $ SHAPE_LENG: num 180613 373989 211834 1054311 135812 ...
## $ SHAPE_AREA: num 6.06e+08 7.94e+08 8.80e+08 1.17e+09 4.98e+08 ...
## $ SIDO_NM2 : chr "서울" "부산" "대구" "인천" ...
# shp_simp84$id <- as.character(shp_simp84$id)
# geocode(shp_simp$name_eng)
# map_simp <- tidy(shp_simp84) #> `tidy` 데이터로 변환
# str(map_simp) #> 데이터 구조 확인
shp1_84$id <- rownames(shp1_84@data) #> `id` 변수 생성. `left_join()`에 반드시 필요함. `tidy()`의 결과로 나오는 데이터 프레임에는 `@data`의 `code`, `region`의 정보가 누락됨.
shp1_84@data #> 데이터 슬롯 확인
## OBJECTID BASE_YEAR SIDO_CD SIDO_NM SHAPE_LENG SHAPE_AREA SIDO_NM2 id
## 0 1 2015 11 서울특별시 180613.1 606430426 서울 0
## 1 2 2015 21 부산광역시 373988.6 793540061 부산 1
## 2 3 2015 22 대구광역시 211834.4 879775266 대구 2
## 3 4 2015 23 인천광역시 1054310.7 1167435302 인천 3
## 4 5 2015 24 광주광역시 135811.9 498134459 광주 4
## 5 6 2015 25 대전광역시 153540.4 539199225 대전 5
## 6 7 2015 26 울산광역시 245577.1 1069415828 율산 6
## 7 8 2015 29 세종특별자치시 144684.7 465430058 세종 7
## 8 9 2015 33 충청북도 779948.1 7409073778 충북 8
## 9 10 2015 34 충청남도 1497991.2 8323924705 충남 9
## 10 11 2015 35 전라북도 1097452.3 8035471571 전북 10
## 11 12 2015 36 전라남도 6213827.0 12657093637 전남 11
## 12 13 2015 37 경상북도 1248393.5 19040801161 경북 12
## 13 14 2015 38 경상남도 2516640.1 10616566548 경남 13
## 14 15 2015 39 제주특별자치도 433156.2 1888752859 제주 14
## 15 16 2015 31 경기도 1191386.1 10401806219 경기 15
## 16 17 2015 32 강원도 942910.5 16933074307 강원 16
map1_coords <- coordinates(shp1_84) #> `geom_text()`에 필요한 좌표 복사
colnames(map1_coords) <- c("long", "lat") #> 좌표계 이름 명칭.
map1_coords # 좌표 확인
## long lat
## 0 126.9922 37.55190
## 1 129.0589 35.19912
## 2 128.5655 35.82975
## 3 126.6753 37.48983
## 4 126.8360 35.15561
## 5 127.3939 36.33975
## 6 129.2388 35.55324
## 7 127.2590 36.56098
## 8 127.8316 36.73877
## 9 126.8560 36.53051
## 10 127.1480 35.71498
## 11 126.9566 34.94085
## 12 128.7412 36.34418
## 13 128.2578 35.36537
## 14 126.5543 33.38484
## 15 127.1750 37.54729
## 16 128.2961 37.73040
map1_data <- cbind(map1_coords, shp1_84@data) # shp_simp84@data 에 좌표 추가
shp1_84$SIDO_NM
## [1] "서울특별시" "부산광역시" "대구광역시" "인천광역시" "광주광역시" "대전광역시" "울산광역시"
## [8] "세종특별자치시" "충청북도" "충청남도" "전라북도" "전라남도" "경상북도" "경상남도"
## [15] "제주특별자치도" "경기도" "강원도"
shp1_84$SIDO_NM2
## [1] "서울" "부산" "대구" "인천" "광주" "대전" "율산" "세종" "충북" "충남" "전북" "전남" "경북" "경남" "제주" "경기" "강원"
shp1_84$SIDO_NM_f <- factor(shp1_84$SIDO_NM,
levels = shp1_84$SIDO_NM,
labels = shp1_84$SIDO_NM2)
shp1_84$region <- shp1_84$SIDO_CD
shp1_84_df <- tidy(shp1_84)
## Regions defined for each Polygons
str(shp1_84_df)
## 'data.frame': 8371 obs. of 7 variables:
## $ long : num 127 127 127 127 127 ...
## $ lat : num 37.6 37.6 37.6 37.6 37.6 ...
## $ order: int 1 2 3 4 5 6 7 8 9 10 ...
## $ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ piece: Factor w/ 123 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ group: Factor w/ 222 levels "0.1","1.1","1.2",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ id : chr "0" "0" "0" "0" ...
str(shp1_84@data)
## 'data.frame': 17 obs. of 10 variables:
## $ OBJECTID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ BASE_YEAR : chr "2015" "2015" "2015" "2015" ...
## $ SIDO_CD : chr "11" "21" "22" "23" ...
## $ SIDO_NM : chr "서울특별시" "부산광역시" "대구광역시" "인천광역시" ...
## $ SHAPE_LENG: num 180613 373989 211834 1054311 135812 ...
## $ SHAPE_AREA: num 6.06e+08 7.94e+08 8.80e+08 1.17e+09 4.98e+08 ...
## $ SIDO_NM2 : chr "서울" "부산" "대구" "인천" ...
## $ id : chr "0" "1" "2" "3" ...
## $ SIDO_NM_f : Factor w/ 17 levels "서울","부산",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ region : chr "11" "21" "22" "23" ...
map1_df <- left_join(shp1_84_df,
shp1_84@data,
by = c("id" = "id"))
str(map1_df)
## 'data.frame': 8371 obs. of 16 variables:
## $ long : num 127 127 127 127 127 ...
## $ lat : num 37.6 37.6 37.6 37.6 37.6 ...
## $ order : int 1 2 3 4 5 6 7 8 9 10 ...
## $ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ piece : Factor w/ 123 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ group : Factor w/ 222 levels "0.1","1.1","1.2",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ id : chr "0" "0" "0" "0" ...
## $ OBJECTID : int 1 1 1 1 1 1 1 1 1 1 ...
## $ BASE_YEAR : chr "2015" "2015" "2015" "2015" ...
## $ SIDO_CD : chr "11" "11" "11" "11" ...
## $ SIDO_NM : chr "서울특별시" "서울특별시" "서울특별시" "서울특별시" ...
## $ SHAPE_LENG: num 180613 180613 180613 180613 180613 ...
## $ SHAPE_AREA: num 6.06e+08 6.06e+08 6.06e+08 6.06e+08 6.06e+08 ...
## $ SIDO_NM2 : chr "서울" "서울" "서울" "서울" ...
## $ SIDO_NM_f : Factor w/ 17 levels "서울","부산",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ region : chr "11" "11" "11" "11" ...
Dokdo_coord <- geocode("Dokdo")
## Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Dokdo&sensor=false
Ulleung_coord <- geocode("Ulleungdo")
## Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Ulleungdo&sensor=false
ogrInfo(dsn = "../data/BND_SIGUNGU_PG", #> `ogrInfo()`
layer = "BND_SIGUNGU_PG")
## Source: "../data/BND_SIGUNGU_PG", layer: "BND_SIGUNGU_PG"
## Driver: ESRI Shapefile; number of rows: 252
## Feature type: wkbPolygon with 2 dimensions
## Extent: (746117.8 1464008) - (1302164 2068438)
## CRS: +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs
## LDID: 78
## Number of fields: 6
## name type length typeName
## 1 OBJECTID 0 9 Integer
## 2 BASE_YEAR 4 4 String
## 3 SIGUNGU_CD 4 5 String
## 4 SIGUNGU_NM 4 50 String
## 5 SHAPE_LENG 2 19 Real
## 6 SHAPE_AREA 2 19 Real
shp2 <- readOGR(dsn = "../data/BND_SIGUNGU_PG",
layer = "BND_SIGUNGU_PG",
stringsAsFactors = FALSE)
## OGR data source with driver: ESRI Shapefile
## Source: "../data/BND_SIGUNGU_PG", layer: "BND_SIGUNGU_PG"
## with 252 features
## It has 6 fields
# encoding = "CP949")
class(shp2)
## [1] "SpatialPolygonsDataFrame"
## attr(,"package")
## [1] "sp"
summary(shp2) #> 요약
## Object of class SpatialPolygonsDataFrame
## Coordinates:
## min max
## x 746117.8 1302164
## y 1464007.7 2068438
## Is projected: TRUE
## proj4string :
## [+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs]
## Data attributes:
## OBJECTID BASE_YEAR SIGUNGU_CD SIGUNGU_NM SHAPE_LENG SHAPE_AREA
## Min. : 1.00 Length:252 Length:252 Length:252 Min. : 12393 Min. :3.195e+06
## 1st Qu.: 63.75 Class :character Class :character Class :character 1st Qu.: 42258 1st Qu.:4.755e+07
## Median :126.50 Mode :character Mode :character Mode :character Median : 132536 Median :3.981e+08
## Mean :126.50 Mean : 143097 Mean :4.021e+08
## 3rd Qu.:189.25 3rd Qu.: 183524 3rd Qu.:6.645e+08
## Max. :252.00 Max. :1519223 Max. :1.815e+09
shp2@data #> data file에서 면적과 둘레 확인.
## OBJECTID BASE_YEAR SIGUNGU_CD SIGUNGU_NM SHAPE_LENG SHAPE_AREA
## 0 1 2015 11010 종로구 28517.28 23876840
## 1 2 2015 11020 중구 18756.19 10042696
## 2 3 2015 11030 용산구 21291.49 21190958
## 3 4 2015 11040 성동구 18946.85 16543127
## 4 5 2015 11050 광진구 18175.67 17637267
## 5 6 2015 11060 동대문구 18740.24 14499677
## 6 7 2015 11070 중랑구 19387.16 17930186
## 7 8 2015 11080 성북구 32157.58 24323352
## 8 9 2015 11090 강북구 26043.82 23699745
## 9 10 2015 11100 도봉구 23709.49 20726962
## 10 11 2015 11110 노원구 31699.96 35417463
## 11 12 2015 11120 은평구 33858.88 31273677
## 12 13 2015 11130 서대문구 22368.34 17439426
## 13 14 2015 11140 마포구 27925.33 24600107
## 14 15 2015 11150 양천구 27626.60 17850203
## 15 16 2015 11160 강서구 40098.08 42863269
## 16 17 2015 11170 구로구 31103.07 19847197
## 17 18 2015 11180 금천구 20380.61 12557020
## 18 19 2015 11190 영등포구 23107.91 21572051
## 19 20 2015 11200 동작구 24913.27 17392989
## 20 21 2015 11210 관악구 27136.86 29834935
## 21 22 2015 11220 서초구 44617.35 47852315
## 22 23 2015 11230 강남구 32988.36 38407713
## 23 24 2015 11240 송파구 30887.14 33584622
## 24 25 2015 11250 강동구 23549.76 25466630
## 25 26 2015 21010 중구 12706.27 3194750
## 26 27 2015 21020 서구 31255.87 14106823
## 27 28 2015 21030 동구 17347.89 9866591
## 28 29 2015 21040 영도구 30788.09 14698081
## 29 30 2015 21050 부산진구 28485.74 29471189
## 30 31 2015 21060 동래구 22427.75 16936001
## 31 32 2015 21070 남구 33357.59 27509860
## 32 33 2015 21080 북구 33788.56 40219559
## 33 34 2015 21090 해운대구 44225.83 52284131
## 34 35 2015 21100 사하구 61561.63 46801522
## 35 36 2015 21110 금정구 40951.22 64978779
## 36 37 2015 21120 강서구 155300.15 193194370
## 37 38 2015 21130 연제구 21653.55 12134219
## 38 39 2015 21140 수영구 23857.38 10600414
## 39 40 2015 21150 사상구 29198.40 36654384
## 40 41 2015 21310 기장군 96285.27 220889389
## 41 42 2015 22010 중구 12393.21 7037639
## 42 43 2015 22020 동구 68146.61 181859442
## 43 44 2015 22030 서구 19465.35 17192844
## 44 45 2015 22040 남구 18798.52 17492335
## 45 46 2015 22050 북구 50520.55 93390058
## 46 47 2015 22060 수성구 42973.27 76339231
## 47 48 2015 22070 달서구 43678.24 64013705
## 48 49 2015 22310 달성군 178967.05 422450011
## 49 50 2015 23010 중구 149391.41 152958536
## 50 51 2015 23020 동구 22237.19 7357166
## 51 52 2015 23030 남구 25165.50 24616800
## 52 53 2015 23040 연수구 51216.03 78728237
## 53 54 2015 23050 남동구 43856.72 57828764
## 54 55 2015 23060 부평구 35506.11 31991494
## 55 56 2015 23070 계양구 43024.65 45407475
## 56 57 2015 23080 서구 74476.54 134871329
## 57 58 2015 23310 강화군 270617.54 427786467
## 58 59 2015 23320 옹진군 517390.73 205889034
## 59 60 2015 24010 동구 35102.96 48268060
## 60 61 2015 24020 서구 39292.79 47715151
## 61 62 2015 24030 남구 53998.81 60375740
## 62 63 2015 24040 북구 69670.28 120315690
## 63 64 2015 24050 광산구 89460.29 221459817
## 64 65 2015 25010 동구 92435.11 136273759
## 65 66 2015 25020 중구 46956.91 61725972
## 66 67 2015 25030 서구 62246.63 95913363
## 67 68 2015 25040 유성구 77958.39 175511510
## 68 69 2015 25050 대덕구 52967.26 69774622
## 69 70 2015 26010 중구 29975.55 36443254
## 70 71 2015 26020 남구 53495.28 75807402
## 71 72 2015 26030 동구 51275.72 38270959
## 72 73 2015 26040 북구 74377.90 158945428
## 73 74 2015 26310 울주군 188350.15 759948786
## 74 75 2015 29010 세종시 144684.71 465430058
## 75 76 2015 31011 수원시장안구 28145.64 33179199
## 76 77 2015 31012 수원시권선구 37863.48 47036538
## 77 78 2015 31013 수원시팔달구 23359.27 12922974
## 78 79 2015 31014 수원시영통구 39321.04 27679927
## 79 80 2015 31021 성남시수정구 40286.73 45479130
## 80 81 2015 31022 성남시중원구 26288.88 26241348
## 81 82 2015 31023 성남시분당구 42694.14 69833898
## 82 83 2015 31030 의정부시 45878.20 81748127
## 83 84 2015 31041 안양시만안구 35926.31 36889124
## 84 85 2015 31042 안양시동안구 25510.98 22146198
## 85 86 2015 31051 부천시원미구 24571.18 20547547
## 86 87 2015 31052 부천시소사구 24189.22 13039542
## 87 88 2015 31053 부천시오정구 25473.42 20159364
## 88 89 2015 31060 광명시 36374.59 38950970
## 89 90 2015 31070 평택시 146285.59 459432061
## 90 91 2015 31080 동두천시 47358.36 95751724
## 91 92 2015 31091 안산시상록구 52227.66 59408241
## 92 93 2015 31092 안산시단원구 159199.35 104104876
## 93 94 2015 31101 고양시덕양구 95566.25 162463454
## 94 95 2015 31103 고양시일산동구 45322.95 60101681
## 95 96 2015 31104 고양시일산서구 32505.47 43373940
## 96 97 2015 31110 과천시 29663.90 35359913
## 97 98 2015 31120 구리시 32580.22 32288178
## 98 99 2015 31130 남양주시 107732.25 457701436
## 99 100 2015 31140 오산시 36830.19 42439188
## 100 101 2015 31150 시흥시 74380.94 143267852
## 101 102 2015 31160 군포시 31152.19 35939268
## 102 103 2015 31170 의왕시 43972.60 54010449
## 103 104 2015 31180 하남시 56085.13 94131214
## 104 105 2015 31191 용인시처인구 152594.62 467967441
## 105 106 2015 31192 용인시기흥구 50015.44 81579358
## 106 107 2015 31193 용인시수지구 40287.15 42228562
## 107 108 2015 31210 이천시 141114.59 461050735
## 108 109 2015 31220 안성시 161090.83 554144475
## 109 110 2015 31230 김포시 112827.31 280495809
## 110 111 2015 31240 화성시 316722.80 699919952
## 111 112 2015 31250 광주시 129299.82 428413935
## 112 113 2015 31260 양주시 107123.86 310180550
## 113 114 2015 31270 포천시 197115.94 826263005
## 114 115 2015 31280 여주시 151513.88 607148259
## 115 116 2015 31370 가평군 180739.35 840309168
## 116 117 2015 31380 양평군 193757.75 878720800
## 117 118 2015 32010 춘천시 238638.86 1114489637
## 118 119 2015 32020 원주시 199224.13 873158654
## 119 120 2015 32030 강릉시 213583.56 1043056914
## 120 121 2015 32040 동해시 90668.53 181857558
## 121 122 2015 32050 태백시 117807.64 302924484
## 122 123 2015 32060 속초시 63045.79 107012506
## 123 124 2015 32070 삼척시 246198.46 1189142486
## 124 125 2015 32310 홍천군 339445.69 1815412037
## 125 126 2015 32320 횡성군 214002.11 993656827
## 126 127 2015 32330 영월군 290759.46 1120989920
## 127 128 2015 32340 평창군 254130.49 1464063502
## 128 129 2015 32350 정선군 223103.60 1217327443
## 129 130 2015 32390 인제군 254805.64 1636742263
## 130 131 2015 32410 양양군 140416.27 634651777
## 131 132 2015 33020 충주시 211126.47 982092436
## 132 133 2015 33030 제천시 223260.99 880654231
## 133 134 2015 33041 청주시상당구 138454.84 402849141
## 134 135 2015 33042 청주시서원구 77256.90 123229816
## 135 136 2015 33043 청주시흥덕구 71755.92 197365807
## 136 137 2015 33044 청주시청원구 88156.59 215355172
## 137 138 2015 33320 보은군 147029.53 583647825
## 138 139 2015 33330 옥천군 145821.84 541310997
## 139 140 2015 33340 영동군 177677.62 852482799
## 140 141 2015 33350 진천군 121483.27 407227538
## 141 142 2015 33360 괴산군 200223.51 840704089
## 142 143 2015 33370 음성군 159411.98 520252345
## 143 144 2015 33380 단양군 169910.62 780103044
## 144 145 2015 33390 증평군 64959.83 81798537
## 145 146 2015 34011 천안시동남구 161212.52 437460610
## 146 147 2015 34012 천안시서북구 89583.14 197675198
## 147 148 2015 34020 공주시 190998.57 863079494
## 148 149 2015 34030 보령시 288190.78 608963640
## 149 150 2015 34040 아산시 118081.39 542102378
## 150 151 2015 34050 서산시 236954.22 731049995
## 151 152 2015 34060 논산시 141601.57 551835428
## 152 153 2015 34070 계룡시 45011.33 60348690
## 153 154 2015 34080 당진시 182698.21 708450677
## 154 155 2015 34310 금산군 149937.13 577165875
## 155 156 2015 34330 부여군 162524.90 624849896
## 156 157 2015 34340 서천군 158172.29 371777289
## 157 158 2015 34350 청양군 131234.74 480257517
## 158 159 2015 34360 홍성군 140357.87 452847951
## 159 160 2015 34370 예산군 160782.60 541455077
## 160 161 2015 34380 태안군 445327.26 574604988
## 161 162 2015 35011 전주시완산구 64074.14 94324949
## 162 163 2015 35012 전주시덕진구 69773.44 110812194
## 163 164 2015 35020 군산시 309293.14 397249937
## 164 165 2015 35030 익산시 118794.35 508576421
## 165 166 2015 35040 정읍시 169224.58 695596228
## 166 167 2015 35050 남원시 182869.50 749120993
## 167 168 2015 35060 김제시 133906.56 510250561
## 168 169 2015 35310 완주군 256858.99 821353296
## 169 170 2015 35320 진안군 162108.31 789564037
## 170 171 2015 35330 무주군 150344.49 629495294
## 171 172 2015 35340 장수군 148015.44 530899113
## 172 173 2015 35350 임실군 161666.93 598315705
## 173 174 2015 35360 순창군 172674.08 498722376
## 174 175 2015 35370 고창군 172288.63 613860589
## 175 176 2015 35380 부안군 228963.29 487329877
## 176 177 2015 36010 목포시 87311.41 55849604
## 177 178 2015 36020 여수시 889157.83 538163499
## 178 179 2015 36030 순천시 195147.68 911316181
## 179 180 2015 36040 나주시 187540.76 607611044
## 180 181 2015 36060 광양시 158212.72 469074974
## 181 182 2015 36310 담양군 149754.80 451610301
## 182 183 2015 36320 곡성군 132245.15 547275256
## 183 184 2015 36330 구례군 96848.59 439292956
## 184 185 2015 36350 고흥군 702076.66 821737331
## 185 186 2015 36360 보성군 223844.04 666409428
## 186 187 2015 36370 화순군 172608.20 787302631
## 187 188 2015 36380 장흥군 216330.92 622908205
## 188 189 2015 36390 강진군 193266.76 501755646
## 189 190 2015 36400 해남군 470921.75 1003494622
## 190 191 2015 36410 영암군 206092.58 591204566
## 191 192 2015 36420 무안군 284948.50 463969269
## 192 193 2015 36430 함평군 128761.47 391046490
## 193 194 2015 36440 영광군 282808.60 496580290
## 194 195 2015 36450 장성군 144155.84 518161428
## 195 196 2015 36460 완도군 823340.38 452411589
## 196 197 2015 36470 진도군 590394.28 466250709
## 197 198 2015 36480 신안군 1519222.96 853667617
## 198 199 2015 37011 포항시남구 177473.19 399044997
## 199 200 2015 37012 포항시북구 183967.09 737131375
## 200 201 2015 37020 경주시 245670.12 1324006841
## 201 202 2015 37030 김천시 206578.21 1004708898
## 202 203 2015 37040 안동시 267123.09 1526933449
## 203 204 2015 37050 구미시 164516.00 615090958
## 204 205 2015 37060 영주시 173354.17 673488026
## 205 206 2015 37070 영천시 177341.72 915045690
## 206 207 2015 37080 상주시 241946.71 1250228002
## 207 208 2015 37090 문경시 221422.82 913918066
## 208 209 2015 37100 경산시 132827.28 411231984
## 209 210 2015 37310 군위군 183376.30 611221426
## 210 211 2015 37320 의성군 235120.40 1168115930
## 211 212 2015 37330 청송군 194617.21 846901052
## 212 213 2015 37340 영양군 167849.49 820662604
## 213 214 2015 37350 영덕군 170193.43 747086328
## 214 215 2015 37360 청도군 187935.79 690452757
## 215 216 2015 37370 고령군 148421.87 384085742
## 216 217 2015 37380 성주군 144936.38 614369355
## 217 218 2015 37390 칠곡군 146952.42 451457342
## 218 219 2015 37400 예천군 170394.78 663859954
## 219 220 2015 37410 봉화군 229954.24 1201441146
## 220 221 2015 37420 울진군 225509.86 994216867
## 221 222 2015 37430 울릉군 66745.53 76102370
## 222 223 2015 38030 진주시 168720.08 712355616
## 223 224 2015 38050 통영시 663952.75 263039542
## 224 225 2015 38060 사천시 259317.39 406467642
## 225 226 2015 38070 김해시 110683.52 461289733
## 226 227 2015 38080 밀양시 164060.83 801683232
## 227 228 2015 38090 거제시 411163.62 424295578
## 228 229 2015 38100 양산시 115414.24 485133543
## 229 230 2015 38111 창원시의창구 87700.60 211102121
## 230 231 2015 38112 창원시성산구 58086.01 82607781
## 231 232 2015 38113 창원시마산합포구 197116.53 252314599
## 232 233 2015 38114 창원시마산회원구 54125.63 91248454
## 233 234 2015 38115 창원시진해구 145726.93 126862594
## 234 235 2015 38310 의령군 143154.21 482145899
## 235 236 2015 38320 함안군 121484.54 415672747
## 236 237 2015 38330 창녕군 135475.82 527297052
## 237 238 2015 38340 고성군 259388.87 524797999
## 238 239 2015 38350 남해군 299784.23 373318376
## 239 240 2015 38360 하동군 208683.11 679558991
## 240 241 2015 38370 산청군 162991.18 791031299
## 241 242 2015 38380 함양군 164372.17 720662239
## 242 243 2015 38390 거창군 181583.98 800692773
## 243 244 2015 38400 합천군 203283.76 982988735
## 244 245 2015 39010 제주시 333563.56 1001310241
## 245 246 2015 39020 서귀포시 272531.04 887442618
## 246 247 2015 32400 고성군 153885.65 693779163
## 247 248 2015 31200 파주시 167417.66 685815273
## 248 249 2015 32360 철원군 214894.11 932097282
## 249 250 2015 31350 연천군 216127.17 861941537
## 250 251 2015 32380 양구군 146622.02 708415955
## 251 252 2015 32370 화천군 171727.65 904295898
# data.frame(shp2)
shp2@data[order(shp2$SIGUNGU_CD), ]
## OBJECTID BASE_YEAR SIGUNGU_CD SIGUNGU_NM SHAPE_LENG SHAPE_AREA
## 0 1 2015 11010 종로구 28517.28 23876840
## 1 2 2015 11020 중구 18756.19 10042696
## 2 3 2015 11030 용산구 21291.49 21190958
## 3 4 2015 11040 성동구 18946.85 16543127
## 4 5 2015 11050 광진구 18175.67 17637267
## 5 6 2015 11060 동대문구 18740.24 14499677
## 6 7 2015 11070 중랑구 19387.16 17930186
## 7 8 2015 11080 성북구 32157.58 24323352
## 8 9 2015 11090 강북구 26043.82 23699745
## 9 10 2015 11100 도봉구 23709.49 20726962
## 10 11 2015 11110 노원구 31699.96 35417463
## 11 12 2015 11120 은평구 33858.88 31273677
## 12 13 2015 11130 서대문구 22368.34 17439426
## 13 14 2015 11140 마포구 27925.33 24600107
## 14 15 2015 11150 양천구 27626.60 17850203
## 15 16 2015 11160 강서구 40098.08 42863269
## 16 17 2015 11170 구로구 31103.07 19847197
## 17 18 2015 11180 금천구 20380.61 12557020
## 18 19 2015 11190 영등포구 23107.91 21572051
## 19 20 2015 11200 동작구 24913.27 17392989
## 20 21 2015 11210 관악구 27136.86 29834935
## 21 22 2015 11220 서초구 44617.35 47852315
## 22 23 2015 11230 강남구 32988.36 38407713
## 23 24 2015 11240 송파구 30887.14 33584622
## 24 25 2015 11250 강동구 23549.76 25466630
## 25 26 2015 21010 중구 12706.27 3194750
## 26 27 2015 21020 서구 31255.87 14106823
## 27 28 2015 21030 동구 17347.89 9866591
## 28 29 2015 21040 영도구 30788.09 14698081
## 29 30 2015 21050 부산진구 28485.74 29471189
## 30 31 2015 21060 동래구 22427.75 16936001
## 31 32 2015 21070 남구 33357.59 27509860
## 32 33 2015 21080 북구 33788.56 40219559
## 33 34 2015 21090 해운대구 44225.83 52284131
## 34 35 2015 21100 사하구 61561.63 46801522
## 35 36 2015 21110 금정구 40951.22 64978779
## 36 37 2015 21120 강서구 155300.15 193194370
## 37 38 2015 21130 연제구 21653.55 12134219
## 38 39 2015 21140 수영구 23857.38 10600414
## 39 40 2015 21150 사상구 29198.40 36654384
## 40 41 2015 21310 기장군 96285.27 220889389
## 41 42 2015 22010 중구 12393.21 7037639
## 42 43 2015 22020 동구 68146.61 181859442
## 43 44 2015 22030 서구 19465.35 17192844
## 44 45 2015 22040 남구 18798.52 17492335
## 45 46 2015 22050 북구 50520.55 93390058
## 46 47 2015 22060 수성구 42973.27 76339231
## 47 48 2015 22070 달서구 43678.24 64013705
## 48 49 2015 22310 달성군 178967.05 422450011
## 49 50 2015 23010 중구 149391.41 152958536
## 50 51 2015 23020 동구 22237.19 7357166
## 51 52 2015 23030 남구 25165.50 24616800
## 52 53 2015 23040 연수구 51216.03 78728237
## 53 54 2015 23050 남동구 43856.72 57828764
## 54 55 2015 23060 부평구 35506.11 31991494
## 55 56 2015 23070 계양구 43024.65 45407475
## 56 57 2015 23080 서구 74476.54 134871329
## 57 58 2015 23310 강화군 270617.54 427786467
## 58 59 2015 23320 옹진군 517390.73 205889034
## 59 60 2015 24010 동구 35102.96 48268060
## 60 61 2015 24020 서구 39292.79 47715151
## 61 62 2015 24030 남구 53998.81 60375740
## 62 63 2015 24040 북구 69670.28 120315690
## 63 64 2015 24050 광산구 89460.29 221459817
## 64 65 2015 25010 동구 92435.11 136273759
## 65 66 2015 25020 중구 46956.91 61725972
## 66 67 2015 25030 서구 62246.63 95913363
## 67 68 2015 25040 유성구 77958.39 175511510
## 68 69 2015 25050 대덕구 52967.26 69774622
## 69 70 2015 26010 중구 29975.55 36443254
## 70 71 2015 26020 남구 53495.28 75807402
## 71 72 2015 26030 동구 51275.72 38270959
## 72 73 2015 26040 북구 74377.90 158945428
## 73 74 2015 26310 울주군 188350.15 759948786
## 74 75 2015 29010 세종시 144684.71 465430058
## 75 76 2015 31011 수원시장안구 28145.64 33179199
## 76 77 2015 31012 수원시권선구 37863.48 47036538
## 77 78 2015 31013 수원시팔달구 23359.27 12922974
## 78 79 2015 31014 수원시영통구 39321.04 27679927
## 79 80 2015 31021 성남시수정구 40286.73 45479130
## 80 81 2015 31022 성남시중원구 26288.88 26241348
## 81 82 2015 31023 성남시분당구 42694.14 69833898
## 82 83 2015 31030 의정부시 45878.20 81748127
## 83 84 2015 31041 안양시만안구 35926.31 36889124
## 84 85 2015 31042 안양시동안구 25510.98 22146198
## 85 86 2015 31051 부천시원미구 24571.18 20547547
## 86 87 2015 31052 부천시소사구 24189.22 13039542
## 87 88 2015 31053 부천시오정구 25473.42 20159364
## 88 89 2015 31060 광명시 36374.59 38950970
## 89 90 2015 31070 평택시 146285.59 459432061
## 90 91 2015 31080 동두천시 47358.36 95751724
## 91 92 2015 31091 안산시상록구 52227.66 59408241
## 92 93 2015 31092 안산시단원구 159199.35 104104876
## 93 94 2015 31101 고양시덕양구 95566.25 162463454
## 94 95 2015 31103 고양시일산동구 45322.95 60101681
## 95 96 2015 31104 고양시일산서구 32505.47 43373940
## 96 97 2015 31110 과천시 29663.90 35359913
## 97 98 2015 31120 구리시 32580.22 32288178
## 98 99 2015 31130 남양주시 107732.25 457701436
## 99 100 2015 31140 오산시 36830.19 42439188
## 100 101 2015 31150 시흥시 74380.94 143267852
## 101 102 2015 31160 군포시 31152.19 35939268
## 102 103 2015 31170 의왕시 43972.60 54010449
## 103 104 2015 31180 하남시 56085.13 94131214
## 104 105 2015 31191 용인시처인구 152594.62 467967441
## 105 106 2015 31192 용인시기흥구 50015.44 81579358
## 106 107 2015 31193 용인시수지구 40287.15 42228562
## 247 248 2015 31200 파주시 167417.66 685815273
## 107 108 2015 31210 이천시 141114.59 461050735
## 108 109 2015 31220 안성시 161090.83 554144475
## 109 110 2015 31230 김포시 112827.31 280495809
## 110 111 2015 31240 화성시 316722.80 699919952
## 111 112 2015 31250 광주시 129299.82 428413935
## 112 113 2015 31260 양주시 107123.86 310180550
## 113 114 2015 31270 포천시 197115.94 826263005
## 114 115 2015 31280 여주시 151513.88 607148259
## 249 250 2015 31350 연천군 216127.17 861941537
## 115 116 2015 31370 가평군 180739.35 840309168
## 116 117 2015 31380 양평군 193757.75 878720800
## 117 118 2015 32010 춘천시 238638.86 1114489637
## 118 119 2015 32020 원주시 199224.13 873158654
## 119 120 2015 32030 강릉시 213583.56 1043056914
## 120 121 2015 32040 동해시 90668.53 181857558
## 121 122 2015 32050 태백시 117807.64 302924484
## 122 123 2015 32060 속초시 63045.79 107012506
## 123 124 2015 32070 삼척시 246198.46 1189142486
## 124 125 2015 32310 홍천군 339445.69 1815412037
## 125 126 2015 32320 횡성군 214002.11 993656827
## 126 127 2015 32330 영월군 290759.46 1120989920
## 127 128 2015 32340 평창군 254130.49 1464063502
## 128 129 2015 32350 정선군 223103.60 1217327443
## 248 249 2015 32360 철원군 214894.11 932097282
## 251 252 2015 32370 화천군 171727.65 904295898
## 250 251 2015 32380 양구군 146622.02 708415955
## 129 130 2015 32390 인제군 254805.64 1636742263
## 246 247 2015 32400 고성군 153885.65 693779163
## 130 131 2015 32410 양양군 140416.27 634651777
## 131 132 2015 33020 충주시 211126.47 982092436
## 132 133 2015 33030 제천시 223260.99 880654231
## 133 134 2015 33041 청주시상당구 138454.84 402849141
## 134 135 2015 33042 청주시서원구 77256.90 123229816
## 135 136 2015 33043 청주시흥덕구 71755.92 197365807
## 136 137 2015 33044 청주시청원구 88156.59 215355172
## 137 138 2015 33320 보은군 147029.53 583647825
## 138 139 2015 33330 옥천군 145821.84 541310997
## 139 140 2015 33340 영동군 177677.62 852482799
## 140 141 2015 33350 진천군 121483.27 407227538
## 141 142 2015 33360 괴산군 200223.51 840704089
## 142 143 2015 33370 음성군 159411.98 520252345
## 143 144 2015 33380 단양군 169910.62 780103044
## 144 145 2015 33390 증평군 64959.83 81798537
## 145 146 2015 34011 천안시동남구 161212.52 437460610
## 146 147 2015 34012 천안시서북구 89583.14 197675198
## 147 148 2015 34020 공주시 190998.57 863079494
## 148 149 2015 34030 보령시 288190.78 608963640
## 149 150 2015 34040 아산시 118081.39 542102378
## 150 151 2015 34050 서산시 236954.22 731049995
## 151 152 2015 34060 논산시 141601.57 551835428
## 152 153 2015 34070 계룡시 45011.33 60348690
## 153 154 2015 34080 당진시 182698.21 708450677
## 154 155 2015 34310 금산군 149937.13 577165875
## 155 156 2015 34330 부여군 162524.90 624849896
## 156 157 2015 34340 서천군 158172.29 371777289
## 157 158 2015 34350 청양군 131234.74 480257517
## 158 159 2015 34360 홍성군 140357.87 452847951
## 159 160 2015 34370 예산군 160782.60 541455077
## 160 161 2015 34380 태안군 445327.26 574604988
## 161 162 2015 35011 전주시완산구 64074.14 94324949
## 162 163 2015 35012 전주시덕진구 69773.44 110812194
## 163 164 2015 35020 군산시 309293.14 397249937
## 164 165 2015 35030 익산시 118794.35 508576421
## 165 166 2015 35040 정읍시 169224.58 695596228
## 166 167 2015 35050 남원시 182869.50 749120993
## 167 168 2015 35060 김제시 133906.56 510250561
## 168 169 2015 35310 완주군 256858.99 821353296
## 169 170 2015 35320 진안군 162108.31 789564037
## 170 171 2015 35330 무주군 150344.49 629495294
## 171 172 2015 35340 장수군 148015.44 530899113
## 172 173 2015 35350 임실군 161666.93 598315705
## 173 174 2015 35360 순창군 172674.08 498722376
## 174 175 2015 35370 고창군 172288.63 613860589
## 175 176 2015 35380 부안군 228963.29 487329877
## 176 177 2015 36010 목포시 87311.41 55849604
## 177 178 2015 36020 여수시 889157.83 538163499
## 178 179 2015 36030 순천시 195147.68 911316181
## 179 180 2015 36040 나주시 187540.76 607611044
## 180 181 2015 36060 광양시 158212.72 469074974
## 181 182 2015 36310 담양군 149754.80 451610301
## 182 183 2015 36320 곡성군 132245.15 547275256
## 183 184 2015 36330 구례군 96848.59 439292956
## 184 185 2015 36350 고흥군 702076.66 821737331
## 185 186 2015 36360 보성군 223844.04 666409428
## 186 187 2015 36370 화순군 172608.20 787302631
## 187 188 2015 36380 장흥군 216330.92 622908205
## 188 189 2015 36390 강진군 193266.76 501755646
## 189 190 2015 36400 해남군 470921.75 1003494622
## 190 191 2015 36410 영암군 206092.58 591204566
## 191 192 2015 36420 무안군 284948.50 463969269
## 192 193 2015 36430 함평군 128761.47 391046490
## 193 194 2015 36440 영광군 282808.60 496580290
## 194 195 2015 36450 장성군 144155.84 518161428
## 195 196 2015 36460 완도군 823340.38 452411589
## 196 197 2015 36470 진도군 590394.28 466250709
## 197 198 2015 36480 신안군 1519222.96 853667617
## 198 199 2015 37011 포항시남구 177473.19 399044997
## 199 200 2015 37012 포항시북구 183967.09 737131375
## 200 201 2015 37020 경주시 245670.12 1324006841
## 201 202 2015 37030 김천시 206578.21 1004708898
## 202 203 2015 37040 안동시 267123.09 1526933449
## 203 204 2015 37050 구미시 164516.00 615090958
## 204 205 2015 37060 영주시 173354.17 673488026
## 205 206 2015 37070 영천시 177341.72 915045690
## 206 207 2015 37080 상주시 241946.71 1250228002
## 207 208 2015 37090 문경시 221422.82 913918066
## 208 209 2015 37100 경산시 132827.28 411231984
## 209 210 2015 37310 군위군 183376.30 611221426
## 210 211 2015 37320 의성군 235120.40 1168115930
## 211 212 2015 37330 청송군 194617.21 846901052
## 212 213 2015 37340 영양군 167849.49 820662604
## 213 214 2015 37350 영덕군 170193.43 747086328
## 214 215 2015 37360 청도군 187935.79 690452757
## 215 216 2015 37370 고령군 148421.87 384085742
## 216 217 2015 37380 성주군 144936.38 614369355
## 217 218 2015 37390 칠곡군 146952.42 451457342
## 218 219 2015 37400 예천군 170394.78 663859954
## 219 220 2015 37410 봉화군 229954.24 1201441146
## 220 221 2015 37420 울진군 225509.86 994216867
## 221 222 2015 37430 울릉군 66745.53 76102370
## 222 223 2015 38030 진주시 168720.08 712355616
## 223 224 2015 38050 통영시 663952.75 263039542
## 224 225 2015 38060 사천시 259317.39 406467642
## 225 226 2015 38070 김해시 110683.52 461289733
## 226 227 2015 38080 밀양시 164060.83 801683232
## 227 228 2015 38090 거제시 411163.62 424295578
## 228 229 2015 38100 양산시 115414.24 485133543
## 229 230 2015 38111 창원시의창구 87700.60 211102121
## 230 231 2015 38112 창원시성산구 58086.01 82607781
## 231 232 2015 38113 창원시마산합포구 197116.53 252314599
## 232 233 2015 38114 창원시마산회원구 54125.63 91248454
## 233 234 2015 38115 창원시진해구 145726.93 126862594
## 234 235 2015 38310 의령군 143154.21 482145899
## 235 236 2015 38320 함안군 121484.54 415672747
## 236 237 2015 38330 창녕군 135475.82 527297052
## 237 238 2015 38340 고성군 259388.87 524797999
## 238 239 2015 38350 남해군 299784.23 373318376
## 239 240 2015 38360 하동군 208683.11 679558991
## 240 241 2015 38370 산청군 162991.18 791031299
## 241 242 2015 38380 함양군 164372.17 720662239
## 242 243 2015 38390 거창군 181583.98 800692773
## 243 244 2015 38400 합천군 203283.76 982988735
## 244 245 2015 39010 제주시 333563.56 1001310241
## 245 246 2015 39020 서귀포시 272531.04 887442618
# shp2@data <- shp2@data[order(shp2$SIGUNGU_CD), ]
# shp2@data
opar <- par() #> 기본 설정을 저장한다.
par("mar") #> 플롯 마진의 기본 설정 확인
## [1] 5.1 4.1 4.1 2.1
par(mar = c(0, 0, 0, 0)) #> 여백의 빈 공간을 줄이기 위하여 설정. 없을 때와 비교
plot(shp2)
AREA2.shades <- auto.shading(shp2$SHAPE_AREA, cols = brewer.pal(5, "Blues"))
choropleth(shp2, shp2$SHAPE_AREA, shading = AREA2.shades)
choro.legend(1110000, 1600000, AREA2.shades)
par <- opar
proj4string(shp2) #> .shp 파일을 mapshaper.org 에서 간략히 하면 .prj 는 생성되지 않음.
## [1] "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"
#> 원시 layer에 제공되어 있는 .prj 파일을 옮겨와야 함.
head(coordinates(shp2)) #> 좌표 확인. 변환 필요한 좌표계.
## [,1] [,2]
## 0 953870.7 1955107
## 1 955463.1 1951210
## 2 954060.0 1948216
## 3 959481.7 1950317
## 4 963426.2 1949755
## 5 960664.3 1953680
shp2_84 <- shp2 %>%
spTransform(CRS("+init=epsg:4326")) #> 통상의 WGS84 좌표계로 변환
head(coordinates(shp2_84)) #> 통상의 좌표계로 변환된 것을 확인함.
## [,1] [,2]
## 0 126.9775 37.59422
## 1 126.9957 37.55916
## 2 126.9800 37.53212
## 3 127.0413 37.55130
## 4 127.0860 37.54641
## 5 127.0545 37.58167
# names(shp_simp84@data) <- c("id", "base_year", "code", "name_kor", "length", "area", "AB_name") #> 변수명 바꿈.
str(shp2_84@data) #> 변수명 등 확인.
## 'data.frame': 252 obs. of 6 variables:
## $ OBJECTID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ BASE_YEAR : chr "2015" "2015" "2015" "2015" ...
## $ SIGUNGU_CD: chr "11010" "11020" "11030" "11040" ...
## $ SIGUNGU_NM: chr "종로구" "중구" "용산구" "성동구" ...
## $ SHAPE_LENG: num 28517 18756 21291 18947 18176 ...
## $ SHAPE_AREA: num 23876840 10042696 21190958 16543127 17637267 ...
# shp_simp84$id <- as.character(shp_simp84$id)
# geocode(shp_simp$name_eng)
# map_simp <- tidy(shp_simp84) #> `tidy` 데이터로 변환
# str(map_simp) #> 데이터 구조 확인
shp2_84$id <- rownames(shp2_84@data) #> `id` 변수 생성. `left_join()`에 반드시 필요함. `tidy()`의 결과로 나오는 데이터 프레임에는 `@data`의 `code`, `region`의 정보가 누락됨.
shp2_84$region <- shp2_84$SIGUNGU_CD
head(shp2_84@data)
## OBJECTID BASE_YEAR SIGUNGU_CD SIGUNGU_NM SHAPE_LENG SHAPE_AREA id region
## 0 1 2015 11010 종로구 28517.28 23876840 0 11010
## 1 2 2015 11020 중구 18756.19 10042696 1 11020
## 2 3 2015 11030 용산구 21291.49 21190958 2 11030
## 3 4 2015 11040 성동구 18946.85 16543127 3 11040
## 4 5 2015 11050 광진구 18175.67 17637267 4 11050
## 5 6 2015 11060 동대문구 18740.24 14499677 5 11060
tail(shp2_84@data) #> 데이터 슬롯 확인
## OBJECTID BASE_YEAR SIGUNGU_CD SIGUNGU_NM SHAPE_LENG SHAPE_AREA id region
## 246 247 2015 32400 고성군 153885.7 693779163 246 32400
## 247 248 2015 31200 파주시 167417.7 685815273 247 31200
## 248 249 2015 32360 철원군 214894.1 932097282 248 32360
## 249 250 2015 31350 연천군 216127.2 861941537 249 31350
## 250 251 2015 32380 양구군 146622.0 708415955 250 32380
## 251 252 2015 32370 화천군 171727.6 904295898 251 32370
map2_coords <- coordinates(shp2_84) #> `geom_text()`에 필요한 좌표 복사
colnames(map2_coords) <- c("long", "lat") #> 좌표계 이름 명칭.
head(map2_coords) # 좌표 확인
## long lat
## 0 126.9775 37.59422
## 1 126.9957 37.55916
## 2 126.9800 37.53212
## 3 127.0413 37.55130
## 4 127.0860 37.54641
## 5 127.0545 37.58167
map2_data <- cbind(map2_coords, shp2_84@data) # shp_simp84@data 에 좌표 추가
head(map2_data)
## long lat OBJECTID BASE_YEAR SIGUNGU_CD SIGUNGU_NM SHAPE_LENG SHAPE_AREA id region
## 0 126.9775 37.59422 1 2015 11010 종로구 28517.28 23876840 0 11010
## 1 126.9957 37.55916 2 2015 11020 중구 18756.19 10042696 1 11020
## 2 126.9800 37.53212 3 2015 11030 용산구 21291.49 21190958 2 11030
## 3 127.0413 37.55130 4 2015 11040 성동구 18946.85 16543127 3 11040
## 4 127.0860 37.54641 5 2015 11050 광진구 18175.67 17637267 4 11050
## 5 127.0545 37.58167 6 2015 11060 동대문구 18740.24 14499677 5 11060
shp2_84_df <- tidy(shp2_84)
## Regions defined for each Polygons
str(shp2_84_df)
## 'data.frame': 17002 obs. of 7 variables:
## $ long : num 127 127 127 127 127 ...
## $ lat : num 37.6 37.6 37.6 37.6 37.6 ...
## $ order: int 1 2 3 4 5 6 7 8 9 10 ...
## $ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ piece: Factor w/ 40 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ group: Factor w/ 422 levels "0.1","1.1","2.1",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ id : chr "0" "0" "0" "0" ...
str(shp2_84@data)
## 'data.frame': 252 obs. of 8 variables:
## $ OBJECTID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ BASE_YEAR : chr "2015" "2015" "2015" "2015" ...
## $ SIGUNGU_CD: chr "11010" "11020" "11030" "11040" ...
## $ SIGUNGU_NM: chr "종로구" "중구" "용산구" "성동구" ...
## $ SHAPE_LENG: num 28517 18756 21291 18947 18176 ...
## $ SHAPE_AREA: num 23876840 10042696 21190958 16543127 17637267 ...
## $ id : chr "0" "1" "2" "3" ...
## $ region : chr "11010" "11020" "11030" "11040" ...
map2_df <- left_join(shp2_84_df, shp2_84@data, by = c("id" = "id"))
str(map2_df)
## 'data.frame': 17002 obs. of 14 variables:
## $ long : num 127 127 127 127 127 ...
## $ lat : num 37.6 37.6 37.6 37.6 37.6 ...
## $ order : int 1 2 3 4 5 6 7 8 9 10 ...
## $ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ piece : Factor w/ 40 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ group : Factor w/ 422 levels "0.1","1.1","2.1",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ id : chr "0" "0" "0" "0" ...
## $ OBJECTID : int 1 1 1 1 1 1 1 1 1 1 ...
## $ BASE_YEAR : chr "2015" "2015" "2015" "2015" ...
## $ SIGUNGU_CD: chr "11010" "11010" "11010" "11010" ...
## $ SIGUNGU_NM: chr "종로구" "종로구" "종로구" "종로구" ...
## $ SHAPE_LENG: num 28517 28517 28517 28517 28517 ...
## $ SHAPE_AREA: num 23876840 23876840 23876840 23876840 23876840 ...
## $ region : chr "11010" "11010" "11010" "11010" ...
library(tmap)
qtm(shp2_84,
fill = "SHAPE_AREA",
fill.title = "면적") +
tm_layout(fontfamily = "HCR Dotum LVT")
qtm(shp2_84,
fill = "SHAPE_LENG",
fill.title = "둘레") +
tm_layout(fontfamily = "HCR Dotum LVT")
g0 <- ggplot(data = map2_df,
mapping = aes(x = long,
y = lat,
group = group)) +
geom_polygon(fill = "white",
colour = "black") +
coord_map()
g1 <- g0 + geom_text(data = map2_data,
mapping = aes(x = long,
y = lat,
label = SIGUNGU_NM),
inherit.aes = FALSE,
family = "HCR Dotum LVT",
size = 4,
colour = "blue")
g2 <- g1 + theme(axis.title.x = element_text(family = "HCR Dotum LVT"),
axis.title.y = element_text(family = "HCR Dotum LVT"),
text = element_text(family = "HCR Dotum LVT"))
g3 <- g2 + labs(x = "경도",
y = "위도")
g4 <- g3 + annotate("text",
x = Dokdo_coord$lon,
y = Dokdo_coord$lat,
label = "독도",
family = "HCR Dotum LVT",
colour = "red")
g4 + annotate("text",
x = Ulleung_coord$lon,
y = Ulleung_coord$lat + 0.2,
label = "울릉도",
family = "HCR Dotum LVT",
colour = "black")
#> data frame으로 변환하여 그리는 전형적인 과정
ggplot(data = shp2_84_df,
mapping = aes(x = long,
y = lat,
group = group)) +
geom_polygon(fill = "white",
colour = "black") +
coord_map() +
geom_text(data = map2_data,
mapping = aes(x = long,
y = lat,
label = SIGUNGU_NM),
inherit.aes = FALSE,
family = "HCR Dotum LVT",
size = 4,
colour = "blue") +
theme(axis.title.x = element_text(family = "HCR Dotum LVT"),
axis.title.y = element_text(family = "HCR Dotum LVT"),
text = element_text(family = "HCR Dotum LVT")) +
labs(x = "경도",
y = "위도") +
annotate("text",
x = Dokdo_coord$lon,
y = Dokdo_coord$lat,
label = "독도",
family = "HCR Dotum LVT",
colour = "red") +
annotate("text",
x = Ulleung_coord$lon,
y = Ulleung_coord$lat + 0.2,
label = "울릉도",
family = "HCR Dotum LVT",
colour = "black")
library(RColorBrewer)
ggplot(data = map2_df,
mapping = aes(x = long,
y = lat,
group = group,
fill = SHAPE_AREA)) +
geom_polygon() +
# geom_polygon(fill = "white",
# colour = "black") +
coord_map() +
theme(legend.text = element_text(family = "HCR Dotum LVT"),
legend.title = element_text(family = "HCR Dotum LVT")) +
guides(fill = guide_legend(title = "면적")) +
# scale_fill_brewer()
scale_fill_distiller()
leaflet
패키지library(leaflet)
mypalette1 <- colorNumeric(palette = "Reds", domain = shp1_84$SHAPE_AREA)
popup1 <- paste(shp1_84$SIDO_NM2,
"\n",
format(shp1_84$SHAPE_AREA/1000000, digits = 1, nsmall = 1, bigmark = ","),
"제곱km")
leaflet(shp1_84) %>%
addTiles() %>%
addPolygons(stroke = FALSE,
smoothFactor = 0.2,
fillOpacity = 0.8,
popup = popup1,
color = ~mypalette1(shp1_84$SHAPE_AREA))
mypalette2 <- colorNumeric(palette = "Reds", domain = shp2_84$SHAPE_AREA)
popup2 <- paste(shp2_84$SIGUNGU_NM,
"\n",
format(shp2_84$SHAPE_AREA/1000000, digits = 1, nsmall = 1, big.mark = ","),
"제곱km")
leaflet(shp2_84) %>%
addTiles() %>%
addPolygons(stroke = FALSE,
smoothFactor = 0.2,
fillOpacity = 0.8,
popup = popup2,
color = ~mypalette2(shp2_84$SHAPE_AREA))
save.image("./korea_map.RData")