Skip to content

bit2r/bitSpatial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bitSpatial

μ„€μΉ˜ν•˜κΈ°

bitSpatial νŒ¨ν‚€μ§€λŠ” GitHubμœΌλ‘œλΆ€ν„° λ‹€μŒκ³Ό 같이 μ„€μΉ˜ν•©λ‹ˆλ‹€.

# install.packages("devtools")
devtools::install_github("bit2r/bitSpatial")

λ°°κ²½

μ§€λ°©μžμΉ˜ μ‹œλŒ€μ— λŒ€ν•œλ―Όκ΅­μ΄ μ•„λ‹Œ 지역에 λŒ€ν•œ 경제, μ‚¬νšŒ, λ¬Έν™” λ“±μ˜ μ΄ν•΄λŠ” μ€‘μš”ν•œ μ‚¬νšŒκ³Όν•™μ μΈ μš”μ†Œμž…λ‹ˆλ‹€. 그리고 지역에 λŒ€ν•œ μ΄ν•΄λŠ” 쒀더 직관적인 μ‹œκ°ν™” 방법이 μœ μš©ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ 방법은 μž₯λ―ΈλΉ› 청사진이 μ•„λ‹™λ‹ˆλ‹€. 데이터λ₯Ό 지역 κΈ°μ€€μœΌλ‘œ μ§‘κ³„ν•˜κ³ , μ§‘κ³„ν•œ 톡계λ₯Ό μ‹œκ°ν™”ν•˜λŠ” 방법이 λ…Ήλ‘μΉ˜ μ•ŠκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

1. 행정ꡬ역 μ²΄κ³„μ˜ μΌλ°˜ν™” 이슈

ν˜„μž¬ μš°λ¦¬λ‚˜λΌ 행정ꡬ역 μ²΄κ³„λŠ” λ‹€μŒ κ·Έλ¦Όκ³Ό κ°™μŠ΅λ‹ˆλ‹€. ν–‰μ • ꡬ역은 크게 1개의 νŠΉλ³„μ‹œ(μ„œμšΈ), 6개의 κ΄‘μ—­μ‹œ(λΆ€μ‚°, λŒ€κ΅¬, 인천, κ΄‘μ£Ό, λŒ€μ „, μšΈμ‚°), 6개의 도(κ²½κΈ°, 좩뢁, 좩남, 전남, 경뢁, 경남), 1개의 νŠΉλ³„μžμΉ˜μ‹œ(μ„Έμ’…), 3개의 νŠΉλ³„μžμΉ˜λ„(강원, 전뢁, 제주)둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.1

μ†ŒμŠ€: http://nationalatlas.ngii.go.kr/pages/page_1217.php

μ†ŒμŠ€:

μ‚½ν™”μ†ŒμŠ€: ꡭ토지리정보원 μ²­μ†Œλ…„μ„ μœ„ν•œ ꡭ가지집

이λ₯Ό κΈ°μ€€μœΌλ‘œ 행정ꡬ역 체계λ₯Ό μΌλ°˜ν™”ν•˜κΈ° μœ„ν•΄μ„œ κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ > 읍면동 레벨의 3단계 계측을 생각해볼 수 μžˆμŠ΅λ‹ˆλ‹€.

  • κ΄‘μ—­μ‹œλ„
    • νŠΉλ³„μ‹œ + νŠΉλ³„μžμΉ˜μ‹œ + νŠΉλ³„μžμΉ˜λ„ + κ΄‘μ—­μ‹œ + 도
  • μ‹œκ΅°κ΅¬
    • μ‹œ + κ΅° + ꡬ
  • 읍면동
    • 읍 + λ©΄ + 동

κ·ΈλŸ¬λ‚˜ κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ > μλ©΄λ™μ˜ 3단 계측 κ΅¬μ‘°μ—μ„œ λ‹€μŒμ˜ μ˜ˆμ™Έ 사항이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

  • μ„Έμ’…νŠΉλ³„ μžμΉ˜μ‹œμ˜ ꡬ쑰
    • 2단계 계측
    • κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ 레벨 μ—†μŒ > 읍면동
  • 좩청남도 μ²œμ•ˆμ‹œ 동남ꡬ 신방동
    • 4단계 계측
    • 도 + μ‹œ + ꡬ + 읍면동
    • 인ꡬ가 νŒ½μ°½ν•˜λŠ” 도에 ν¬ν•¨λœ 일뢀 μ‹œμ˜ 경우 (ꡬ) λ ˆλ²¨μ„ ν¬ν•¨ν•˜κΈ°λ„ 함
      • 경기도 μˆ˜μ›μ‹œ, 경기도 μ„±λ‚¨μ‹œ, 경기도 κ³ μ–‘μ‹œ λ“±

