Давайте зробимо невелику (ще трохи) алгебру.
Нехай x - значення на центральній площі; нехай x_i, i = 1, .., 8 індексує значення в сусідніх квадратах; і нехай r - індекс топографічної стійкості. Цей рецепт говорить, що r ^ 2 дорівнює сумі (x_i - x) ^ 2. Дві речі, які ми можемо легко обчислити, це (i) сума значень в околиці, що дорівнює s = Сума {x_i} + x; та (ii) сума квадратів значень, що дорівнює t = Сума {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 * Сума {x_i}
= [Сума {x_i ^ 2} + x ^ 2] + 7 * x ^ 2 - 2 * x * [Сума {x_i} + x - x]
= t + 7 * x ^ 2 - 2 * x * [Сума {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 = Фокусна сума (понад 3 х 3 квадратних мікрорайони) [DEM].
Обчисліть DEM2 = [DEM] * [DEM].
Обчисліть t = Фокусна сума (понад 3 х 3 квадратних мікрорайони) [DEM2].
Обчисліть r2 = [t] + 9 * [DEM2] - 2 * [DEM] * [s].
Повернення r = Sqrt ([r2]).
Складається з 9 операцій сітки в тото , всі вони швидкі. Вони легко виконуються в растровому калькуляторі (ArcGIS 9.3 і новіші версії), командному рядку (всі версії) та Model Builder (усі версії).
До речі, це не "середня зміна висоти" (оскільки зміни висоти можуть бути позитивними та негативними): це середньоквадратична зміна висоти квадрата. Він не дорівнює "індексу топографічної позиції", описаному на http://arcscripts.esri.com/details.asp?dbid=14156 , що (згідно з документацією) дорівнює x - (s - x) / 8. У наведеному вище прикладі TPI дорівнює 5 - (45-5) / 8 = 0, тоді як TRI, як ми бачили, є Sqrt (60).