gis/gis 이런저런 문제 해결하기

QGIS 한글깨짐/글자깨짐, 속성값에서 한글 이상하게 뜰 때 (+Arcmap에서 해결법

조달송 2021. 1. 25. 19:02
728x90

QGIS에서 데이터 분석을 하고, 내가 보고 있는 데이터가 어떤 정보를 가지고 있는지 확인하다 보면 가끔 멀쩡한 한글이 이상하게 나와서 당황스러울때가 있다. 데이터 안에 1~2개의 정보만 있다면 외우겠지만, 서울시 내 모든 행정동의 이름과 같이 몇십개가 넘는다면, 이런 상황이 참 불편하다. 그럴 때 쉽게 해결할 수 있는 방법이 있다. Arcmap보다 쉽게 할 수 있으니 해보자. 


1. 한글이 이상하게 입력된 것 확인하기

전국 시군구의 경계 데이터를 다운 받고 QGIS에서 열었다. 그리고 아래와 같은 사진이 우리가 겪게 되는 당황스러운 상황일 것이다. SIGUNGU_NM에서 내가 선택한 지역의 이름이 무엇인지 나와줘야 하는데, 이상한 도형과 웬 한자로 알아볼 수가 없다. (이렇게 선택한 부분의 정보를 바로바로 보고 싶을 때는,  '보기-객체식별'을 클릭해서 확인하고 싶은 부분을 클릭하면 된다.)

2. 원본데이터에 이상이 있는 것인지 확인하기

만약, 원래 데이터가 이상해서 이렇게 나오는건가 싶은 의심이 들때면 다음과 같은 방법으로 확인하면 된다. 먼저 이 데이터가 저장되어 있는 곳을 열어보자. 이 안에 들어 있는 3개의 데이터 중(만약, 좌표계가 포함되어 있는 파일이라면, .prj파일이 더 있을 것이다.) dbf 파일이 데이터베이스 파일로 속성값을 가지고 있는 파일이다. 이 파일은 그냥 더블클릭하면 열리지 않고, 엑셀에서 친절하게 열어드려야 한다. 엑셀을 켜고, '파일-열기-찾아보기-파일형식: 모든 파일-dbf파일'을 클릭해주면 엑셀에서 dbf 파일이 열린다. 

파일을 열어보면, 아래와 같이 데이터가 입력된 날짜와 시군구의 코드와 이름이 예쁘게 잘 들어가있는 것을 확인할 수 있다. 즉, 원래 데이터에서는 문제가 없지만 Qgis에서 불러오는 과정에서 잘못 불러왔다는 것을 확인할 수 있다. 그러면 우리는 마음 편하게 원본데이터에는 문제가 없다는 것을 확신하고 다시 Qgis로 넘어가면 된다. 

 

4. 언어체계, 인코딩 확인하기

우리가 여기서 확인해주어야 할 것은, 어떤 언어체계로 이 파일을 불러왔는가 이다. 언어체계는 window냐 인터넷 또는 맥이냐에 따라 다르다. 그래서 작성된 언어체계와 다른 언어체계로 불러오면 이상한 오류가 나는 것이다. 좌표계처럼 언어체계도 지도에 쓴대로 읽어와야 하는 것이다.  필자는 위에서 봤던 파일을 불러올때, UTF-8 언어체계(수업때 배우기로는 인터넷과 맥에서 쓰이는 언어체계)로 불러왔고 저렇게 오류가 났다. 

언어체계, 즉 인코딩은 아래와 같이 설정한다. 파일을 불러올 때, 인코딩을 설정하는 부분이 있다. 여기서 원하는 인코딩을 골라서 해주면 된다. 

만약, 언어체계를 윈도우에서 쓴다는 CP949로 해서 살펴보면 다음과 같이 멀쩡하게 한국어가 나오는 것을 확인할 수 있다. 어떤 언어체계를 하면 좋을지 헷갈리면, 그냥 '자동'이나 'system'을 선택해서 해보자. 웬만하면 해결되는 것을 확인할 수 있을 것이다. 

 

 

+) Arcmap에서 언어체계 문제 해결하기

ArcMap에서는 좀 더 정성스러운 방법으로 해결해주어야 한다. 학교를 졸업한 후에 Arcmap을 못쓰고 있지만, 수업때 배운 내용은 다음과 같다. 앞서 dbf파일을 찾았듯이 관련 데이터가 들어있는 폴더를 열어보면, .cpg파일이 있는 경우도 있고 없는 경우도 있을 것이다. 바로 이 .cpg 파일이 이 데이터가 어떤 언어체계로 되어 있는지 약속해주는 파일이다. cpg파일이 있는 경우에는 이 언어체계를 수정해주면 되고, 없는 경우에는 만들어서 지정해주면 된다. 없는 경우, 노트패드나 메모장을 열어 어떤 언어체계인지 아래와 같이 써주면 된다. 보통 CP949나 UTF-8이니 이중에 하나로 해보고 안되면 다시 둘 중 안써본거로 하면 된다. 저장은, 저장하기를 누른 후 - 파일형식을 모든파일로 하고 - 데이터 이름과 똑같이 써야하기 때문에 하나하나 치기 귀찮을때는 위의 파일을 선택하고 확장자만 .cpg로 바꿔주면 된다. 이와 같은 과정을 거쳐 한글을 편하게 읽어보자. 

반응형