본문 바로가기

Python

엑셀파일에 있는 GRS80(x,y)를 WGS84 로 변환하기

from pyproj import Proj
from pyproj import transform
import openpyxl

WGS84 = { 'proj':'latlong', 'datum':'WGS84', 'ellps':'WGS84', }

# GRS80(Geodetic Reference System 1980:측지 기준계 1980)의 타원체
GRS80 = { 'proj':'tmerc', 'lat_0':'38', 'lon_0':'127', 'k':1, 'x_0':200000,
    'y_0':600000, 'ellps':'GRS80', 'units':'m' }

def grs80_to_wgs84(x, y):
   return transform( Proj(**GRS80), Proj(**WGS84), x, y )

wb = openpyxl.load_workbook('./행정구역 x_y.xlsx') # 파일 열기
sheet = wb["Sheet1 (2)"] # 작업할 sheet 열기
number_row = sheet.max_row # 엑셀 마지막 열 값 가져오기
print(number_row)
a = 0

# x = sheet['H{0}'.format(a)].value # x 값 위치
# y = sheet['I{0}'.format(a)].value # y 값 위치
# result = grs80_to_wgs84(x, y)
# print("변환후 : ", grs80_to_wgs84(x, y))
# print("타입 : ", type(grs80_to_wgs84(x, y)))
# sheet['J{0}'.format(a)] = "{0}".format(result[0])  # J열에 값 저장하기
# sheet['K{0}'.format(a)] = "{0}".format(result[1])  # K열에 값 저장하기


for a in range (1,number_row+1):
    print(a)
    x = sheet['H{0}'.format(a)].value # x 값 위치
    y = sheet['I{0}'.format(a)].value # y 값 위치
    print("변환전 : ",x,y)
    result =grs80_to_wgs84(x,y)
    print("변환후 : ",grs80_to_wgs84(x,y))
    print("타입 : ", type(grs80_to_wgs84(x,y)))
    sheet['J{0}'.format(a)] = "{0}".format(result[0]) # J열에 값 저장하기
    sheet['K{0}'.format(a)] = "{0}".format(result[1])  # K열에 값 저장하기

wb.save("./행정구역 x_y.xlsx")

'Python' 카테고리의 다른 글

psycopg2 error  (0) 2020.03.05
파이썬으로 시청,구청 x,y 좌표 가져오기  (0) 2020.03.04