2. 행정ꡬ역 μ²΄κ³„μ˜ λ³€ν™” 이슈

행정ꡬ역 μ²΄κ³„λŠ” λ³€ν™”ν•©λ‹ˆλ‹€. λ‹€μŒ 그림은 κ΄‘μ—­μ‹œλ„ 레벨의 행정ꡬ역 체계 λ³€κ²½ νžˆμŠ€ν† λ¦¬μž…λ‹ˆλ‹€.

μ†ŒμŠ€: http://nationalatlas.ngii.go.kr/pages/page_1217.php

μ†ŒμŠ€:

μ‚½ν™”μ†ŒμŠ€: ꡭ토지리정보원 μ²­μ†Œλ…„μ„ μœ„ν•œ ꡭ가지집

지역에 λŒ€ν•œ 톡계가 ν˜„ν™© 뢄석을 λͺ©μ μœΌλ‘œ ν•œλ‹€λ©΄ λ¬Έμ œκ°€ μ—†κ² μ§€λ§Œ, μ‹œμ λ³„ ν†΅κ³„μ˜ λ³€ν™”λ₯Ό μ‚΄ν”ΌλŠ” 좔이뢄석을 μˆ˜ν–‰ν•  κ²½μš°μ—λŠ” λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. 행정ꡬ역 μ²΄κ³„μ˜ λ³€κ²½μœΌλ‘œ μΈν•΄μ„œ 과거의 톡계λ₯Ό ν˜„μž¬μ˜ 행정ꡬ역에 맀핑할 수 μ—†λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλ‚˜λ§ˆ κ΄‘μ—­μ‹œλ„μ™€ μ‹œκ΅°κ΅¬ 레벨의 ν–‰μ •κ΅¬μ—­μ˜ 변경은 ν”μΉ˜ μ•Šμ§€λ§Œ, 읍면동 레벨(특히 행정동 κΈ°μ€€)의 ν–‰μ •κ΅¬μ—­μ˜ 변경은 맀우 잦게 λ°œμƒν•©λ‹ˆλ‹€. ν•˜λ‚˜μ˜ 동이 μ—¬λŸ¬ 개의 λ™μœΌλ‘œ λΆ„λ™λ˜κ±°λ‚˜, μ—¬λŸ¬ 동이 ν•©λ™ν•˜μ—¬ ν•˜λ‚˜μ˜ ꡬ둜 λ³€ν•©λ˜κ±°λ‚˜ ν•˜λŠ” 사둀가 λ§ŽμŠ΅λ‹ˆλ‹€.

3. 법정동이냐 행정동이냐 그것이 λ¬Έμ œλ‘œλ‹€.

κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ > 읍면동 λ ˆλ²¨μ—μ„œμ˜ 읍면동은 두 가지 기쀀이 μžˆμŠ΅λ‹ˆλ‹€.

  • 법정동
    • λ²•μœΌλ‘œ μ •ν•œ λ™μ˜ 의미둜, λ²•μœΌλ‘œ μ •ν•œ ν–‰μ •κ΅¬μ—­μ˜ λ‹¨μœ„
    • 1914λ…„ μ‹œν–‰λœ 행정ꡬ역 ν†΅νν•©λ•Œ μ •ν•œ κ²ƒμœΌλ‘œ, ν˜„μž¬κΉŒμ§€ 거의 변동이 μ—†μŒ
  • 행정동
    • ν–‰μ •λŠ₯λ₯ , μ£Όλ―ΌνŽΈμ˜μ— μ˜ν•΄ μ„€μ •ν•œ ν–‰μ •κ΅¬μ—­μ˜ λ‹¨μœ„
    • 인ꡬ수 기반으둜 λ‚˜λ‰˜μ–΄μ§€λ©° μ£Όλ―Όμ„Όν„°μ—μ„œ κ΄€λ¦¬ν•˜λŠ” ꡬ역
    • νŽΈμ˜μ— 따라 λΆ„ν• /병합 λ“±μ˜ λ³€κ²½ 및 폐지가 λ°œμƒν•¨

