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
'파이썬\python' 카테고리의 다른 글
[아나콘다] 가상환경 만들기 및 활성화/비활성화/삭제 (0) | 2022.01.10 |
---|---|
<Postgis / Geopandas> Geodataframe to_postgis 사용법 (0) | 2021.09.15 |
<파이썬 에러> SyntaxError: Non-UTF-8 code starting with '\xeb' in file .\proto.py on line 17, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details (0) | 2021.08.19 |
<Python> None (null)값 확인 (0) | 2021.07.22 |
<Python> 예외처리 에러목록 ErrorList (0) | 2021.05.10 |