GIS/gis로 각종 분석하기

Qgis로 행정동 등의 면적구하기($area, calculate geometry 기능)

조달송 2021. 4. 23. 19:20
728x90

인구밀도를 구하거나, 행정경계별 면적이 필요할때 어떻게 하는가? 구글에서 각 행정경계별 면적을 검색하는 등의 방법으로 수작업을 할 수도 있을 것이다. 어렵게 할 필요없이 단순히 표현식 하나로 행정경계의 면적을 구할 수 있다. 이 기능이야말로 qgis의 큰 장점이라고 생각을 하는데, 지리정보와 도형정보가 포함된 데이터를 다루는 프로그램이기 때문에 가능하게 되는 것이다. 따라서 이번 포스팅에서는 서울시 자치구 행정경계 shp파일을 활용하여 자치구별 면적을 구해보도록 하겠다. 


1. 면적을 구하고자 하는 shp파일 불러오기

필자는 서울시 자치구 shp파일을 불러왔다. 레이어에서 우클릭하여 속성테이블을 열어보니, 필자가 불러온 서울시 시군구 파일의 경우 시군구 코드와 이름(한글, 영어) 뿐만 아니라 각 자치구별 폴리곤의 면적과 길이도 나타나있다. 각자 가지고 있는 데이터에 따라 속성값의 내용은 다르기 때문에, 행정경계와 각 객체에 대한 행이 있는지만 확인되면 된다. 

 

 

2. 편집모드 전환 후 필드계산기 실행, 새 필드 생성

새롭게 계산할 면적이 쓰여질 칼럼을 만들기 위해 편집모드로 전환한 후, 필드계산기를 실행한다. 새 필드 생성을 선택한 후, 출력 필드 이름을 면적이나 area 등 자신이 원하는대로 설정해준다. 다음으로 주의해야할 것은 출력 필드 유형과 길이 및 정확도이다. 출력 필드 유형에서 십진수(real)로 설정해야지 소수점 자리수까지 계산이 된다. 정수로 하게 되면 정확도가 떨어지기 때문에 이와같은 계산에서는 십진수를 추천한다. 출력 필드 길이나 정확도는 자리수와 소수점 자리수에 대한 것으로, 정확도는 자신이 원하는대로 설정하면 된다. 필자의 경우 소수점 자리수가 3만 되어도 된다고 판단하여 정확도를 3으로 설정하였다. 

 

3. 표현식으로 면적 계산

이제 면적 계산과 관련된 표현식을 입력할 차례이다. 표현식을 찾기 위해 area를 검색하자. 그러면 도형 탭 안에 $area와 area가 있을 것이다. $area는 현재 좌표체계에 따라 계산된 면적이고 area는 해당 도형의 공간 참조 시스템 안에서 평면 측량해서 계산한다는데, 어쨌든 우리는 $area로 면적을 계산하면 된다. $area를 더블클릭하면 표현식에서 나타나게된다. 이런 과정을 한번 정도만 거쳐보고 다음부터는 그냥 표현식 창에 $area를 기입하면 된다. 

 

+) 댓글에서 watercrew님이 ArcGIS와 같이 면적을 산출하기 위해서는 area($geometry)로 해야한다고 알려주셨습니다!  

 

4. 단위 확인하기

앞선 3번 과정을 수행하고 나니 속성테이블에서 면적 필드가 생성되었다. 하지만 앞서 필자가 가진 데이터에 포함되어 있던 SHAPE_AREA의 값과 차이가 있었다. 숫자가 조금 다르게 나타난 것은 좌표계를 기준으로 면적을 계산하다보니 다른 타원체로 계산되기 때문인 것으로 보인다. 좌표계를 변환하기 전에 기존 좌표계인 상태에서 면적을 구하는 것이 더 정확할 것 같다. 숫자도 그렇지만 단위에서 차이가 나고 있음을 확인할 수 있다. 그렇다면 단위는 어떻게 확인할 수 있을까?

단위를 확인하기 위해서는 필드계산기를 실행해야 한다. 앞서 $area를 검색했던 것처럼 area를 검색하면 변수탭 안에 project_area_units가 나타날 것인데, 이것을 누르면 우측에 Current value가 나타난다. 이것이 현재 면적 단위가 되는 것이다. 이와 같은 방법으로 폴리곤의 면적과 그 면적의 단위를 구할 수 있다. 인구 밀도 등에서 많이 활용될 수 있는 표현식으로 익혀두면 좋을 것 같다:)

반응형