17.12. 범위 정의

참고

이 강의에서 일부 알고리듬, 특히 래스터 관련 알고리듬이 필요로 하는 범위를 정의하는 방법을 배울 것입니다.

일부 알고리듬은 자신이 수행하는 분석이 커버해야 할 영역을 정의하는 범위를 필요로 합니다. 일반적으로 이 범위는 결과물 레이어의 범위를 정의하게 됩니다.

범위가 필요할 경우, 범위를 정의하는 값 4개(min X, min Y, max X, max Y)를 직접 입력해서 정의할 수 있지만, 좀 더 실용적이고 재미있는 방식으로 정의할 수도 있습니다. 이번 강의에서 그 모든 방식을 다룰 것입니다.

먼저 범위를 정의해야 하는 알고리듬을 선택해봅시다. 벡터 레이어에서 래스터 레이어를 생성하는 Rasterize 알고리듬을 실행하십시오.

../../../_images/rasterize.png

마지막 2개를 제외한 모든 파라미터는 어떤 레이어를 래스터화할지 정의하고, 래스터화 과정을 어떻게 작업할지 설정하는 데 쓰입니다. 그러나 마지막 파라미터 2개는 산출 레이어의 특성을 정의합니다. 다시 말해 (입력 벡터 레이어가 커버하는 영역과 일치하지 않을 수도 있는) 커버할 영역과, (벡터 레이어에는 셀이 없기 때문에 벡터 레이어에서 가져올 수 없는) 해상도/셀 크기를 정의합니다.

사용자가 처음 할 수 있는 일은 앞에서 설명한 4개의 정의 값을 쉼표로 구분해서 입력하는 것입니다.

../../../_images/type.png

별도의 설명은 필요 없을 것입니다. 이 작업이 가장 탄력적인 옵션이기는 하지만, 어떤 경우 실용적이지 않을 수도 있습니다. 이것이 다른 옵션들이 존재하는 이유입니다. 이 옵션들에 접근하려면, Output extent(xmin, xmax, ymin, ymax) 텍스트 란 오른쪽에 있는 버튼을 클릭해야 합니다.

../../../_images/menu.png

이 옵션들이 어떤 일을 하는지 하나씩 알아봅시다.

첫 번째 옵션은 다음 선택 대화 창을 띄우는 Use layer/canvas extent 입니다.

../../../_images/layer.png

캔버스의 (현재 줌 단계에서 커버하는) 범위 혹은 사용할 수 있는 레이어 가운데 아무 범위나 선택할 수 있습니다. 선택한 다음 OK 를 클릭하면, 텍스트 란에 자동적으로 상응하는 값을 채울 것입니다.

두 번째 옵션은 Select extent on canvas 입니다. 이 경우 알고리듬 대화 창이 사라지고, QGIS 캔버스 상에서 클릭&드래그하여 원하는 범위를 정의할 수 있습니다.

../../../_images/extent_drag.png

마우스 버튼을 놓으면 대화 창이 다시 나타나는데, 정의한 범위에 상응하는 값이 이미 텍스트 란을 채우고 있을 것입니다.

마지막은 기본 옵션인 Use min covering extent from input layers 입니다. 알고리듬을 실행하는 데 쓰이는 모든 레이어의 최소 커버 범위를 계산할 것입니다. 텍스트 란에 어떤 값도 입력할 필요가 없습니다. 지금 실행하고 있는 알고리듬처럼 입력 레이어가 단 하나일 경우, 앞에서 살펴본 Use layer/canvas extent 와 동일한 입력 레이어를 선택해서 동일한 범위를 얻을 수 있습니다. 하지만 입력 레이어가 두 개 이상일 경우, 최소 커버 범위는 어떤 입력 레이어의 범위와도 일치하지 않습니다. 모든 입력 레이어로부터 계산되기 때문입니다.

래스터화 알고리듬을 실행하는 데 이 마지막 방식을 사용하겠습니다.

파라미터 대화 창을 다음과 같이 설정한 다음, OK 를 클릭하십시오.

../../../_images/parameters.png

참고

이번 예제에서는 Floating point (4 byte) 보다 Integer (1 byte) 형식을 사용하는 편이 낫습니다. NAME 이 최대값=64인 정수이기 때문입니다. 이렇게 설정하면 파일 용량도 줄어들고 처리 시간도 빨리집니다.

원래 벡터 레이어와 정확히 동일한 영역을 커버하는, 래스터화된 레이어를 얻을 것입니다.

../../../_images/result.png

어떤 경우 마지막 Use min covering extent from input layers 옵션을 사용하지 못 할 수도 있습니다. 입력 레이어 없이 다른 유형의 파라미터만을 가지는 알고리듬일 때 그렇습니다. 이런 경우, 값들을 직접 입력하거나 다른 옵션을 이용해야 할 것입니다.

선택 집합이 존재할 경우에도 범위를 계산하는 데 선택 집합을 사용하지 않으며, 선택한 피처들에 대해서만 래스터화를 했다고 하더라도 피처 집합 전체의 범위가 레이어의 범위라는 사실을 유념하십시오. 이런 경우 선택 집합에서 새 레이어를 생성한 다음 해당 레이어를 입력 레이어로 사용해야 할 수도 있습니다.