중요

번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.

8.4. 수업: 보충 예제

이 수업을 통해 QGIS에서 완전한 GIS 분석을 하게 될 것입니다.

참고

이 수업은 Linfiniti와 (남아프리카공화국 케이프 페닌슐라 기술대학교의) 시디크 모탈라(Siddique Motala)가 기고했습니다.

8.4.1. 과제 제시

여러분이 할 일은 케이프 페닌슐라 주변에서 핀보스(fynbos) 식생 희귀종들이 서식하기에 적합한 지역들을 찾는 것입니다. 조사 지역의 범위는 케이프 타운 및 북쪽의 멜크보스스트랜드(Melkbostrand)와 남쪽의 스트랜드(Strand) 사이에 있는 케이프 페닌슐라를 포함합니다. 식물학자들은 해당 종들의 선호도를 다음과 같이 설명해 주었습니다:

  • 동향 경사면에서 자랍니다.

  • 경사도가 15%에서 60% 사이인 경사면에서 자랍니다.

  • 연간 총 강수량이 1,000mm를 초과하는 지역에서 자랍니다.

  • 인간 거주지에서 최소 250m 이상 떨어진 곳에서만 발견됩니다.

  • 이 종들이 발현하는 식생 지역의 면적은 최소 6,000㎡ 이상이어야 합니다.

여러분은 대학생으로서 네 군데의 적합 지역에서 식물을 찾는 데 동의했습니다. 여러분이 살고 있는 케이프 타운 대학교에 가장 가까운 위치에 이 네 군데의 적합 지역이 있다면 좋겠지요. 여러분의 GIS 기술을 이용해서 어디를 찾아가봐야 할지 결정하십시오.

8.4.2. 해답의 개요

이 예제를 위한 데이터는 exercise_data/more_analysis 폴더에 있습니다.

케이프 타운 대학교에 가장 가까이 있는 적합 지역 네 곳을 찾아야 합니다.

해답은 다음을 포함할 것입니다:

  1. 동쪽을 바라보며 올바른 경사도를 가진 경사면을 찾기 위해 DEM 래스터 레이어를 분석하기

  2. 올바른 강수량을 가진 지역을 찾기 위해 강수량 래스터 레이어를 분석하기

  3. 인간 거주지로부터 떨어져 있으며 올바른 면적을 가진 지역을 찾기 위해 용도지역(zoning) 벡터 레이어를 분석하기

8.4.3. 따라해보세요: 맵을 설정하기

  1. 화면 우하단에 있는 projectionEnabled Current CRS 버튼을 클릭하십시오. 대화창이 열리면 CRS 탭에 있는 Filter 도구를 사용해서 33S 를 검색하십시오. (EPSG 코드가 32733 인) WGS 84 / UTM zone 33S 항목을 선택하십시오.

  2. OK 를 클릭합니다.

    ../../../_images/crs.png

    그림 8.3 좌표계 설정하기

  3. fileSave Save Project 툴바 버튼을 클릭하거나, Project ► Save As… 메뉴 항목을 사용해서 프로젝트 파일을 저장하십시오.

    Rasterprac 이라는 새 디렉터리에 이 프로젝트 파일을 저장하십시오. 여러분의 컴퓨터에 이 디렉터리를 생성해야 합니다. 이 디렉터리에 여러분이 생성하게 될 모든 레이어를 저장하십시오. 프로젝트 파일의 이름은 your_name_fynbos.qgs 로 지정하십시오.

8.4.4. 맵에 데이터 불러오기

데이터를 처리하기 위해, 맵 캔버스에 필수 (도로 이름, 용도지역, 강수량, DEM, 행정구역) 레이어들을 불러와야 합니다.

벡터의 경우…

  1. 데이터 소스 관리자 툴바 에 있는 dataSourceManager Open Data Source Manager 버튼을 클릭한 다음 대화창이 열리면 addOgrLayer Vector 탭을 선택하거나, 또는 Layer ► Add Layer ► addOgrLayer Add Vector Layer… 메뉴 항목을 사용하십시오.

  2. radioButtonOn File 라디오버튼이 선택된 상태인지 확인하십시오.

  3. 버튼을 클릭해서 벡터 데이터셋(들)을 탐색하십시오.

  4. 대화창이 열리면, exercise_data/more_analysis/Streets 디렉터리를 여십시오.

  5. Street_Names_UTM33S.shp 파일을 선택하십시오.

  6. Open 을 클릭하십시오.

    이 대화창이 닫히고 Vector dataset(s) 옆에 있는 텍스트란에 지정한 파일 경로가 표시된 원래 대화창이 나타납니다. 이렇게 올바른 파일이 선택되었는지 확인할 수 있습니다. 원한다면 이 텍스트란에 파일 경로를 직접 입력할 수도 있습니다.

  7. Add 를 클릭하십시오. 맵에 해당 벡터 레이어를 불러올 것입니다. 색상은 자동 할당되는데, 나중에 변경할 것입니다.

  8. 레이어 이름을 Streets 로 변경하십시오.

    1. Layers 패널에서 이 레이어를 오른쪽 클릭하십시오. (기본적으로 화면 왼쪽을 따라 있는 패널입니다.)

    2. 대화창이 열리면 Rename 을 클릭하고 이름을 바꾼 다음, Enter 키를 누르십시오.

  9. 이번에는 Zoning 디렉터리에 있는 Generalised_Zoning_Dissolve_UTM33S.shp 파일을 선택해서 벡터 추가 과정을 반복하십시오.

  10. 레이어 이름을 Zoning 으로 변경하십시오.

  11. 맵에 admin_boundaries/Western_Cape_UTM33S.shp 벡터 레이어도 불러오십시오.

  12. 레이어 이름을 Districts 로 변경하십시오.

