2015년 3월 12일 목요일

[QGIS] Proximity (Raster Distance) Analysis Processing Script

QGIS에서 Proximity (Raster Distance)분석을 수행하려면 일반적으로 다음의 두 단계를 실행해야 하며, 특히 GDAL 파라미터를 이해하지 못하는 이들에게는  Extent나 Cell Size 설정이 번거롭습니다.
 - [Raster] -> [Conversion] -> [Rasterize(Vector to raster)]
 - [Raster] -> [Analysis] -> [Proximity(Raster distance)]
 - 참고사이트 : https://infogeoblog.wordpress.com/2013/11/28/qgis-distance-calculator/

여기에는 QGIS Procesing Framework 내의 사용자 스크립트를 추가하여 사용할 수 있도록 아래와 같은 UI로 구성해 봤습니다.

그리고 아래의 GitHub에는 이 외에도 10여가지의 다양한 스크립트를 포함하고 있으므로 참고 바랍니다.

□ Script Source
 - GitHub

□ Usage
 - QGIS Procesing Framework 활성화
 - 다운로드 또는 복사한 소스를 [Scripts] -> [Tools] -> [Add script from file] 또는 [Create new script] 도구를 이용하여 생성
 - 레이어 추가 후 [Scripts] -> [My Scripts] 도구의 [Raster Euclidean Distance Analysis] 도구 실행

□ Script UI


□ Raster Proximity(Euclidean Distance) Map

2015년 2월 6일 금요일

[uDig:Hydrology] Flow Accumulation

GXT Toolbox > Hydrology > Flow Accumulation

▣ Flow Direction
물은 높은곳에서 낮은곳으로 흐리기 때문에 DEM 자료의 표고값을 활용하면 물의 흐름을 알수 있으며 통상적으로 8방향으로 많이 표현됩니다.
- Hydrology 분석기능을 제공하는 ArcGIS, GRASS, SAGA, TauDEM 등의 8방향 Flow Direction 기능을 검토해 본 결과 적용되는 알고리즘의 차이로 조금씩 결과가 다르게 나타납니다.
- 결과 Raster의 Value값(결국 방향값)이 ArcGIS의 경우 1(동),2(동남),4(남),8(남서),169(서),32(북서),64(북),128(북동)로 나타나며, 다른 분석모듈의 경우 1,2,3,4,5,6,7,8로 나타내는 경우도 있고, 시작 방향이 틀린경우도 있습니다.
- 보통 해당 모듈의 레퍼런스나 관련자료를 검색해 보면 분석결과 Raster의 값이 어느 방향을 나타내는지 알수 있습니다.
- 아래는 ArcGIS에서의 경우입니다.


▣ Flow Accumulation
Flow Direction 결과 Raster를 활용하여 물의 흐름을 누적한 누적값을 분석합니다.
- 이 기능은 주로 물이모여 하천을 이루는 하도 라인을 생성하기 위한 단계로 활용됩니다.
- 누적방법은 아래 그림과 같이 Raster의 Cell의 방향정보를 토대로 현재 Cell 주변의 흐름이 자신의 Cell로 향하면 +1을 합니다. 대신 현재 Cell 주변만 보는게 아니라 전체 Raster에서 자신의 Cell로 누적되어 오는 값을 모두 더해줘야 합니다.




▣ GXT Toolbox(uDig) Flow Accumulation



- 입력항목은 "Flow Direction 결과 Raster", "가중치 Raster(옵션)", "결과 데이터 타입" 이며, 현재 가중치 적용은 미구현 상태입니다.
- JAI 라이브러리와 2차원 배열을 사용해 구현한 것으로, 얼마만큼 큰 Raster까지 분석이 되는지는 테스트를 거쳐야 합니다.

- 분석결과 Raster (500*500)



▣ ArcGIS와의 검증

- 왼쪽이 ArcGIS에서의 분석결과
- 중간이 GXT Toolbox에서의 분석결과
- 오른쪽은 Pixel값 검증을 위해 Raster Calculator를 활용해 두 결과를 뺀 결과입니다.
Raster Calculator 결과 모든 cell 값이 0으로 ArcGIS와 동일하게 결과가 나왔습니다.