-
[ python ] 2097 to 4326 정교한 좌표계변환카테고리 없음 2024. 9. 25. 02:30
def project_array(coord, p1_type, p2_type): """ 좌표계 변환 함수 - coord: x, y 좌표 정보가 담긴 NumPy Array - p1_type: 입력 좌표계 정보 ex) epsg:5179 - p2_type: 출력 좌표계 정보 ex) epsg:4326 """ # p1 = pyproj.Proj(init=p1_type) # p2 = pyproj.Proj(init=p2_type) # fx, fy = pyproj.transform(p1, p2, coord[:, 0], coord[:, 1]) # Transformer 객체 생성 transformer = pyproj.Transformer.from_crs(p1_type, p2_type, always_xy=True) # 좌표 변환 수행 fx, fy = transformer.transform(coord[:, 0], coord[:, 1]) return np.dstack([fx, fy])[0]
이를 이용하라.
그니까, DF 에서 바꾸십쇼...
필자는
transformer = Transformer.from_crs("EPSG:2097", "EPSG:4326", always_xy=True) # 좌표 변환 함수 정의 def transform_geometry(geom): lon, lat = transformer.transform(geom.x, geom.y) return Point(lon, lat)
이런 식으로 gdf 로 변환한 것을 변환하였었는데, 상당한 애를 먹었다..