래스터의 경우…

  1. dataSourceManager Open Data Source Manager 버튼을 클릭한 다음 대화창이 열리면 addRasterLayer Raster 탭을 선택하거나, 또는 Layer ► Add Layer ► addRasterLayer Add Raster Layer… 메뉴 항목을 사용하십시오.

  2. radioButtonOn File 라디오버튼이 선택된 상태인지 확인하십시오.

  3. 알맞은 파일을 찾아서 선택한 다음, Open 을 클릭하십시오.

  4. 다음 DEM/SRTM.tifrainfall/reprojected/rainfall.tif 래스터 파일 2개를 불러오면 됩니다.

  5. SRTM 래스터의 이름을 DEM 으로, 강수량 래스터의 이름을 (첫 글자를 대문자로 해서) Rainfall 으로 바꾸십시오.

8.4.5. 레이어 순서 변경하기

가능한 한 많은 레이어가 보이도록 Layers 패널에서 레이어들을 위아래로 클릭&드래그해서 맵 상에 나타나는 순서를 변경하십시오.

이제 모든 데이터를 불러오고 적절하게 가시화시켰으므로, 분석을 시작할 수 있습니다. 잘라내기(clip) 작업을 먼저 하는 것이 가장 좋습니다. 이렇게 하면 어차피 사용하지 않을 지역의 값을 계산하는 데 처리 능력이 낭비되지 않습니다.

8.4.6. 알맞은 행정구역 찾기

앞서 언급했던 조사 지역에 따라, 행정구역(district)을 다음으로 제한해야 합니다:

  • Bellville

  • Cape

  • Goodwood

  • Kuils River

  • Mitchells Plain

  • Simon Town

  • Wynberg

  1. Layers 패널에서 Districts 레이어를 오른쪽 클릭하십시오.

  2. 컨텍스트 메뉴에서 Filter… 메뉴 항목을 선택하십시오. Query Builder 대화창이 열립니다.

  3. 이제 후보 행정구역들만 선택하기 위한 쿼리를 작성할 수 있습니다:

    1. Fields 목록에서 NAME_2 필드를 더블클릭하십시오. 아래에 있는 SQL where clause 텍스트란에 해당 필드가 나타날 것입니다.

    2. IN 버튼을 클릭해서 SQL 쿼리에 추가하십시오.

    3. 괄호를 여십시오.

    4. (현재 비어 있는) Values 목록 아래 있는 All 버튼을 클릭하십시오.

      잠깐 시간이 흐른 뒤에, Values 목록이 선택한 필드(NAME_2)의 값들로 채워질 것입니다.

    5. Values 목록에서 Bellville 값을 더블클릭하면 SQL 쿼리에 추가됩니다.

    6. 쉼표를 추가한 다음 Cape 행정구역을 더블클릭해서 추가하십시오.

    7. 이전 단계를 반복해서 나머지 행정구역들을 추가하십시오.

    8. 괄호를 닫으십시오.

    ../../../_images/query_builder.png

    그림 8.4 쿼리 작성기

    최종 쿼리가 다음과 같아야 합니다(괄호 안에 있는 행정구역들의 순서는 상관없습니다):

    "NAME_2" in ('Bellville', 'Cape', 'Goodwood', 'Kuils River',
                 'Mitchells Plain', 'Simon Town', 'Wynberg')
    

    참고

    OR 연산자를 사용해도 됩니다. 쿼리가 다음과 같이 보일 것입니다:

    "NAME_2" = 'Bellville' OR "NAME_2" = 'Cape' OR
    "NAME_2" = 'Goodwood' OR "NAME_2" = 'Kuils River' OR
    "NAME_2" = 'Mitchells Plain' OR "NAME_2" = 'Simon Town' OR
    "NAME_2" = 'Wynberg'
    
    1. OK 를 두 번 클릭하십시오.

      이제 맵에 앞의 목록에 있는 행정구역들만 보입니다.

8.4.7. 래스터 잘라내기

