프로그래밍 언어/Python

GeoJSON으로 데이터 저장

· 코딩마이데이

비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_3_2.py'로 변경합니다. 다음 코드를 입력한 뒤, 대화형 창에서 실행하면 'output' 폴더에 행정구역 경계 데이터가 포함된 파일 'step_3_2.geojson'이 생성됩니다.

 

ch_11/step_3_2.py

from pathlib import Path
from datakart import Sgis
from step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.

OUT_3_2 = OUT_DIR / f"{Path(__file__).stem}.geojson"

def adm_cd_to_geojson(adm_cd: str = None, low_search: str = "1") -> None: # 07
    SGIS_KEY, SGIS_SECRET = "ebc868d8e76844d585c5", "67b3a4ec704a47cdb061" # 통계지리정보서비스 API
    sgis = Sgis(SGIS_KEY, SGIS_SECRET) # Sgis 객체 생성
    resp: str = sgis.hadm_area(adm_cd=adm_cd, # 10
                               low_search=low_search) # GeoJSON 형성 # 11
    OUT_3_2.write_text(resp, encoding="utf-8") # GeoJson 파일로 저장

if __name__ == "__main__":
    adm_cd, low_search = "11", "1" # 서울특별시, 시군구 단위
    adm_cd_to_geojson(adm_cd, low_search) # 행정 구역 경계 데이터 저장

 

실행 결과

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": { "adm_cd": "11010", "adm_nm": "서울특별시 종로구" },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [126.97472698673658, 37.629679101390664],
... 생략 ...
 
07 행정 구역 경계 데이터를 GeoJSON 파일로 저장하는 함수 adm_cd_to_geojson()을 정의합니다.
 
10~11 GeoJSON 타입의 문자열을 반환하는 함수 hadm_area()를 호출하여 행정구역 경계 데이터를 조회합니다.
 
 
실행 결과로 생성된 파일의 확장자를 확인합니다. 이처럼 행정구역 경계 등 지리 공간 데이터가 포함된 JSON 파일을 GeoJSON이라고 합니다.
 
이제 지오데이터프레임을 사용해 서울 특별시의 행정 구역 경계를 시각화할 수 있습니다.