본문 바로가기
  • 모두 모두 행복하세요.
  • 내일은 더 행복하세요.
정보 나눔터

QGIS 길라잡이4 파일 결합 후 필드값이 null로 표시될 때 해결하기

by [MAVERICK] 2024. 12. 19.
반응형

안녕하세요. 오늘은 셰이프 파일과 데이터 파일을 결합하였는데, 셰이프 파일에 결합된 데이터가 NULL로 표시될 때 해결방법을 찾아보도록 하겠습니다.

결론적으로 말하자면 셰이프 파일의 지역코드와 데이터 파일의 지역코드가 일치하지 않을 때 NULL로 표시되는 경우가 많은 것 같습니다.

 

1. 결합 후 필드값 확인하기

셰이프 파일과 데이터 파일이 올바르게 결합되었는지 확인하기 위해 셰이프 파일 선택 후 우클릭하여 속성 테이블 열기로 갑니다.

ADM_CD까지는 원래 셰이프 파일에 있던 정보인데요 나머지 값들이 NULL로 표시되는 것을 보니 제대로 데이터 파일의 값들이 옮겨지지 않은 것 같습니다. 

 

 


2. 데이터 파일과 셰이프 파일(경계 파일) 비교

데이터 파일과 셰이프 파일(경계 파일)을 비교해보니 지역 코드가 일치하지 않습니다. 

데이터 파일의 지역코드는 은 7자리이고, 셰이프 파일(경계 파일)은 0으로 끝나는 8자리 숫자입니다.

참고로 이야기하자면 데이터 파일의 지역코드가 단지 0만 빠진 것이라면 엑셀에서 concatenate 함수로 0만 붙이면 됩니다.

그러고 나서 다시 셰이프 파일과 데이터 파일을 결합하시면 됩니다.

 


3. Chat GPT의 응답

셰이프 파일과 데이터 파일을 결합했을 때 NULL이 나오는 경우를 Chat GPT에게 물어보았습니다. 답변은 공통 필드의 불일치였습니다. 데이터 전처리 과정에 소홀히 하면 안 될 것 같습니다.

 

4. 두 파일의 지역 코드 확인하기

한국행정구역분류와 내가 만든 데이터 파일의 분류가 상이하다는 것을 발견하게 됩니다.

SGIS통계지리정보서비스에서 받은 셰이프 파일의 경계 정보는 아래 왼쪽 파일처럼 한국행정구역분류에 따르고 있습니다. 

반면에 자체적으로 작성한 데이터에서는 뒷자리에 '0'이 생략이 되어있습니다. '0'을 붙인 후 다시 결합해야 합니다.


5. 수정 후 결합 결과

셰이프 파일(경계 파일)의 값들이 제대로 표시되고 있습니다. 0이라고 표시된 것은 문제가 없습니다. 그런데 NULL이라고 표시된 것은 문제가 있는 것이지요. 본 경우처럼 전체적으로 NULL이 표시되지 않고 일부만 NULL이 표시되는 경우가 있는데요, 그런 경우 지역 명칭 변경에 딸 ㅏ지역 코드가 바뀐 경우가 종종 있더라고요. 참고해 주세요. 같은 곳을 가리킨다 할지라도 일단 이름이 바뀌면 코드도 바뀐다고 보시면 됩니다.


셰이프 파일(경계 파일)에 NULL이 떴다고 조급해 하지 마시고 찬찬히 원인을 살펴보시면 좋을 것 같습니다. 우선 데이터 파일의 지역 코드와 동일하지 않다던가, 일부 지역의 경우 명칭 변경에 따른 코드 변경으로 그 부분만 NULL이 표시될 수도 있습니다. 나중에 지도에 색이 칠해져 있지 않은 경우도 마찬가지로 데이터 파일의 지역코드를 못 가지고 와서 그럴 확률이 높습니다. 그럼 오늘도 즐거운 하루 보내세요!

반응형