λ¬Έμ œλŠ” 법정동:ν–‰μ •λ™μ˜ κ΄€κ³„λŠ” M:N의 κ΄€κ³„λ‘œ, 톡계 집계에 μžˆμ–΄μ„œ μƒν˜Έ λ§€ν•‘ν•˜κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ— ν•˜λ‚˜μ˜ 집계 기쀀을 κ°€μ Έκ°€μ•Ό ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€.

  • 법정동은 변동이 적기 λ•Œλ¬Έμ— λ²•μ •λ™μ˜ μ§‘κ³„κΈ°μ€€μœΌλ‘œ κ°€μ Έκ°€λ©΄ 좔이뢄석 λ“±μ˜ μž₯점이 μžˆμ§€λ§Œ,
    • 곡곡 λ°μ΄ν„°μ—μ„œ 법정동 κΈ°μ€€μœΌλ‘œ λ°°ν¬ν•˜λŠ” 톡계가 μ μŠ΅λ‹ˆλ‹€.
  • 행정동은 변동이 많기 λ•Œλ¬Έμ— ν–‰μ •λ™μ˜ μ§‘κ³„κΈ°μ€€μœΌλ‘œ κ°€μ Έκ°€λ©΄ 좔이뢄석 λ“±μ˜ 단점이 μžˆμ§€λ§Œ,
    • 곡곡 λ°μ΄ν„°μ—μ„œ 행정동 κΈ°μ€€μœΌλ‘œ λ°°ν¬ν•˜λŠ” 톡계가 λ§ŽμŠ΅λ‹ˆλ‹€.
    • λ§Žμ€ νŒŒμƒ 톡계가 인ꡬ톡계 기반으둜 μž‘μ„±λ˜κΈ° λ•Œλ¬Έμ— μΈκ΅¬ν†΅κ³„λŠ” μ€‘μš”ν•œ ν†΅κ³„μž…λ‹ˆλ‹€.

4. 읍면동 행정ꡬ역 레벨 μ§‘κ³„μ˜ 어렀움

μ§€λ²ˆ μ£Όμ†Œμ—μ„œ μ΄μ œλŠ” λ„λ‘œλͺ… μ£Όμ†Œκ°€ ν‘œμ€€ μ£Όμ†Œ μ²΄κ³„λ‘œ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μš°λ¦¬κ°€ 집계해야할 μ§€μ—­κΈ°λ°˜μ˜ Raw λ°μ΄ν„°λŠ” μ§€λ²ˆμ£Όμ†Œ, λ„λ‘œλͺ…μ£Όμ†Œκ°€ ν˜Όμš©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 과거의 톡계λ₯Ό λ¬΄μ‹œν•˜κ³  항상 ν˜„μž¬ κΈ°μ€€μ˜ 톡계λ₯Ό μ‚¬μš©ν•  수 μ—†μœΌλ©°, κ²½μš°μ— λ”°λΌμ„œ ν˜„μž¬ κΈ°μ€€μ˜ Raw 데이터가 κ³Όκ±° μ£Όμ†Œ μ²΄κ³„λ‘œ λ°°ν¬λ˜λŠ” λ¬Έμ œλ„ μžˆμŠ΅λ‹ˆλ‹€.

λ„λ‘œλͺ… μ£Όμ†ŒλŠ” 길게 이어진 λ„λ‘œλ₯Ό κΈ°μ€€μœΌλ‘œ λ§Œλ“€μ–΄μ§„ μ²΄κ³„μž…λ‹ˆλ‹€. ꡬ역을 λΆ„ν• ν•˜λŠ” 기쀀이 μ•„λ‹ˆμ–΄μ„œ, μ–΄λ–€ λ„λ‘œλŠ” μ—¬λŸ¬ ꡬ역을 λ„˜λ‚˜λ“€λ©΄ 이어져 μžˆκΈ°λ„ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ λ„λ‘œλͺ… μ£Όμ†Œ μ •λ³΄λ‘œ ν–‰μ •λ™μ΄λ‚˜ λ²•μ •λ™μœΌλ‘œ μ§‘κ³„ν•˜λŠ” 것은 그리 μ‰¬μš΄ μž‘μ—…μ€ μ•„λ‹™λ‹ˆλ‹€.

5. λΉ„ν‘œμ€€ν™”λœ 관리 체계

