GGRS: Geoscience, GIS, & Remote Sensing

지구과학, GIS, 그리고 원격탐사 블로그입니다.

QGIS: MCP(최소볼록다각형)를 이용한 야생동물 행동권 분석

댓글 2

GIS

2020. 10. 5.

안녕하세요? 이번 글은 QGIS에서 MCP(Minimum Convex Polygon, 최소볼록다각형)를 이용한 야생동물 행동권(home range) 분석 방법을 정리해 보도록 하겠습니다. 행동권은 동물이 주기적으로 서식하고 이동하는 영역을 나타내며, MCP는 KDE(Kernel Density Estimation, 커널밀도추정)와 함께 행동권 분석의 기본이 되는 방법입니다.

 

다각형의 내각 중 하나가 180도를 넘어가면 그것을 오목다각형(Concave polygon), 그 외의 것을 볼록다각형(Convex polygon)이라고 합니다. 최소볼록다각형은 주어진 점이나 영역을 포함하는 가장 작은 볼록다각형을 의미합니다. 즉, 주어진 동물 좌표로 그려볼 수 있는 영역을 행동권으로 정의하는 방식입니다.

 

MCP는 또다른 용어로 CH(Convex Hull, 볼록 껍질)로도 표현됩니다.

그림 출처: https://www.scienceall.com/%EC%98%A4%EB%AA%A9%EB%8B%A4%EA%B0%81%ED%98%95concave-polygon/

 

자, 그럼 MCP를 그려볼까요?! 실습 데이터는 이전 글에서 내려받은 황새(Oriental White Stock) 자료를 사용하겠습니다.

 

무브뱅크(Movebank): 조류 이동 데이터 다운로드 소개

안녕하세요? 이번 글은 '무브뱅크(Movebank)'에서 조류 이동 데이터를 내려받는 과정을 정리해 보겠습니다. 이전 글은 포유류 이동 데이터를 내려받는 과정을 정리했었는데요, 이번에 조류 이동 데

blog.daum.net

아래와 같이 points.shp 파일을 OpenStreetMap(XYZ Tiles)과 함께 추가해 봤습니다.

레이어 이름을 우클릭하고 '속성 테이블 열기'를 클릭해 보겠습니다. 총 4,241개 황새 좌표가 저장되어 있는데요, 

여기서 'ind_ident' 필드값은 동물 식별자(Animal Identifier)'를,

'study_ts'는 연구지역의 UTC(Universal Time Coordinate, 세계협정시)를 기준으로 기록된 시간 값을 저장하고 있습니다. 

레이어 이름을 더블클릭해서 '레이어 속성' 창을 실행하고 '필드 관리' 탭을 선택하면, 아래와 같이 각 필드값의 유형, 유형명, 길이, 정밀도 등을 확인할 수 있습니다. 앞서 언급한 'ind_ident', 'study_ts' 필드는 모두 String(텍스트) 유형인 것으로 확인됩니다.

황새 행동권을 연도별 차이, 월별 차이, 시기별 차이로 분석해 보면 유익할 것 같습니다. 이를 위해 'study_ts' 필드값으로부터 'YYYY', 'MM', 'YYYYMM' 3개 필드를 생성해 보겠습니다. 속성 테이블에서 '편집 모드 전환' 버튼을 클릭하고 '필드 계산기 열기'를 실행해 봅니다.

'필드 계산기' 창을 실행하고 '새 필드 생성'을 체크합니다. 출력 필드 이름은 'YYYY', 출력 필드 유형은 '텍스트(string)', 출력 필드 길이는 '4'로 지정합니다. 표현식에서 필드값은 쌍따옴표를 통해 제어(예: "study_ts")할 수 있습니다.

첫번째, YYYY 필드를 아래 표현식을 통해 정의합니다.

left("study_ts", 4) : '2000-07-08 19:05:04' 값의 가장 왼쪽에 있는 4개 문자를 호출합니다.

두번째, MM 필드를 아래 표현식을 통해 정의합니다.

substr("study_ts", 6, 2):  '2000-07-08 19:05:04' 값의 6번째 위치에서 2개 문자를 호출합니다.

