17.2. 래스터 분석

17.2.1. 래스터 계산기

Raster 메뉴에 있는 Raster Calculator 는 기존 래스터 픽셀값을 기반으로 계산을 수행할 수 있습니다. (그림 17.21 참조) 계산 결과는 GDAL 지원 포맷의 새 래스터 레이어로 작성됩니다.

../../../_images/raster_calculator1.png

그림 17.21 래스터 계산기

Raster bands 목록은 불러온 래스터 레이어들 가운데 사용할 수 있는 모든 레이어들을 담고 있습니다. 래스터 계산기 표현식 필드에 래스터를 추가하려면, 필드 목록에서 레이어 이름을 더블클릭하십시오. 그 다음 연산자를 이용해서 계산 표현식을 구성하거나, 또는 표현식란에 직접 입력할 수 있습니다.

Result layer 부분에 산출 레이어를 정의해줘야 합니다. 다음을 정의할 수 있습니다:

  • checkbox Create on-the-fly raster instead of writing layer to disk:

    • 이 옵션을 체크 해제하는 경우, 디스크 상에 산출물을 새 평문 텍스트 파일로 저장합니다. Output layer 경로 및 Output format 은 필수입니다.

    • 이 옵션을 체크하는 경우, 가상 래스터 레이어를 - 예를 들면 URI로 정의되는 래스터 레이어를 레이어 픽셀을 실시간(on-the-fly)으로 계산해서 생성합니다. 디스크 상에 새 파일로 저장되는 것이 아니라, 이 가상 레이어는 계산에 사용된 래스터에 계속 연결되어 있기 때문에 계산에 사용된 래스터를 삭제하거나 이동시키면 가상 레이어에도 오류가 발생합니다. Layer name 을 지정할 수 있습니다. 지정하지 않으면 계산 표현식을 그대로 사용합니다. 프로젝트로부터 가상 레이어를 제거하면 삭제되며, Export ► Save as… 레이어 컨텍스트 메뉴를 이용하면 디스크 상에 파일로 저장할 수 있습니다.

  • 입력 래스터 레이어 범위를 기반으로 계산한 Spatial extent 를 정의하거나, 사용자 지정 X, Y 좌표를 입력할 수 있습니다.

  • 열 및 행 개수를 이용해서 레이어의 Resolution 을 설정할 수 있습니다. 입력 레이어의 해상도와 다른 경우, 값을 최근접 이웃 알고리즘으로 리샘플링할 것입니다.

  • checkbox Add result to project 옵션을 체크하는 경우, 범례 영역에 산출 레이어를 자동으로 추가할 것이고, 추가 후 가시화시킬 수 있습니다. 가상 래스터의 경우 기본적으로 체크되어 있습니다.

Operators 부분에 사용할 수 있는 모든 연산자를 담고 있습니다. 래스터 계산기 표현식란에 연산자를 추가하려면, 적절한 버튼을 클릭하십시오. 산술 계산(+, -, *, … ) 및 삼각함수(sin, cos, tan, … )를 사용할 수 있습니다. 조건 표현식(=, !=, <, >=, … )은 거짓인 경우 0을 또는 참인 경우 1을 반환하기 때문에, 다른 연산자 및 함수와 함께 사용할 수 있습니다.

힌트

래스터 계산기 알고리즘도 참조하세요.

17.2.1.1. 예제

표고값을 미터 단위에서 피트 단위로 변환하기

미터 단위의 표고 래스터에서 피트 단위의 래스터를 생성하려면, 미터를 피트로 변환하는 인수 3.28을 사용해야 합니다. 다음은 그 표현식입니다:

"elevation@1" * 3.28

마스크 이용하기

래스터의 일부분을 가리고 싶은 경우 - 그러니까 예를 들어 표고 0미터 이상에만 관심이 있을 경우 - 다음 표현식을 이용해서 마스크를 생성하고 그 결과를 래스터에 적용하는 작업을 한 번에 할 수 있습니다:

("elevation@1" >= 0) * "elevation@1"