μ •λΆ€μ—μ„œ μ œκ³΅ν•˜λŠ” 곡곡 λ°μ΄ν„°λŠ” ν•œμ‹¬μŠ€λŸ½κ²Œλ„, μ΄λŸ¬ν•œ 지역 μ²΄κ³„μ˜ ν‘œμ€€μ΄ μ—†μŠ΅λ‹ˆλ‹€. μΌλ‘€λ‘œ ν–‰μ •μ•ˆμ „λΆ€μ—μ„œ κ΄€λ¦¬ν•˜λŠ” 행정동 μ½”λ“œμ™€ ν†΅κ³„μ²­μ—μ„œ κ΄€λ¦¬ν•˜λŠ” 행정동 μ½”λ“œ 체계가 λ‹€λ¦…λ‹ˆλ‹€. κ·Έλ‘œλ―€λ‘œ μ—¬λŸ¬ 곡곡 데이터λ₯Ό ν†΅ν•©ν•˜μ—¬ 데이터λ₯Ό 뢄석할 λ•Œμ—λŠ” 데이터 μˆ˜μš”μžκ°€ 이 문제λ₯Ό ν•΄κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

6. κ³΅κ³΅μž¬λ‘œμ„œμ˜ μˆ˜μΉ˜μ§€λ„μ˜ ν•œκ³„

μ§€λ¦¬μ •λ³΄λŠ” κ΅­κ°€λΆ„λ‹¨μ΄λΌλŠ” μ•ˆλ³΄μ˜ νŠΉμˆ˜μ„±μ΄ 있기 λ•Œλ¬Έμ— μ€‘μš”ν•˜κ²Œ λ‹€λ€„μ•Όν•˜λŠ” 기밀일 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 행정ꡬ역 경계 μˆ˜μΉ˜μ§€λ„μ˜ κ²½μš°μ—λŠ” 이와 λ¬΄κ΄€ν•œ μ •λ³΄λ‘œμ„œ λ―Όκ°„ 및 ν•™κ³„μ˜ 연ꡬλ₯Ό μœ„ν•΄μ„œ μ•ˆμ •μ μœΌλ‘œ κ³΅κΈ‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ •λΆ€μ˜λ‚˜ 곡곡 κΈ°κ΄€μ—μ„œ λ°°ν¬ν•˜λŠ” 행정ꡬ역 경계 μˆ˜μΉ˜μ§€λ„λŠ” 거의 μ œν•œμ μ΄κ³ , 였λ₯˜κ°€ ν¬ν•¨λ˜μ–΄ μžˆκ±°λ‚˜ 행정ꡬ역 μ²΄κ³„μ˜ λ³€ν™”λ₯Ό 담지 λͺ»ν•˜κ³  μžˆλŠ” μ‹€μ •μž…λ‹ˆλ‹€. λ³€ν™”ν•˜λŠ” ν–‰μ • ꡬ역체계에 따라 νžˆμŠ€ν† λ¦¬μ»¬ν•˜κ²Œ λ°°ν¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ°œμš”

bitSpatial은 톡계지리정보(SGI; Statistical Geographic Information)λ₯Ό κ°œλ°œμ„ μ§€μ›ν•˜λŠ” νŒ¨ν‚€μ§€λ‘œ κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ > 읍면동 레벨의 행정ꡬ역 경계 μˆ˜μΉ˜μ§€λ„ 기반으둜 곡곡데이터λ₯Ό μ§‘κ³„ν•˜κ³ , 이λ₯Ό μ‹œκ°ν™”ν•˜λŠ” 일련의 λ¦¬μ†ŒμŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

bitSpatialλŠ” μ•žμ—μ„œ μ œκΈ°ν•œ 이슈λ₯Ό μ™„λ²½ν•˜κ²Œ ν•΄κ²°ν•œ μ™„λ²½ν•œ μ†”λ£¨μ…˜μ€ μ•„λ‹™λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ°¨μ„ μ˜ μ†”λ£¨μ…˜μ€ 될 수 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬μ™€ κ·Όμ ‘ν•œ 행정동 κΈ°μ€€μ˜ 행정ꡬ역 경계 μˆ˜μΉ˜μ§€λ„λ₯Ό μ€€λΉ„ν•˜μ˜€κ³ , μ—¬λŸ¬ 톡계λ₯Ό μ§‘μ ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 μ•žμœΌλ‘œλ„ μ—¬λŸ¬ 톡계λ₯Ό μΆ”κ°€ν•΄ λ‚˜κ°€λ € ν•©λ‹ˆλ‹€.

