17.12. 범위 정의

주석

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

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

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

First, let’s open an algorithm that requires an extent to be defined. Open the Shapes to grid algorithm, which creates a raster layer from a vector layer.

../../../_images/rasterize1.png

All the parameters, except for the last two ones, are used to define which layer is to be rasterized, and configure how the rasterization process should work. The two last parameters, on the other hand, define the characteristics of the output layer. That means that they define the area that is covered (which is not necesarily the same area covered by the input vector layer), and the resolution/cellsize (which cannot be infered from the vector layer, since vector layers do not have a cellsize).

사용자가 처음 할 수 있는 일은 앞에서 설명한 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

주석

In this case, better use an Integer (1 byte) instead of a Floating point (4 byte), since the ID is an integer with maximum value=63. This will result in a smaller file size and faster computations.

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

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

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

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