이제 관심 지역을 지정했으니, 래스터를 이 지역에 맞춰 자를 수 있습니다.

  1. Raster ► Extraction ► Clip Raster by Mask Layer… 메뉴 항목을 선택해서 잘라내기 대화창을 여십시오.

  2. Input layer 드롭다운 목록에서 DEM 레이어를 선택하십시오.

  3. Mask layer 드롭다운 메뉴에서 Districts 레이어를 선택하십시오.

  4. Clipped (mask) 텍스트란 옆에 있는 버튼을 클릭한 다음 Save to File… 을 선택해서 산출물 위치를 지정하십시오.

    1. Rasterprac 디렉터리를 찾아가십시오.

    2. 파일 이름을 DEM_clipped.tif 로 입력합니다.

    3. 저장하십시오.

  5. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  6. Run 을 클릭하십시오.

    잘라내기 작업이 완료된 후에도 Clip Raster by Mask Layer 대화창을 닫지 마십시오. 잘라내기 지역을 다시 사용할 수 있게 말입니다.

  7. Input layer 드롭다운 목록에서 Rainfall 래스터 레이어를 선택하고 산출물을 Rainfall_clipped.tif 파일로 저장하십시오.

  8. 다른 옵션들은 그대로 두십시오. 모든 것을 동일하게 유지하고 Run 을 클릭하십시오.

  9. 두 번째 잘라내기 작업이 완료되었으면, Clip Raster by Mask Layer 대화창을 닫아도 좋습니다.

  10. 맵을 저장하십시오.

    ../../../_images/clipped_r_filtered_v_reordered_l.png

    그림 8.5 필터링된 벡터, 잘라낸 래스터 레이어들의 순서를 조정한 맵 뷰

래스터 정렬하기

분석을 하려면 래스터들이 동일한 좌표계를 사용하고 정렬되어 있어야 합니다.

먼저 강수량 데이터의 해상도를 30m(픽셀 크기)로 변경합니다:

  1. Layers 패널에서 Rainfall_clipped 레이어가 활성화된 상태인지 (클릭해서 강조되어 있는 상태인지) 확인하십시오.

  2. Raster ► Projections ► Warp (Reproject)… 메뉴 항목을 클릭해서 Warp (Reproject) 대화창을 여십시오.

  3. Resampling method to use 의 드롭다운 메뉴에서 Bilinear (2x2 kernel) 를 선택하십시오.

  4. Output file resolution in target georeferenced units30 으로 설정하십시오.

  5. Reprojected 로 가서 rainfall/reprojected 디렉터리에 산출물을 Rainfall30.tif 파일로 저장하십시오.

  6. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

    ../../../_images/wrap_rainfall.png

    그림 8.6 Rainfall_clipped 레이어 왜곡 (재투영)

그 다음 DEM을 정렬시킵니다:

  1. Layers 패널에서 DEM_clipped 레이어가 활성화된 상태인지 (클릭해서 강조되어 있는 상태인지) 확인하십시오.

  2. Raster ► Projections ► Warp (Reproject)… 메뉴 항목을 클릭해서 Warp (Reproject) 대화창을 여십시오.

  3. Target CRS 의 드롭다운 메뉴에서 Project CRS: EPSG:32733 - WGS 84 / UTM zone 33S 를 선택하십시오.

  4. Resampling method to use 의 드롭다운 메뉴에서 Bilinear (2x2 kernel) 를 선택하십시오.

  5. Output file resolution in target georeferenced units30 으로 설정하십시오.

  6. Georeferenced extents of output file to be created 로 가십시오. 텍스트란의 오른쪽에 있는 버튼을 사용해서 Calculate from Layer ► Rainfall30 을 선택하십시오.

  7. Reprojected 로 가서 DEM/reprojected 디렉터리에 산출물을 DEM30.tif 파일로 저장하십시오.

  8. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

레이어에 담긴 정보를 제대로 보려면 레이어의 심볼을 변경해야 합니다.

8.4.8. 벡터 레이어의 심볼 변경하기

  1. Layers 패널에서 Streets 레이어를 오른쪽 클릭하십시오.

  2. 나타난 컨텍스트 메뉴에서 Properties 항목을 선택하십시오.

  3. 대화창이 열리면 Symbology 탭으로 가십시오.

  4. 최상단 위젯에 있는 Line 항목을 클릭하십시오.

  5. 아래 목록에서 심볼을 선택하거나 또는 새 심볼을 (색상, 투명도 등등을) 설정하십시오.

  6. OK 를 클릭해서 Layer Properties 대화창을 닫으십시오. Streets 레이어의 렌더링이 바뀔 것입니다.

  7. Zoning 레이어에 대해서도 비슷한 처리 과정을 거쳐 알맞은 색상을 선택하십시오.

8.4.9. 래스터 레이어의 심볼 변경하기