μ œκ³΅ν•˜λŠ” λ¦¬μ†ŒμŠ€

톡계지리정보 생산을 μœ„ν•œ λ¦¬μ†ŒμŠ€

  • κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ > 읍면동 레벨의 행정ꡬ역 경계 μˆ˜μΉ˜μ§€λ„ 제곡
    • μˆ˜μΉ˜μ§€λ„λ₯Ό sf 객체둜 κ°€κ³΅ν•˜μ—¬ 제곡
      • 맀년 6μ›” κΈ°μ€€μœΌλ‘œ 배포
    • 17 κ΄‘μ—­μ‹œλ„
    • 250 μ‹œκ΅°κ΅¬
    • 3,528 읍면동
  • μˆ˜μΉ˜μ§€λ„μ™€ κ²°ν•©ν•œ ν–‰μ •κ΅¬μ—­λ³„λ‘œ μ§‘κ³„λœ 톡계
    • 40개 톡계
    • 인ꡬ톡계, μ΄ˆμ€‘κ³  학ꡐ 톡계, 병원/μ•½κ΅­ 톡계
    • 집계 ν†΅κ³„λŠ” 계속 μΆ”κ°€ν•  μ˜ˆμ •
  • μˆ˜μΉ˜μ§€λ„μ™€ 쑰인할 수 μžˆλŠ” μ§‘κ³„λœ 톡계
    • 성별/μ—°λ ΉλŒ€λ³„ 인ꡬ수
  • μˆ˜μΉ˜μ§€λ„μ™€ 쑰인할 수 μžˆλŠ” μœ„μΉ˜μ •λ³΄ 데이터
    • μ΄ˆμ€‘λ“±ν•™κ΅ μœ„μΉ˜ 데이터
    • μ•½κ΅­/병원 μœ„μΉ˜ 데이터
    • 상가 μœ„μΉ˜ 데이터

지리 기반 연산을 μœ„ν•œ κΈ°λŠ₯

  • μœ„μΉ˜ μ’Œν‘œ 기반 μ—°μ‚°
    • 두 μ’Œν‘œμ˜ 거리 κ΅¬ν•˜κΈ°
    • κ²½μœ„λ„ μ’Œν‘œκ³„ μœ„μΉ˜μ •λ³΄μ˜ μ’Œν‘œκ³„ λ³€ν™˜
  • μ§€λ¦¬κΈ°λ°˜ 집계λ₯Ό μœ„ν•œ 메타
    • 우편번호 행정동 맀핑 데이터
    • μœ„λ„/κ²½λ„λ‘œ 행정ꡬ역 μ½”λ“œμ™€ 이름 κ°€μ Έμ˜€κΈ°

SGI μ‹œκ°ν™”λ₯Ό μœ„ν•œ κΈ°λŠ₯

  • μ£Όμ œλ„ μ‹œκ°ν™”
  • 졜적 지도 이미지 μ‚¬μ΄μ¦ˆ 계산
  • map μ‹œκ°ν™”μš© ggplot2 ν…Œλ§ˆ

λ¦¬μ†ŒμŠ€μ˜ μ›μ²œ

  • μˆ˜μΉ˜μ§€λ„
    • ν†΅κ³„μ²­μ˜ ν†΅κ³„μ§€λ¦¬μ„œλΉ„μŠ€μ—μ„œ λ°°ν¬ν•˜λŠ” 지역경계 μˆ˜μΉ˜μ§€λ„
      • 행정동 κΈ°μ€€
      • 맀년 주기적으둜 λ°°ν¬ν•˜λŠ” μž₯점으둜 μ„ μ •
        • 맀년 6μ›” κΈ°μ€€μœΌλ‘œ 배포
  • 톡계 및 집계 데이터

μ£Όμ œλ„ 그리기

sf 객체λ₯Ό λ‹€λ£° 수 μžˆλŠ” R μ‚¬μš©μžλŠ” sf 객체둜 μ œκ³΅ν•˜λŠ” μˆ˜μΉ˜μ§€λ„ 정보와 데이터λ₯Ό ν™œμš©ν•  수 μžˆκ² μœΌλ‚˜, μ΅μˆ™μΉ˜ μ•ŠλŠ” μ‚¬μš©μžλŠ” μ£Όμ œλ„ μ‹œκ°ν™” ν•¨μˆ˜μΈ thematic_map() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μ£Όμ œλ„λ₯Ό 그릴 수 μžˆμŠ΅λ‹ˆλ‹€.

