행정동 지리정보 불러와서 시각화하기 (geopandas, keplergl)

2024. 3. 16. 17:01·Python
목차
  1. 1. 지리정보 가져오기
  2. 2. 지리정보를 읽고 시각화하기

안녕하세요. 오늘은 행정동 지리정보를 불러와서 시각화하는 방법에 소개하려 합니다.
행정동은 한 지역의 행정 구획을 의미하며, 이를 시각화하여 지리적 특성을 파악하거나 데이터 분석에 활용할 수 있습니다.

다음과 같은 순서로 소개합니다.

  1. 지리정보 가져오기
  2. 정보를 읽고 시각화하기

1. 지리정보 가져오기

기본적으로 지리정보는 매년 행정안정부로부터 공개됩니다. 일반적으로 shapefile 형태로 공개됩니다. (shapefile 파일 형식은 지리 정보 시스템(GIS) 소프트웨어를 위한 지리 공간 벡터 데이터 형식)
저는 포스팅에서 2024.02.13에 발표된 시군구 구역도를 받았습니다. 감사합니다. :)

다운로드하여서 파일을 열어보면 아래와 같은 파일 구조를 갖습니다.

시군구
├── sig.dbf
├── sig.prj
├── sig.shp
└── sig.shx

여기서 핵심은 .shp 파일이고 앞서 이야기한 shapefile인데 여기에 실제 지리 정보를 담고 있습니다. 이외의 파일들도 shapefile을 제대로 이해하기 위한 좌표정보, 속성정보 등을 담고 있습니다.

2. 지리정보를 읽고 시각화하기

파이썬 패키지인 geopandas를 이용해서 shapefile을 읽고 keplergl을 사용해서 시각화를 해보겠습니다.

설치하기 (파이썬 3.11 기준으로 환경구성해서 설치했습니다)

pip install geopandas keplergl pyogrio

읽기

import geopandas as gpd
gdf = gpd.read_file("시군구/sig.shp", encoding="cp949")
gdf.head()

shapefile을 read_file 메소드를 통해 읽습니다. 이때 앞선 .dbf, .prj, .shx 파일이 하나라도 같은 폴더에 없다면 제대로 파일을 읽을 수 없음에 주의해야 합니다.

좌표계 변환

gdf = gdf.to_crs(epsg=4326)
gdf.head()

읽은 뒤 비교적 쉽게 이해할 수 있는 위경도 기반의 좌표계인 WGS84로 변환했습니다.

시각화
kepler.gl 우버에서 개발한 지리정보 시각화를 위한 툴입니다.

저는 JupyterLab 내에서 시각화를 하기 위해 jupyerlab과 필요한 extension을 설치했습니다.

pip install jupyterlab
jupyter labextension install @jupyter-widgets/jupyterlab-manager keplergl-jupyter
from keplergl import KeplerGl
map_1 = KeplerGl()
map_1.add_data(data=gdf, name="행정안전부 시군구")
map_1

  1. 1. 지리정보 가져오기
  2. 2. 지리정보를 읽고 시각화하기
'Python' 카테고리의 다른 글
  • 파이썬의 Linter이자 Formatter, Ruff 사용해보기
  • 파이썬에서 Redis 사용하기
  • A 작업은 실패하더라도 B는 성공했으면 좋겠어
  • Black와 Isort를 위한 VSCode settings.json
ssuwani
ssuwani
  • ssuwani
    Oops!!
    ssuwani
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • MLOps (19)
      • 데이터 엔지니어링 (4)
      • Kubernetes (5)
      • Kafka (10)
      • 📚책 (3)
      • 라즈베리파이 (1)
      • ETC (8)
      • Python (6)
      • 언어모델 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Schema Registry
    topic
    consumer
    Python
    Confluent Cloud
    태그2
    Prometheus
    Kubernetes
    BentoML
    asyncronous
    datadrift
    producer
    Kafka
    mlflow
    Airflow
    MLOps
    Github Actions
    evidently ai
    태그1
    gcp
    fluentbit
    Kubeflow
    redis
    LangChain
    FastAPI
    Spark
    LLM
    auto tagging
    RDD
    Docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
ssuwani
행정동 지리정보 불러와서 시각화하기 (geopandas, keplergl)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.