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