이 ν•¨μˆ˜μ˜ μ›ν˜•μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

thematic_map(
  zoom = c("mega", "cty", "admi")[1],
  subset = NULL,
  stat = NULL,
  polygon = TRUE,
  point = FALSE,
  label = NULL,
  col_cnt = 9,
  palette = "YlOrRd",
  line_col = "darkgray",
  fill = "lightblue",
  point_col = "blue",
  title = NULL,
  subtitle = NULL,
  legend_pos = c("none", "right", "left", "bottom", "top"),
  base_family = "NanumSquare"
)

쀌 λ ˆλ²¨λ³„ μ‹œκ°ν™”

κ΄‘μ—­μ‹œλ„ > μ‹œκ΅°κ΅¬ > μλ©΄λ™μ˜ 3단계 쀌 λ ˆλ²¨μ„ μ§€μ›ν•©λ‹ˆλ‹€.

zoom 인수둜 쀌 λ ˆλ²¨μ„ μ§€μ›ν•©λ‹ˆλ‹€. 기본값인 megaκ°€ κ΄‘μ—­μ‹œλ„ 레벨이며, cty, admi μΈμˆ˜κ°’μœΌλ‘œ μ‹œκ΅°κ΅¬, 읍면동 레벨의 μ£Όμ œλ„λ₯Ό 그릴 수 μžˆμŠ΅λ‹ˆλ‹€.

κ΄‘μ—­μ‹œλ„λ³„ 인ꡬ뢄포

library(bitSpatial)

thematic_map(stat = "인ꡬ수", 
             title = "κ΄‘μ—­μ‹œλ„λ³„ 인ꡬ뢄포 ν˜„ν™©",
             legend_pos = "right")

μ‹œκ΅°κ΅¬λ³„ λ³‘μ›μˆ˜ ν˜„ν™©

thematic_map(zoom = "cty",
             stat = "λ³‘μ›μˆ˜", 
             title = "μ‹œκ΅°κ΅¬λ³„ λ³‘μ›μˆ˜ ν˜„ν™©",
             palette = "Blues")

νŠΉμ • μ˜μ—­μ„ μ„ νƒν•˜λ €λ©΄ `subset` 인수λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 이 μΈμˆ˜λŠ” 결과값이 logical인 R ν‘œν˜„μ‹μ„ μ§€μ›ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ μˆ˜λ„μ›μ˜ λ³‘μ›μˆ˜ 뢄포λ₯Ό μ‹œκ°ν™”ν•©λ‹ˆλ‹€.

thematic_map(zoom = "cty",
             stat = "λ³‘μ›μˆ˜", 
             subset = mega_nm %in% c("μ„œμšΈνŠΉλ³„μ‹œ", "경기도", "μΈμ²œκ΄‘μ—­μ‹œ"),
             title = "μ‹œκ΅°κ΅¬λ³„ λ³‘μ›μˆ˜ ν˜„ν™©",
             subtitle = "μˆ˜λ„κΆŒ 지역 (μ„œμšΈνŠΉλ³„μ‹œ, 경기도, μΈμ²œκ΄‘μ—­μ‹œ)",
             palette = "Blues")

읍면동별 평균연령 ν˜„ν™©

λ‹€μŒμ€ μ„œμšΈ μ–‘μ²œκ΅¬μ˜ 행정동별 평균연령 ν˜„ν™©μž…λ‹ˆλ‹€. μ–‘μ²œκ΅¬μ˜ κΈ°ν•˜ν•™μ  λͺ¨μŠ΅μ΄ 마치 강아지와 λ‹―μ•˜μŠ΅λ‹ˆλ‹€.

thematic_map(zoom = "admi", 
             subset = mega_nm == "μ„œμšΈνŠΉλ³„μ‹œ" & cty_nm %in% "μ–‘μ²œκ΅¬", 
             stat = "age_mean", 
             label = "name",
             title = "μ„œμšΈ μ–‘μ²œκ΅¬ 인ꡬ톡계 μ£Όμ œλ„",
             subtitle = "동별 평균 μ—°λ Ή ν˜„ν™©", 
             palette = "Purples",
             legend_pos = "right")

κΈ°ν•˜ν•™μ  ν‘œν˜„

