ArcGIS Desktop에서 지형 강도 지수를 계산합니까?


15

누구든지 명령 행 ArcInfo Workstation에 액세스하지 않고 ArcGIS Desktop에서 Topographic Ruggedness Index 를 계산하는 방법을 알고 있습니까?

"TRIP (topographic ruggedness index)는 Riley 등 (1999)이 디지털 표고 그리드의 인접 셀 사이의 표고 차이를 표현하기 위해 개발 한 측정입니다.이 프로세스는 기본적으로 중앙 셀로부터 표고 값의 차이를 계산합니다. 그런 다음 8 개의 셀을 즉시 둘러싸고 있습니다. 각 8 개의 고도 차이 값을 제곱하여 모두 양수로 만들고 평균을 제곱합니다. 토포 견고성 지수는이 평균의 제곱근을 취하여 도출되며 평균 고도 변화에 해당합니다. 그리드의 어느 지점과 그 주변 영역 사이에 있습니다. " -Jeffrey Evans 의 aml arcscript 에서


ArcGIS arcscripts.esri.com/details.asp?dbid=12646 의 버전에 따라 다릅니다. 포럼 이전 토론 포럼 forums.esri.com/Thread.asp?c=93&f=982&t=145448 선택하지 않았지만 검색에는 jennessent.com

답변:


18

무료 gdal 소프트웨어를 사용하는 것이 매우 쉽습니다 : http://www.gdal.org/gdaldem.html

gdaldem TRI input_dem output_TRI_map

또는 saga gis에서 선호하는 경우 : http://www.saga-gis.org/saga_modules_doc/ta_morphometry/ta_morphometry_16.html


11
+1 ArcGIS 문제에 대한 비 ArcGIS 솔루션을 보는 것은 언제나 감사합니다 :-). 이것은 특히 ArcGIS에 대한 적대감이 아니라 원칙의 문제입니다. 하나의 소프트웨어 솔루션에 갇히지 않아야합니다. 전문적으로 위험 할뿐만 아니라 지적 낭비입니다.
— whuber

나는 arcgis 특정 솔루션을 요청했지만 알고 있기 때문에 직접 받아들입니다. GDAL 유틸리티는 쉽게 구할 수 있고 설치가 가능하며 동급 최고로 인정 받고 있으며,이 특정 제품을 생성하는 명령은 단순성의 정의입니다.
— matt wilkie

18

약간의 대수를하자.

x를 중앙 제곱의 값이라고합시다. x_i, i = 1, .., 8이 인접 제곱의 값을 인덱싱하도록합니다. r을 지형 견고성 지수라고합시다. 이 레시피는 r ^ 2가 (x_i-x) ^ 2의 합과 같다고 말합니다. 우리가 쉽게 계산할 수있는 두 가지 것은 (i) 이웃에있는 값의 합으로 s = Sum {x_i} + x; 및 (ii) t = Sum {x_i ^ 2} + x ^ 2와 같은 값의 제곱의 합. (이것은 원래 그리드와 사각형에 대한 초점 통계입니다.)

사각형을 확장하면

r ^ 2 = 합 {(x_i-x) ^ 2}

= 합 {x_i ^ 2 + x ^ 2-2 * x * x_i}

= 합 {x_i ^ 2} + 8 * x ^ 2-2 * x * Sum {x_i}

= [Sum {x_i ^ 2} + x ^ 2] + 7 * x ^ 2-2 * x * [Sum {x_i} + x-x]

= t + 7 * x ^ 2-2 * x * [Sum {x_i} + x] + 2 * x ^ 2

= t + 9 * x ^ 2-2 * x * s 입니다.

예를 들어, 이웃을 고려하십시오

1 2 3
4 5 6
7 8 9

여기서 x = 5, s = 1 + 2 + ... + 9 = 45, t = 1 + 4 + 9 + ... + 81 = 285입니다.

(1-5) ^ 2 + (2-5) ^ 2 + ... + (9-5) ^ 2 = 16 + 9 + 4 + 1 + 1 + 4 + 9 + 16 = 60 = r ^ 2

대수적 동등성은

60 = r ^ 2 = 285 + 9 * 5 ^ 2 -2 * 5 * 45 = 285 + 225-450 = 60, 확인합니다.