래스터 레이어의 심볼은 조금 다릅니다.

  1. Rainfall30 래스터 레이어의 Properties 대화창을 여십시오.

  2. Symbology 탭을 선택하십시오. 이 대화창이 벡터 레이어 용 버전과는 매우 다르다는 사실을 알 수 있을 겁니다.

  3. Min/Max Value Settings 를 펼치십시오.

  4. Mean +/- standard deviation 라디오버튼이 선택된 상태인지 확인하십시오.

  5. 해당 옵션의 텍스트란에 있는 값이 2.00 인지 확인하십시오.

  6. Contrast enhancement 옵션이 Stretch to MinMax 로 되어 있는지 확인하십시오.

  7. Color gradientWhite to Black 으로 바꾸십시오.

  8. OK 를 클릭합니다.

    ../../../_images/raster_symbology.png

    그림 8.7 래스터 심볼

    Rainfall30 래스터가 가시화된 상태인 경우 색상이 바뀌어 각 픽셀의 서로 다른 밝기(brightness) 값을 볼 수 있게 될 것입니다.

  9. DEM30 레이어에 대해서도 이 처리 과정을 반복하십시오. 다만 구간 작업에 사용되는 표준 편차는 4.00 으로 설정하십시오.

8.4.10. 맵 정리하기

  1. Layers 에서 원본 RainfallDEM 레이어는 물론 Rainfall_clippedDEM_clipped 레이어도 제거하십시오:

    • 해당 레이어들을 오른쪽 클릭한 다음 Remove 를 선택하십시오.

      참고

      여러분의 저장 장치에서 데이터를 삭제하는 것이 아니라, 여러분의 맵에서 해당 데이터를 빼는 것뿐입니다.

  2. 맵을 저장하십시오.

  3. 이제 Layers 패널에서 벡터 레이어 옆에 있는 체크박스를 체크 해제하면 해당 벡터 레이어를 숨길 수 있습니다. 이렇게 하면 맵 렌더링 속도가 빨라져 시간을 조금 절약할 수 있을 겁니다.

8.4.11. 음영기복도 생성하기

음영기복(hillshade)을 생성하려면, 그 목적을 위해 작성된 알고리즘을 사용해야 합니다.

  1. Layers 패널에서 DEM30 레이어가 활성화된 상태인지 (클릭해서 강조되어 있는 상태인지) 확인하십시오.

  2. Raster ► Analysis ► Hillshade… 메뉴 항목을 클릭해서 Hillshade 대화창을 여십시오.

  3. Hillshade 로 가서 Rasterprac 디렉터리에 산출물을 hillshade.tif 파일로 저장하십시오.

  4. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  5. Run 을 클릭하십시오.

  6. 처리 과정이 끝날 때까지 기다리십시오.

    ../../../_images/hillshade.png

    그림 8.8 래스터 분석 — 음영기복도

hillshade 레이어가 Layers 패널에 나타납니다.

  1. Layers 패널에서 hillshade 레이어를 오른쪽 클릭해서 Properties 대화창을 여십시오.

  2. Transparency 탭을 클릭하고 Global Opacity 슬라이드 바를 20% 로 설정하십시오.

  3. OK 를 클릭합니다.

  4. 투명한 음영기복도가 잘라낸 DEM 위에 올 때 어떤 효과가 나는지 살펴보십시오. 이 효과를 제대로 보려면 레이어들의 순서를 변경하거나 또는 Rainfall30 레이어를 체크 해제해야 할 수도 있습니다.

8.4.12. 경사

  1. Raster ► Analysis ► Slope… 메뉴 항목을 클릭해서 Slope 알고리즘 대화창을 여십시오.

  2. Input layerDEM30 을 선택하십시오.

  3. checkbox Slope expressed as percent instead of degrees 체크박스를 체크하십시오. 서로 다른 단위들로 (백분율 또는 도 단위로) 경사를 표현할 수 있습니다. 우리의 기준은 관심 식생이 15%에서 60% 사이의 경사면에서 자란다고 설명합니다. 따라서 경사 데이터가 백분율로 표현되어 있는지 확인해야 합니다.

  4. 산출물의 적절한 파일 이름과 위치를 지정하십시오.

  5. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  6. Run 을 클릭하십시오.

    ../../../_images/slope.png

    그림 8.9 래스터 분석 — 경사

경사 이미지가 계산되어 맵에 추가됐습니다. 평소와 같이 회색조로 렌더링됩니다. 심볼을 좀 더 화려한 색상으로 바꾸십시오:

  1. (평소대로 레이어를 오른쪽 클릭해서) 경사 레이어의 Properties 대화창을 여십시오.

  2. Symbology 탭을 클릭하십시오.

  3. Render type 드롭다운 메뉴에서 Singleband graySingleband pseudocolor 로 변경하십시오.

  4. Min / Max Value SettingsMean +/- standard deviation x 의 값을 2.0 으로 선택하십시오.

  5. 적합한 Color ramp 를 선택하십시오.

  6. Run 을 클릭하십시오.

