파이썬/GeoData

geopandas 좌표 변환 (5179 to 4326)

hanshow113 2021. 12. 30. 10:42
import geopandas as gpd
from pyproj import Transformer, transform

점 좌표의 경우

x, y 좌표만 있고, geometry가 없는 dataframe일 경우 geodataframe으로 먼저 만들어 줄 필요가 있음
gdf = gpd.GeoDataFrame(gdf, geometry=gpd.points_from_xy(x, y))

# gdf: 임의의 geo dataframe
# 좌표 변환 (5179 -> 4326)

transformer_5179_4326 = Transformer.from_proj(5179, 4326)
transformed_x, transformed_y = [], []

for coords in gdf['geometry']:
    transformed_coords = transformer_5179_4326.transform(coords.x, coords.y)
    # 각 geometry 데이터에서 .x, .y 메서드를 사용하면 x, y 좌표를 얻을 수 있음
    
    transformed_x.append(transformed_coords[1])
    transformed_y.append(transformed_coords[0])
    
gdf.drop(['geometry'], axis=1, inplace=True)    # 기존 geometry 컬럼 삭제
gdf = gpd.GeoDataFrame(gdf, geometry=gpd.points_from_xy(transformed_x, transformed_y))

 

폴리곤 좌표 변환의 경우에는 G-GIS를 이용

- Q-GIS 프로그램 실행 후, 변환하고자 하는 파일 (5179좌표) 레이어 생성

- 레이어 좌표계를 변환하거나, 혹은 레이어 내보내기에서 저장형식 shp파일로 설정 후 경로, 파일명 지정 후 좌표계 설정(4326)하여 저장