따라서 워크 플로우 는 다음과 같습니다.

DEM이 주어졌습니다.

  • 계산 s = [DEM]의 초점 합계 (3 x 3 평방 이상).

  • 계산 DEM2 = [DEM] * [DEM].

  • 계산 t = [DEM2]의 초점 합계 (3 x 3 평방 이상).

  • 계산 r2 = [t] + 9 * [DEM2]-2 * [DEM] * [s].

r = Sqrt ([r2])를 반환합니다 .

이것은 toto 의 9 개의 그리드 작업 으로 구성되며 모두 빠릅니다. 래스터 계산기 (ArcGIS 9.3 이하), 명령 줄 (모든 버전) 및 모델 빌더 (모든 버전)에서 쉽게 수행됩니다.

BTW, 이것은 "평균 고도 변화"가 아닙니다 (고도 변화가 양수와 음수 일 수 있기 때문에) : 그것은 평균 제곱 고도 변화입니다. 이되어 있지 에 기재된 "토포 위치 인덱스"동일 http://arcscripts.esri.com/details.asp?dbid=14156 (S - - X) / X 8과 동일 (설명서를 따름). 위의 예에서 TPI는 5-(45-5) / 8 = 0 인 반면 TRI는 Sqrt (60)입니다.


1
빌 고마워 도구 또는 작업의 작동 방식에 대한 구체적인 내용을 볼 수 있습니다. 이를 통해 적절한 시간과 지적 에너지를 투자 한 사람은 자신이 보유한 도구를 사용하여이 작업을 수행 할 수있는 새로운 장치를 구축 할 수 있습니다. 이와 같은 정보는 GIS.se를 장기적으로 유용한 서비스로 만들 것입니다.
— matt wilkie

1
+1 대단한 설명. 이것은 가파르지만 매끄러운 표면이 평평하지만 울퉁불퉁 한 표면보다 높은 TRI를 가질 수 있음을 의미한다고 생각합니다.
— Kirk Kuykendall

1
@Kirk 맞습니다. 원하는 경우 "상대적"강도 지수를 얻기 위해 로컬 경사의 영향을 제거하는 방법이 있습니다. 세부 사항을 해결하지는 못했지만 r2- 에서 (c * a) ^ 2의 범용 배수를 빼면 c 는 셀화되고 a 는 기울기입니다 ( 각도 또는 상승이 아닌 상승 / 달리기) 트릭을 수행해야합니다.
— whuber

@ whuber는 항상 답변에 놀라운 지식이 포함되어 있습니다! 단 한 가지 질문 만하십시오. 이것은 래스터의 가장 자리에있는 셀의 TRI를 계산할 수 없다는 것을 의미합니까? 주변의 세포들로 둘러싸여 있지 않기 때문에?
— marco

1
@marco 경계 셀에서도 TRI를 추정 할 수 있습니다. 질문에 표시된 것처럼 여기에 주어진 값을 9로 나누어 합계가 아닌 평균으로 표현해야합니다. 경계 셀에서 수식 및 분모의 값 "9"는 3X3 근처에있는 null이 아닌 값의 수 : 모서리 셀의 경우 6, 모서리 셀의 경우 4 이러한 값의 그리드는 원래 값의 표시기 그리드의 초점 합계에서 얻을 수 있습니다 (모든 비 NoData 셀에는 1, 다른 곳에는 0이 있음). 수식에서 상수 "9"대신 해당 그리드를 사용하십시오.
— whuber

3

Riley et al. (1999) TRI는 합한 제곱 편차의 제곱근입니다. 이것은 스케일되지 않은 분산에 매우 가깝습니다. Riley 's TRI를 구현하려면 @whuber가 설명한 방법론을 따르십시오 (@ user3338736에서 제공 한 방법론은 창에서 메트릭을 최대 값으로 일반화하고 셀 변형으로 셀을 나타내지 않음).

Geomorphometry & Gradient Metrics ArcGIS Toolbox 에서 지정된 창의 분산 인 TRI의 변형이 있습니다. 나는 이것이 더 유연하고 정당하다고 생각한다. 또한 거칠기와 해부를 포함한 다른 표면 구성 메트릭이 있습니다.