κΈ°ν•˜ν•™μ μœΌλ‘œ 톡계λ₯Ό ν‘œν˜„ν•˜λŠ” 방법은 3κ°€μ§€λ‘œ 각각의 인수둜 ν‘œν˜„μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. ν•œ μ£Όμ œλ„μ— μ„Έ 가지 λͺ¨λ‘ ν‘œν˜„μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ 가독성이 λ–¨μ–΄μ Έμ„œ ν•œ κ°€μ§€λ§Œ ν‘œν˜„ν•˜λŠ” 것을 ꢌμž₯ν•©λ‹ˆλ‹€.

  • λ‹€κ°ν˜•μ˜ κ·ΈλΌλ°μ΄μ…˜ 색상
    • polygon
    • TRUE/FALSE둜 지정
    • 기본값은 TRUE
  • λ‹€κ°ν˜• μ€‘μ‹¬μ˜ 포인트 크기
    • point
    • TRUE/FALSE둜 지정
    • 기본값은 FALSE
  • λ‹€κ°ν˜• 쀑심에 숫자 라벨 ν‘œν˜„
    • label
    • NULL은 λ―Έν‘œν˜„
    • β€œname”
      • 행정ꡬ역 이름
    • β€œvalue”
      • 톡계 수치
    • 기본값은 NULL
thematic_map(zoom = "admi",
             subset = cty_nm %in% "노원ꡬ",
             stat = "household", 
             polygon = FALSE, 
             point = TRUE, point_col = "Red",
             label = "name",
             line_col = "black", fill = "grey90",
             title = "μ„œμšΈνŠΉλ³„μ‹œ 가ꡬ 뢄포",
             subtitle = "노원ꡬ 동별 κ°€κ΅¬ν˜„ν™©")

μ œκ³΅ν•˜λŠ” 정보

μ§‘κ³„λœ 톡계

stats_info에 νŒ¨ν‚€μ§€μ—μ„œ μ œκ³΅ν•˜λŠ” μ§‘κ³„λœ 톡계 ν˜„ν™©μ΄ μžˆμŠ΅λ‹ˆλ‹€. 톡계 아이디와 이름이 μžˆλŠ”λ° λͺ¨λ‘ thematic_map() ν•¨μˆ˜μ—μ„œ μ£Όμ œλ„λ₯Ό 그릴 λ•Œ 톡계 정보λ₯Ό 식별할 수 μžˆλŠ” stat μΈμˆ˜μ— μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

stats_info |> 
  gt::gt() |> 
  gt::as_raw_html()
stats_id stats_nm is_use
land_area 면적 TRUE
population 인ꡬ수 TRUE
household κ°€κ΅¬μˆ˜ TRUE
pop_per_hosue κ°€κ΅¬λ‹ΉμΈκ΅¬μˆ˜ TRUE
pop_male λ‚¨μ„±μΈκ΅¬μˆ˜ TRUE
pop_female μ—¬μ„±μΈκ΅¬μˆ˜ TRUE
male_per_female μ—¬μ„±λŒ€λΉ„λ‚¨μ„±μΈκ΅¬ TRUE
age_mean_male 남성평균연령 TRUE
age_mean_female 여성평균연령 TRUE
age_mean 평균연령 TRUE
elemnt_schl_cnt μ΄ˆλ“±ν•™κ΅μˆ˜ TRUE
mdle_schl_cnt μ€‘ν•™κ΅μˆ˜ TRUE
high_schl_cnt κ³ λ“±ν•™κ΅μˆ˜ TRUE
pharmacy_cnt μ•½κ΅­μˆ˜ TRUE
total_hospital_cnt μ΄μ˜λ£ŒκΈ°κ΄€μˆ˜ TRUE
doctor_cnt μ΄μ˜μ‚¬μˆ˜ TRUE
hospital_cnt λ³‘μ›μˆ˜ TRUE
pubhealth_center_cnt λ³΄κ±΄μ†Œμˆ˜ TRUE
pubhealth_branch_cnt λ³΄κ±΄μ§€μ†Œμˆ˜ TRUE
pubhealth_clinic_cnt λ³΄κ±΄μ§„λ£Œμ†Œμˆ˜ TRUE
tertiary_hospital_cnt μƒκΈ‰μ’…ν•©λ³‘μ›μˆ˜ TRUE
nursing_hospital_cnt μš”μ–‘λ³‘μ›μˆ˜ TRUE
clinic_cnt μ˜μ›μˆ˜ TRUE
mental_hospital_cnt μ •μ‹ λ³‘μ›μˆ˜ TRUE
midwife_hospital_cnt μ‘°μ‚°μ›μˆ˜ TRUE
general_hospital_cnt μ’…ν•©λ³‘μ›μˆ˜ TRUE
dental_hospital_cnt μΉ˜κ³Όλ³‘μ›μˆ˜ TRUE
dental_clinic_cnt μΉ˜κ³Όμ˜μ›μˆ˜ TRUE
kmedicine_hospital_cnt ν•œλ°©λ³‘μ›μˆ˜ TRUE
kmedicine_clinic_cnt ν•œμ˜μ›μˆ˜ TRUE
store_cnt_retail μ†Œλ§€μ—…μ²΄μˆ˜ TRUE
store_cnt_acomodt μˆ™λ°•μ—…μ²΄μˆ˜ TRUE
store_cnt_food μŒμ‹μ—…μ²΄μˆ˜ TRUE
store_cnt_estate λΆ€λ™μ‚°μ—…μ²΄μˆ˜ TRUE
store_cnt_tech κΈ°μˆ μ—…μ²΄μˆ˜ TRUE
store_cnt_lease κ΄€λ¦¬μž„λŒ€μ—…μ²΄μˆ˜ TRUE
store_cnt_edu κ΅μœ‘μ„œλΉ„μŠ€μ—…μ²΄μˆ˜ TRUE
store_cnt_medical λ³΄κ±΄μ˜λ£Œμ—…μ²΄μˆ˜ TRUE
store_cnt_leisure μŠ€ν¬μΈ μ—¬κ°€μ—…μ²΄μˆ˜ TRUE
store_cnt_service κ°œμΈμ„œλΉ„μŠ€μ—…μ²΄μˆ˜ TRUE