세번째, YYYYMM 필드를 아래 표현식으로 정의합니다.

replace(left("study_ts", 7), '-', ''):  '2000-07-08 19:05:04' 값의 가장 왼쪽에 있는 7개 문자를 호출하고 '-'를 ''로 바꿉니다.

자, 아래와 같이 YYYY, MM, YYYYMM 필드가 생성되었습니다.

이번에는 레이어 속성 창의 '심볼'을 조정해 보겠습니다. 아래와 같이 '분류값 사용' 컬럼을 선택한 후, 값은 'ind_ident' 필드를 지정해 봅니다. 심볼 설정 후 '분류' 버튼을 클릭하면, 다음과 같이 동물 식별자가 서로 다른 심볼로 분류됩니다. 총 8마리 황새가 보이네요!

심볼 설정은 크기는 1.5 밀리미터, 선 굵기는 0.5 밀리미터로 정의해 봤습니다.

심볼 설정 후 레이어 이름을 우클릭하고 '객체 수 표시'를 체크해 보겠습니다.

결과는 아래와 같습니다. 실습을 위해 동물 식별자 중 '8885A'를 다른 이름으로 저장해 보겠습니다. 가장 많은 좌푯값을 가지고 있는 황새를 선택해 봤습니다.

'값으로 객체 선택' 버튼을 클릭하고 ind_ident 필드에서 '8885A' 객체를 선택합니다.

자, 이제 레이어 이름을 우클릭하고 '내보내기 > 선택한 객체를 다른 이름으로 저장'을 클릭, 파일 이름과 좌표계를 다음과 같이 정의해 줍니다. 좌표계를 지리 좌표계에서 투영 좌표계로 변환하는 이유는, MCP의 면적을 계산할 때 레이어 좌표계의 단위를 따르기 때문입니다.

UTM 좌표계는 아래 글을 참고하시기 바랍니다. 실습데이터로 사용 중인 황새 8885A는 50, 51, 52 구역을 모두 아우릅니다. 여기서는 중간에 해당하는 51구역으로 정의하였습니다.

 

UTM(Universal Transverse Mercator) 좌표계

UTM 좌표계란, 국제 횡축 메르카토르(Universal Transverse Mercator) 도법의 약어입니다. 횡축 메르카토르(TM, Transverse Mercator)란, 지리좌표(위, 경도)를 아래와 같이 투영하는 도법입니다. 그리고 UTM은 TM..

blog.daum.net

새롭게 저장된 파일은 아래와 같습니다.

이제 MCP를 계산해 봅니다. 공간 처리 툴박스 패널에서 'Minimum bounding geometry(최소 경계 도형)'을 실행합니다.

'최소 경계 도형' 실행 창은 아래와 같습니다. 입력 레이어를 지정하고,

필드는 앞서 생성한 'YYYYMM'을 선택해 주겠습니다. 1개월 단위로 황새 행동권을 구획화 해보겠다는 의도입니다(즉, 분석가의 의도에 따라 행동권은 적정하게 정의할 수 있겠습니다).

도형 유형은 MCP와 같은 의미인 'Convex Hull'을 체크합니다.

도형 유형은 아래 그림을 참조하시기 바랍니다.

그림 출처: https://docs.qgis.org/3.10/en/docs/user_manual/processing_algs/qgis/vectorgeometry.html?highlight=convex%20hull#minimum-bounding-geometry

자, 이제 결과를 확인해 보겠습니다!

결과는 다음과 같습니다. 해당 레이어의 속성 테이블도 확인해볼까요?!

1998년 11월에 행동권이 가장 큰 것으로 확인되는데 면적이 무려 564,072㎢입니다! 관련 지식이 없어 우리나라 예산황새공원 홈페이지에서 소개된 '황새이야기'를 읽어보니 황새가 월동지까지 이동하는 전체 거리는 약 3,000㎞에 이른다고 합니다. 조류에 지식이 없는 저로써는 정말 놀라운 거리입니다. 이상으로 MCP를 이용한 야생동물 행동권 분석을 정리해 봤습니다.

 

[ 황새이야기 > 황새소개 > ]

자연과 더불어 행복을 꿈꾸는 예산황새공원

www.yesan.go.kr