8.4.13. 혼자서 해보세요: 경사 방향

Raster ► Analysis 메뉴에서 Aspect… 를 선택한 다음, 경사를 계산하기 위한 방법과 동일한 접근법을 사용하십시오.

프로젝트를 주기적으로 저장하는 것을 잊지 마세요.

8.4.14. 래스터 재범주화하기

  1. Raster ► Raster calculator… 메뉴를 선택하십시오.

  2. Output layer 의 위치를 ( 버튼을 클릭해서) Rasterprac 디렉터리로 지정하십시오. 파일 이름은 slope15_60.tif 로 저장하십시오.

  3. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

    왼쪽에 있는 Raster bands 목록에서 Layers 패널에 있는 모든 래스터 레이어들을 볼 수 있을 것입니다. 여러분의 경사 레이어의 이름이 slope 라면 목록에는 slope@1 로 나타날 것입니다. 경사 래스터의 1번 밴드라는 뜻입니다.

  4. 경사는 15 에서 60 % 사이여야 합니다.

    인터페이스에 있는 목록 항목들과 버튼들을 사용해서 다음 표현식을 작성하십시오:

    (slope@1 > 15) AND (slope@1 < 60)
    
  5. Output layer 란에 적절한 경로 및 파일 이름을 설정하십시오.

  6. Run 을 클릭합니다.

    ../../../_images/raster_calculator_slope.png

    그림 8.10 래스터 계산기 — 경사

이제 동일한 접근법을 사용해서 올바른 경사 방향을 (동향: 45 에서 135 도 사이) 찾으십시오.

  1. 다음 표현식을 작성하십시오:

    (aspect@1 > 45) AND (aspect@1 < 135)
    

산출되는 래스터에서 동쪽을 바라보는 경사면들이 (마치 아침 햇살이 비추는 것 같이) 모두 하얀색이면 제대로 작동했다는 사실을 알 수 있습니다.

동일한 방식을 통해 알맞은 강수량을 (1000 mm 초과) 찾으십시오. 다음 표현식을 사용하십시오:

Rainfall30@1 > 1000

이제 3개의 기준을 각각 개별 래스터로 만들었으니, 이 래스터들을 결합해서 기준들을 모두 만족시키는 지역을 찾아야 합니다. 이를 위해 래스터들을 서로 곱할 것입니다. 이렇게 하면 중첩하는 픽셀들 가운데 모든 레이어에서 값이 1 인 픽셀은 (즉 기준을 만족시키는 위치는) 값을 1 로 유지할 것입니다. 그러나 세 레이어의 픽셀들 가운데 하나라도 값이 0``인 경우 (즉 기준을 만족시키지 못하는 위치는) 결과물에서 값이 ``0 일 것입니다. 이런 방법으로, 결과물은 기준들을 모두 만족시키는 중첩 지역만 담게 될 것입니다.

8.4.15. 래스터 결합하기

  1. Raster ► Raster calculator… 메뉴를 선택해서 래스터 계산기 를 여십시오.

  2. (여러분이 생성한 레이어의 이름을 사용해서) 다음과 같은 표현식을 작성하십시오:

    [aspect45_135] * [slope15_60] * [rainfall_1000]
    
  3. 산출 경로를 Rasterprac 디렉터리로 설정하십시오.

  4. 산출 래스터 파일의 이름을 aspect_slope_rainfall.tif 로 지정하십시오.

  5. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  6. Run 을 클릭하십시오.

새 래스터가 기준 3개를 모두 만족시키는 지역들을 제대로 보여줍니다.

프로젝트를 저장하십시오.

../../../_images/aspect_slope_rainfall.png

그림 8.11 기준 3개를 모두 만족시키는 지역을 보여주는 맵 뷰

다음으로 만족해야 하는 기준은 인간 거주지로부터 반드시 250 미터 이상 떨어진 지역이어야만 한다는 것입니다. 계산하는 지역이 교외 지역(rural area) 안에 있으면서 지역 경계로부터 250 미터 이상 떨어져 있어야 이 요구 사항을 충족시킬 수 있습니다. 따라서 먼저 교외 지역들을 모두 찾아야 합니다.

8.4.16. 교외 지역 찾기

  1. Layers 패널에서 레이어를 모두 숨기십시오.

  2. Zoning 벡터 레이어를 가시화시키십시오.

  3. 이 레이어를 오른쪽 클릭하고 Attribute Table 대화창을 여십시오. 여기에서 토지를 용도에 따라 구분하는 다양한 방법을 주목하세요. 우리는 교외 지역만 분리하려 합니다. 속성 테이블을 닫으십시오.

  4. Zoning 레이어를 오른쪽 클릭하고 Filter… 항목을 선택해서 Query Builder 대화창을 여십시오.

  5. 다음 쿼리를 작성하십시오:

    "Gen_Zoning" = 'Rural'
    

    문제가 발생할 경우 이전 지침을 참조하세요.

  6. OK 를 클릭해서 Query Builder 대화창을 닫으십시오. 쿼리가 피처 하나를 반환할 것입니다.

    ../../../_images/query_builder_zoning.png

    쿼리 작성기 — 용도지역(zoning)