μœ„μΉ˜ 데이터

ν˜„μž¬λŠ” λ‹€μŒκ³Ό 같은 μœ„μΉ˜ 데이터λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

  • μ΄ˆμ€‘κ³ λ“±ν•™κ΅ μœ„μΉ˜μ •λ³΄
  • μ•½κ΅­ μœ„μΉ˜μ •λ³΄
  • 병원 μœ„μΉ˜μ •λ³΄
  • 상가 μœ„μΉ˜μ •λ³΄

μ£Όμ œλ„μ— μœ„μΉ˜μ •λ³΄ 병합

μœ„μΉ˜ 데이터인 ν•™κ΅μœ„μΉ˜, μ•½κ΅­μœ„μΉ˜, λ³‘μ›μœ„μΉ˜λ₯Ό μ£Όμ œλ„μ— λ§€μ‹œμ—…ν•˜μ—¬ μ‹œκ°ν™”κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.

pos_school <- school |>  
  filter(mega_nm %in% "μ„œμšΈνŠΉλ³„μ‹œ") |> 
  filter(school_class %in% "μ΄ˆλ“±ν•™κ΅") |> 
  st_as_sf(coords = c("lon", "lat"), crs = 4326)

ggplot() +
  stat_density_2d(data = pos_school, 
                  mapping = aes(x = purrr::map_dbl(geometry, ~.[1]),
                                y = purrr::map_dbl(geometry, ~.[2]),
                                fill = after_stat(density)),
                  geom = 'tile',
                  contour = FALSE,
                  alpha = 0.7) +
  scale_fill_viridis_c(option = "viridis", direction = -1) +
  geom_sf(data = cty |> 
            filter(mega_nm %in% "μ„œμšΈνŠΉλ³„μ‹œ"),
          color = "grey30", fill = NA, linewidth = 0.8) +
  geom_sf(data = pos_school, color = "blue", size = 0.5) +  
  xlim(126.75, 127.22) + 
  ylim(37.42, 37.71) + 
  labs(title = "μ„œμšΈνŠΉλ³„μ‹œ μ΄ˆλ“±ν•™κ΅ 뢄포 ν˜„ν™©",
       subtitle = "좜처: κ³΅κ³΅λ°μ΄ν„°ν¬ν„Έμ˜ μ „κ΅­ μ΄ˆμ€‘λ“±ν•™κ΅ μœ„μΉ˜ ν‘œμ€€λ°μ΄ν„°") +
  theme_custom_map()

Footnotes

  1. http://nationalatlas.ngii.go.kr/ ↩

About

Spatial analytics resources for Korean region

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages