GeoPandas에서 좌표계 다루기

Python으로 지리공간 데이터 다루기

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

GeoPandas의 CRS 정보

GeoDataFrame/GeoSeries의 .crs 속성:

import geopandas
gdf = geopandas.read_file("countries.shp")
print(gdf.crs)
{'init': 'epsg:4326'}
Python으로 지리공간 데이터 다루기

CRS를 수동으로 설정하기

gdf_noCRS = geopandas.read_file("countries_noCRS.shp")
print(gdf_noCRS.crs)
{}

crs에 CRS 정보를 추가:

# Option 1
gdf.crs = {'init': 'epsg:4326'}

# Option 2
gdf.crs = {'proj': 'longlat', 'datum': 'WGS84', 'no_defs': True}
Python으로 지리공간 데이터 다루기

다른 CRS로 변환하기

import geopandas
gdf = geopandas.read_file("countries_web_mercator.shp")
print(gdf.crs)
{'init': 'epsg:3857', 'no_defs': True}

to_crs() 메서드:

# Option 1
gdf2 = gdf.to_crs({'proj': 'longlat', 'datum': 'WGS84', 'no_defs': True})

# Option 2 gdf2 = gdf.to_crs(epsg=4326)
Python으로 지리공간 데이터 다루기

왜 CRS를 변환할까요?

1) 서로 다른 CRS를 가진 소스

df1 = geopandas.read_file(...)
df2 = geopandas.read_file(...)

df2 = df2.to_crs(df1.crs)
Python으로 지리공간 데이터 다루기

왜 CRS를 변환할까요?

1) 서로 다른 CRS를 가진 소스

2) 매핑(형상·거리 왜곡)

Python으로 지리공간 데이터 다루기

왜 CRS를 변환할까요?

1) 서로 다른 CRS를 가진 소스

2) 매핑(형상·거리 왜곡)

3) 거리/면적 기반 계산

Python으로 지리공간 데이터 다루기

어떤 CRS를 선택할까요?

팁:

  • 데이터 지역에 맞는 투영을 사용하세요
  • 대부분의 국가에는 표준 CRS가 있습니다

유용한 사이트:

Python으로 지리공간 데이터 다루기

요약

  • 다른 CRS로 변환: to_crs() 메서드
  • 서로 다른 데이터셋은 동일한 CRS로 맞추기
  • 거리, 면적 계산 시 → 반드시 투영 CRS 사용

유용한 사이트:

Python으로 지리공간 데이터 다루기

연습해 봅시다!

Python으로 지리공간 데이터 다루기

Preparing Video For Download...