Zoning 레이어에서 나온 교외 폴리곤들을 보게 될 것입니다. 이 폴리곤들을 저장해야 합니다.

  1. Zoning 레이어를 오른쪽 클릭하면 나타나는 컨텍스트 메뉴에서 Export ► Save Features As… 항목을 선택하십시오.

  2. Rasterprac 디렉터리에 이 레이어를 저장하십시오.

  3. 산출 파일의 이름을 rural.shp 로 지정하십시오.

  4. OK 를 클릭합니다.

  5. 프로젝트를 저장하십시오.

이제 교외 지역의 경계로부터 250m 안에 있는 지역들을 제외해야 합니다. 다음 부분에서 설명하는 대로 음의 버퍼(negative buffer)를 생성하면 됩니다.

8.4.17. 음의 버퍼 생성하기

  1. Vector ► Geoprocessing Tools ► Buffer… 메뉴 항목을 클릭하십시오.

  2. 대화창이 열리면, rural 레이어를 입력 벡터 레이어로 선택하십시오. (Selected features only 옵션이 체크 해제되어 있어야 합니다.)

  3. Distance-250 으로 설정하십시오. 음수는 버퍼가 내부 버퍼가 될 것이라는 의미입니다. 드롭다운 메뉴에서 단위가 미터인지 확인하십시오.

  4. checkbox Dissolve result 를 체크하십시오.

  5. Buffered 에서 산출 파일의 경로를 Rasterprac 디렉터리로 그리고 이름을 rural_buffer.shp 로 지정하십시오.

  6. Save 를 클릭합니다.

  7. Run 을 클릭한 다음 처리 과정이 완료되기를 기다리십시오.

  8. Buffer 대화 창을 닫으십시오.

    rural_buffer 레이어가 rural 레이어와 어떻게 다른지 비교해서 버퍼 작업이 올바르게 동작했는지 확인하십시오. 차이점을 관찰하기 위해 그리기 순서를 변경해야 할 수도 있습니다.

  9. rural 레이어를 제거하십시오.

  10. 프로젝트를 저장하십시오.

    ../../../_images/rural_buffer.png

    그림 8.12 교외 버퍼를 보여주는 맵 뷰

이제 rural_buffer 벡터 레이어를 aspect_slope_rainfall 래스터와 결합해야 합니다. 이들을 결합하려면, 이 레이어들 가운데 하나의 데이터 포맷을 변경해야 할 것입니다. 이 예제에서는 래스터를 벡터화할 것입니다. 벡터 레이어가 면적을 계산하는 데 더 용이하기 때문입니다.

8.4.18. 래스터를 벡터화하기

  1. Raster ► Conversion ► Polygonize (Raster to Vector)… 메뉴 항목을 클릭하십시오.

  2. Input layeraspect_slope_rainfall 래스터를 선택하십시오.

  3. Name of the field to createsuitable 로 설정하십시오. (기본 필드 이름은 DN 으로, ‘Digital Number data’의 약자입니다.)

  4. 산출물을 저장합시다. Vectorized 에서 Save file as 를 선택하십시오. 산출 파일의 경로를 Rasterprac 디렉터리로 그리고 이름을 aspect_slope_rainfall_all.shp 로 지정하십시오.

  5. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  6. Run 을 클릭하십시오.

  7. 처리 과정이 완료되면 대화창을 닫으십시오.

    ../../../_images/vectorized.png

    그림 8.13 래스터를 벡터로

래스터 전 지역이 벡터화되었으므로, suitable 필드(디지털 수)의 값이 1 인 지역들만 선택해야 합니다.

  1. 새로운 벡터 레이어를 오른쪽 클릭하고 Filter… 를 선택해서 Query Builder 대화창을 여십시오.

  2. 다음 쿼리를 작성하십시오:

    "suitable" = 1
    
  3. OK 를 클릭합니다.

  4. 쿼리가 완료되었는지 확인한 다음 (그리고 기준 3개를 모두 만족하는, 다시 말해 값이 1 인 지역들만 보이는지 확인한 다음) 그 결과물로부터 새 벡터 파일을 생성하십시오. 산출 레이어를 오른쪽 클릭하고 Export ► Save Features As… 메뉴 항목을 선택하면 됩니다.

  5. Rasterprac 디렉터리에 이 파일을 저장하십시오.

  6. 파일 이름을 aspect_slope_rainfall_1.shp 로 지정하십시오.

  7. 여러분의 맵에서 aspect_slope_rainfall_all 레이어를 제거하십시오.

  8. 프로젝트를 저장하십시오.

래스터를 벡터화하는 알고리즘을 사용할 때, 알고리즘이 “무결하지 않은 도형”이라는 걸 생성하는 경우가 있습니다. 예를 들면 비어 있는 폴리곤이라든가 또는 실수가 발생한 폴리곤이라든가 말이죠. 나중에 이 폴리곤들을 분석하기는 어려울 것입니다. 따라서 “도형 수정(Fix Geometry)” 도구를 사용해야 합니다.

8.4.19. 도형 수정하기

  1. Processing Toolbox 에서 “Fix geometries”를 검색해서 선택한 다음 Execute… 를 클릭하십시오.

  2. Input layeraspect_slope_rainfall_1 을 선택하십시오.

  3. Fixed geometries 에서 Save file as 를 선택하십시오. 산출 파일의 경로를 Rasterprac 디렉터리로 그리고 이름을 fixed_aspect_slope_rainfall.shp 로 지정하십시오.

  4. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  5. Run 을 클릭하십시오.

  6. 처리 과정이 완료되면 대화창을 닫으십시오.

이제 래스터를 벡터화하고 산출 도형을 수정했으니, fixed_aspect_slope_rainfall 레이어와 rural_buffer 레이어의 교차 영역을 찾으면 경사 방향, 경사, 강수량 기준을 인간 거주지로부터의 거리 기준과 결합할 수 있습니다.

8.4.20. 벡터들의 교차 영역 알아내기

  1. Vector ► Geoprocessing Tools ► Intersection… 메뉴 항목을 클릭하십시오.

  2. 대화창이 열리면, Input layerrural_buffer 레이어를 선택하십시오.

  3. Overlay layer 에는 fixed_aspect_slope_rainfall 레이어를 선택하십시오.

  4. Intersection 에서 산출 파일의 경로를 Rasterprac 디렉터리로 지정하십시오.

  5. 산출 파일의 이름은 rural_aspect_slope_rainfall.shp 로 지정하십시오.

  6. Save 를 클릭합니다.

  7. Run 을 클릭한 다음 처리 과정이 완료되기를 기다리십시오.

  8. Intersection 대화창을 닫으십시오.

    중첩하는 지역들만 남아 있는지 살펴서 교차 영역 작업이 올바르게 작동했는지 확인하십시오.

  9. 프로젝트를 저장하십시오.

목록에 있는 다음 기준은 면적이 반드시 6000 평방미터보다 커야만 한다는 것입니다. 이제 이 프로젝트에 알맞은 크기인 지역들을 식별하기 위해 폴리곤 면적을 계산할 것입니다.

8.4.21. 각 폴리곤의 면적을 계산하기

  1. 새 벡터 레이어를 오른쪽 클릭해서 컨텍스트 메뉴를 여십시오.

  2. Open attribute table 항목을 선택하십시오.

  3. 테이블 좌상단에 있는 toggleEditing Toggle editing 버튼을 클릭하거나, Ctrl+e 단축키를 누르십시오.

  4. 테이블 상단의 툴바에 있는 calculateField Open field calculator 버튼을 클릭하거나, Ctrl+i 단축키를 누르십시오.

  5. 대화창이 열리면, checkbox Create new field 옵션이 체크되어 있는지 확인한 다음 Output field namearea 로 설정하십시오. 산출 필드 유형이 십진수(실수형)여야 합니다. Precision1 로 (소수점 이하 자릿수를 하나로) 설정하십시오.

  6. Expression 란에 다음을 입력하십시오:

    $area
    

    이렇게 하면 필드 계산기가 벡터 레이어에 있는 각 폴리곤의 면적을 계산해서 (area 라는) 새로운 정수형 열을 계산한 값으로 채울 것입니다.

    ../../../_images/field_calculator_area.png

    그림 8.14 필드 계산기

  7. OK 를 클릭합니다.

  8. id 라는 또다른 새 필드에 대해서도 같은 작업을 하십시오. Field calculator expression 란에 다음을 입력하십시오:

    $id
    

    이렇게 하면 각 폴리곤에 식별을 위한 유일 ID를 부여하게 됩니다.

  9. toggleEditing Toggle editing 버튼을 다시 클릭하고, 저장 여부를 묻는 메시지가 뜨면 편집 내용을 저장하십시오.

    ../../../_images/attribute_table.png

    그림 8.15 면적과 ID 열을 생성한 속성 테이블

8.4.22. 지정한 면적을 가진 지역을 선택하기

이제 면적을 알게 됐으니:

  1. (평소와 같이) 면적이 6000 평방미터보다 큰 폴리곤들만 선택하기 위한 다음 쿼리를 작성하십시오:

    "area" > 6000
    
  2. Rasterprac 디렉터리에 새 벡터 레이어를 suitable_areas.shp 라는 이름으로 저장하십시오.

이제 핀보스(fynbos) 식생 희귀종들이 서식하기에 적합한 지역들을 찾았습니다. 이 지역들 가운데 케이프 타운 대학교에 가장 가까이 있는 네 곳을 고를 것입니다.

8.4.23. 케이프 타운 대학교를 디지타이즈하기

  1. 이전과 같이 Rasterprac 디렉터리에 새 벡터 레이어를 생성하십시오. 다만 이번에는 Geometry typePoint 로 그리고 이름을 university.shp 로 지정하십시오.

  2. 이 레이어에 올바른 좌표계가 (Project CRS:EPSG:32733 - WGS 84 / UTM zone 33S 가) 적용되었는지 확인하십시오.

  3. 새 레이어 생성을 완료하십시오. (OK 를 클릭하십시오.)

  4. Streets 레이어와 새 university 레이어만 제외하고 다른 레이어들을 모두 숨기십시오.

  5. 배경 맵(오픈스트리트맵)을 추가하십시오:

    1. Browser 패널로 가서 XYZ Tiles ► OpenStreetMap 메뉴 항목을 찾으십시오.

    2. OpenStreetMap 항목을 Layers 패널의 맨 밑으로 드래그&드롭하십시오.

    여러분의 인터넷 브라우저를 사용해서 케이프 타운 대학교의 위치를 검색해보십시오. 케이프 타운의 독특한 지형을 고려할 때, 이 대학교는 매우 알아보기 쉬운 곳에 있습니다. QGIS로 돌아가기 전에, 대학교가 어디에 있는지 그리고 그 주변에 무엇이 있는지 기억해두십시오.

  6. Layers 패널에서 Streets 레이어가 가시화되어 있는지 그리고 university 레이어가 강조되어 있는지 확인하십시오.

  7. View ► Toolbars 메뉴 항목에서 Digitizing 을 선택하십시오. 그러면 연필 모양의 툴바 아이콘(toggleEditing Toggle editing)을 볼 수 있을 겁니다. 바로 편집 작업 켜고끄기(Toggle Editing) 버튼입니다.

  8. toggleEditing Toggle editing 버튼을 클릭해서 편집 모드 로 들어가십시오. 이제 벡터 레이어를 편집할 수 있습니다.

  9. toggleEditing Toggle editing 버튼 가까이 있을 capturePoint Add Point Feature 버튼을 클릭하십시오.

  10. Add feature 도구가 활성화된 상태에서, 케이프 타운 대학교의 위치로 가장 맞다고 추정되는 곳을 왼쪽 클릭하십시오.

  11. id 를 요청받으면 임의의 정수를 지정하십시오.

  12. OK 를 클릭합니다.

  13. saveEdits Save Layer Edits 버튼을 클릭합니다.

  14. Toggle editing 버튼을 클릭해서 편집 세션을 종료하십시오.

  15. 프로젝트를 저장하십시오.

8.4.24. 케이프 타운 대학교에 가장 가까이 있는 곳들을 찾기

  1. 공간 처리 툴박스 로 가서 최근접 거리를 사용해서 속성 결합 알고리즘(Vector general ► Join Attributes by Nearest)을 찾아 실행하십시오.

  2. Input layeruniversity 를, 그리고 Input layer 2suitable_areas 를 선택해야 합니다.

  3. 산출물에 알맞은 경로와 이름(Joined_layer)을 설정하십시오.

  4. Maximum nearest neighbors4 로 설정하십시오.

  5. checkbox Open output file after running algorithm 옵션이 체크되어 있는지 확인하십시오.

  6. 나머지 파라미터들은 기본값으로 두십시오.

  7. Run 을 클릭하십시오.

산출되는 포인트 레이어가 피처 4개를 담고 있을 것입니다 — 이 피처들은 모두 대학교의 위치와 그 속성을, 그리고 가까이 있는 적합 지역들의 (id 를 포함한) 속성과 해당 위치까지의 거리를 가지고 있을 것입니다.

  1. 결합 작업 결과물의 속성 테이블을 열어보십시오.

  2. 최근접 적합 지역 네 곳의 id 를 기억한 다음 속성 테이블을 닫으십시오.

  3. suitable_areas 레이어의 속성 테이블을 여십시오.

  4. 대학교에 가장 가까이 있는 적합 지역 네 곳을 (id 필드를 사용해서) 선택하기 위한 쿼리를 작성하십시오.

연구 과제에 대한 최종 해답을 얻었습니다.

과제 제출을 위해 여러분이 어울린다고 선택한 (예를 들어 DEM 또는 경사 래스터 같은) 래스터 위에 반투명한 음영기복 레이어를 중첩시키고 라벨을 충분히 추가한 조판을 생성하십시오. 또한 대학교와, 대학교에 가장 가까이 있는 적합 지역 네 곳을 강조시킨 suitable_areas 레이어를 포함시키십시오. 여러분의 산출 맵을 생성하면서 지도 제작 모범 사례들을 모두 따르십시오.