즉 그 값이 0 이상인 모든 셀에 대해 조건 표현식이 1을 반환하기 때문에 1을 곱해도 원본 값을 유지합니다. 반면 값이 0 미만인 셀에 대해서는 0을 반환하기 때문에 래스터 값이 0이 됩니다. 이렇게 실시간으로 마스크를 생성합니다.

래스터 범주화하기

래스터를 범주화하고 싶은 경우 - 그러니까 예를 들어 표고값을 2단계로 나누고 싶은 경우, 다음 표현식을 이용해서 1과 2 두 개의 값을 지닌 래스터를 한 번에 생성할 수 있습니다:

("elevation@1" < 50) * 1 + ("elevation@1" >= 50) * 2

즉 그 값이 50 미만인 모든 셀의 값은 1이 되고, 50 이상인 모든 셀의 값은 2가 됩니다.

또는 IF 연산자를 사용할 수 있습니다.

if ( elevation@1 < 50 , 1 , 2 )

17.2.2. 래스터 정렬

이 도구는 여러 래스터를 입력받아 완벽하게 정렬할 수 있습니다. 무슨 뜻이냐 하면:

  • 동일한 좌표계로 재투영하고,

  • 그리드에 있는 셀 크기 및 오프셋을 동일하게 리샘플링하며,

  • 관심 지역으로 잘라내고,

  • 필요한 경우 값을 재조정할 수 있습니다.

이때 모든 래스터는 다른 파일로 저장될 것입니다.

먼저, Raster ► Align Raster… 에서 이 도구를 열고 symbologyAdd Add new raster 아이콘을 클릭해서 QGIS에 있는 기존 래스터 가운데 하나를 선택하십시오. 정렬 작업 뒤에 래스터를 저장할 산출 파일, 리샘플링 방법, 그리고 Rescale values according to the cell size 옵션으로 셀 크기에 따라 값을 재조정할지 여부를 선택하십시오. 리샘플링 방법은 다음 가운데 하나를 선택할 수 있습니다. (그림 17.22 를 참조하세요.):

  • Nearest Neighbor

  • Bilinear (2x2 kernel)

  • Cubic (4x4 kernel): 3차 회선 근사값(Cubic Convolution Approximation)

  • Cubic B-Spline (4x4 kernel): 3차 B 스플라인 근사값(Cubic B-Spline Approximation)

  • Lanczos (6x6 kernel): 란초시 창함수 싱크 보간법 (Lánczos windowed sinc interpolation)

  • Average: NODATA가 아닌 모든 기여 픽셀(contributing pixel)의 평균값을 계산

  • Mode: 표본 추출(sampling)한 모든 포인트 가운데 가장 흔히 나타나는 값을 선택

  • Maximum, Minimum, Mediane, First Quartile (Q1) 또는 Third Quartile (Q3): NODATA가 아닌 모든 기여 픽셀의 최대값, 최소값, 중앙값, 제1 사분위수(Q1) 또는 제3 사분위수(Q3)를 계산

../../../_images/raster_align_edit.png

그림 17.22 래스터 리샘플링 옵션 선택하기

Align raster 대화창에서, 래스터 레이어 목록으로부터 symbologyEdit Edit file settings 아이콘으로 파일 설정을 편집하거나 symbologyRemove Remove an existing file 아이콘으로 기존 파일을 제거할 수 있습니다. 다음 기타 옵션도 하나 이상 선택할 수 있습니다. (그림 17.23 을 참조하세요.):

  • Reference Layer: 참조 레이어 선택

  • CRS: 새 좌표계로 변형

  • Cell size: 다른 셀 크기를 설정

  • Grid Offset: 다른 그리드 오프셋을 설정

  • Clip to Extent: 사용자 정의, 레이어 기반, 또는 맵 캔버스 기반 가운데 하나를 선택

  • Output Size: 산출물 크기를 설정

  • Add aligned raster to the map canvas: 맵 캔버스에 정렬한 래스터를 추가할지 여부를 선택

../../../_images/raster_align.png

그림 17.23 래스터 정렬