728x90

728x90
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
728x90

문제 해결

  • 소스코드 맨 상단에 # -*- coding: utf-8 -*- 삽입
# -*- coding: utf-8 -*-

 

728x90
728x90

728x90
728x90

Error List

  • AssertionError: assert 문이 제대로 작동하지 않을 때 발생합니다.
  • IndexError: 참조 하려는 인덱스가 범위를 벗어날 때 발생합니다.
  • KeyError: 참조 하려는 키가 기존 키 집합에서 찾을 수 없을 때 발생합니다.
  • KeyboardInterrupt: 사용자가 인터럽트 키(Control + C, 혹은 Delete)를 누를 때 발생하며, 모든 Exception을 잡는 코드에 의해 인터프리터가 종료하는 것을 막지 못하도록 Exception 상위에 있는 BaseException을 직접 계승 합니다.
  • MemoryError: 메모리가 부족하지만, 가비지 컬렉터가 일부 객체의 삭제를 함으로써 복구될 수 있는 경우 발생합니다.
  • NameError: 참조하는 지역, 전역 변수 혹은 함수, 클래스 등을 찾을 수 없을 때 발생합니다.
  • OSError: 시스템 함수가 시스템 관련 에러를 돌려줄 때 발생합니다. (파일을 찾을 수 없거나, 디스크가 찼거나..)
  • OverflowError: 산술 연산의 결과가 너무 커서 표현 할 수 없을 때, 혹은 정수 범위를 벗어났을 때 발생합니다.
  • RecursionError: 최대 재귀 깊이가 초과하였을 때 발생합니다.
  • TypeError: 연산이나 함수가 부적절한 데이터 타입의 객체에 적용 되었을 때 발생합니다.
  • ValueError: 연산이나 함수가 부적절한 값을 가진 객체에 적용 되었을 때 발생합니다.
  • ZeroDivisionError: 나누기, 나머지 연산의 두 번째 인자가 0일 때 발생합니다.
728x90
728x90
Copy (SELECT * FROM 테이블명) To '저장경로' With CSV DELIMITER ',';

ex) Copy (SELECT * FROM user order by user_name asc;) To 'C:\Users\SuyeonKang\Documents\user_db.CSV' With CSV DELIMITER ',';

728x90

+ Recent posts