제프리 감사합니다. Firefox의 제목을 제외하고 페이지가 비어있는 이유는 Chrome에서는 괜찮다고 생각했습니다. 내 확장 중 하나 일 수 있습니다. 적어도 스크립트가 10.2.2 (어쨌든 테스트 한 것)에서 변경되지 않은 것으로 작동한다는 것을 기쁘게 생각합니다.
— matt wilkie

1

-편집 : 아래 정보가 잘못되었습니다. 올바른 프로세스를 설명하는 whuber의 게시물을 참조하십시오 .....

TRI (Riley 1999)와 TPI (Jenness 2002)는 비슷하지만 다릅니다.

ArcGIS 10.x를 사용하여 TRI 및 TPI를 계산하려면 ...

1 단계 : Focal Statistics 도구를 사용하여 DEM에서 2 개의 새로운 래스터 데이터 세트를 만듭니다.

래스터 1 "MAX") 이웃 : 사각형, 높이 : 3, 너비 : 3, 단위 : 셀, 통계 유형 : 최대

래스터 2 "MIN") 이웃 : 사각형, 높이 : 3, 너비 : 3, 단위 : 셀, 통계 유형 : 최소

2 단계 : 래스터 계산기를 사용하여 방금 생성 한 2 개의 래스터 데이터 세트에서 다음 기능을 수행합니다.

TRI의 경우 : SquareRoot (Abs ((Square ( "% MAX %")-Square ( "% MIN %"))))

TPI의 경우 : ( "% Input DEM %"- "% MIN %") / ( "% MAX %"- "% MIN %")

다음은 TRI 용으로 빌드 한 모델에서 내 보낸 샘플 Python 코드입니다 ....

# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# script.py
# Created on: 2014-03-06 08:56:13.00000
#   (generated by ArcGIS/ModelBuilder)
# Usage: script <Input_raster> <TRI_Raster> 
# Description: 
# ---------------------------------------------------------------------------

# Import arcpy module
import arcpy

# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")

# Script arguments
Input_raster = arcpy.GetParameterAsText(0)

TRI_Raster = arcpy.GetParameterAsText(1)
if TRI_Raster == '#' or not TRI_Raster:
    TRI_Raster = "C:\\Users\\Documents\\ArcGIS\\Default.gdb\\rastercalc1" # provide a default value if unspecified

# Local variables:
MIN = Input_raster
MAX = Input_raster

# Process: 3x3Max
arcpy.gp.FocalStatistics_sa(Input_raster, MAX, "Rectangle 3 3 CELL", "MAXIMUM", "DATA")

# Process: 3x3Min
arcpy.gp.FocalStatistics_sa(Input_raster, MIN, "Rectangle 3 3 CELL", "MINIMUM", "DATA")

# Process: Raster Calculator
arcpy.gp.RasterCalculator_sa("SquareRoot(Abs((Square(\"%MAX%\") - Square(\"%MIN%\"))))", TRI_Raster)

이것은 질문에 설명 된 TRI가 아닙니다. 실제로 "거칠기"를 측정하는 것으로 생각할 수는 없습니다. 수직 데이텀 만 이동하면 변경되기 때문입니다. 예를 들어 값이 (1,2, ..., 9) 인 3x3 이웃의 TRI는 sqrt (9 ^ 2-1 ^ 2) = 8.9가되지만 값에 100을 더하면 값이없는 데이텀 만 변경됩니다. 표면의 모양을 전혀 바꾸지 않으면 sqrt (109 ^ 2-101 ^ 2) = 41이됩니다.
— whuber

0

이것은 최근에 프로젝트 중 하나에 사용한 프로세스 인 Topographic Position Index와 매우 흡사합니다. ESRI 지원 페이지 에는 ArcScript 가 있고 ESRI 리소스 센터 페이지 에는 지형 도구 상자 가 있으며 Jenness Enterprises 페이지 에는 프로세스에 대한 자세한 정보가 있습니다.


2
TPI는 거칠기와 매우 다른 메트릭입니다. 그것들을 서로 바꿔서 사용하는 길을 가지 마십시오. Topographic Position Index는 전통적으로 [dem-focalmean (dem)]으로 계산됩니다.
— 제프리 에반스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.