ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 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 로 변환한 것을 변환하였었는데, 상당한 애를 먹었다..

Designed by Tistory.