728x90
728x90

pyproj를 사용한 좌표변환 

WGD84를 TM좌표계로 변환 시키는 코드 

from pyproj import Proj, transform, Transformer

def trans_coord_ver1(coord_x, coord_y):
    transformer = Transformer.from_crs("epsg:4326", "epsg:5186")
    point = [coord_x, coord_y]
    trans_coord = transformer.transform(point[0], point[1])
    return trans_coord
def trans_coord_ver2(coord_x,coord_y):
    proj_4326 = Proj(init='epsg:4326')
    proj_5186 = Proj(init='epsg:5186')

    lon, lat = transform(proj_4326,proj_5186,coord_x,coord_y)
    return lon, lat

DataFrame에서 WGS84를 TM으로 변환하기 

class Table_dataframe:
    
    def __init__(self):
        self.lonx = []
        self.laty = []
        self.grade = []
        
    def proj_df2(self, df2, designated, csv):
        # 좌표 변환 코드
        p1 = Proj("+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs")
        p2 = Proj(proj='latlong',datum='WGS84')

        for i in range(len(df2['X 좌표'])):
            lon, lat, z = transform(p1, p2, df2['X 좌표'].values[i], df2['Y 좌표'].values[i], 0.0)
            self.lonx.append(lon)
            self.laty.append(lat)
            
        df2['위도'] = self.laty
        df2['경도'] = self.lonx
        
        if ('E_SIG_NAME' in csv.columns) or ('e_sig_name' in csv.columns):
            df2['시군구명'] = csv['E_SIG_NAME']
            df2['행정동명'] = csv['E_EMD_NAME']
            df2 = df2[['시군구명', '행정동명', designated, 'X 좌표', 'Y 좌표', '위도','경도']]
        else:
            df2['시군구명'] = None
            df2['행정동명'] = None
            df2 = df2[['시군구명', '행정동명', designated, 'X 좌표', 'Y 좌표', '위도','경도']]
        
        return df2
728x90

+ Recent posts