Вычислить растр изменений (Image Analyst)

Доступно с лицензией Image Analyst.

Краткая информация

Вычисляет абсолютные, относительные, категорийные или спектральные различия между двумя наборами растровых данных.

Использование

  • Инструмент сравнивает два растра и вычисляет новый, содержащий различия между ними. Например, используйте инструмент, чтобы определить как изменились значения пикселов по содержанию углерода между 2001 и 2020 годами, или чтобы узнать, как изменился почвенно-растительный покров с 2010 по 2015.

  • Для расчета растра изменений доступны следующие типы вычислений:

    • Разница – математическая разница, или вычитание, между значениями пикселов по параметру Из растра и значениями пикселов по параметру В растр.

      Выходные данные = (В растр) - (Из растра)

    • Относительная разница – будет рассчитана разница в значениях пикселов, учитывающая величины сравниваемых значений.

      Выходные данные = (В растр) - (Из растра) / max(В растр, Из растра)

    • Категориальная разница – разница между двумя категориальными или тематическими растрами, где выходные данные показывают каждый переход класса, произошедший между двумя растрами.
    • Спектральное Евклидово расстояние —Евклидово расстояние между двумя многоканальными растрами, каждый пиксел обрабатывается как вектор. Чем больше значение, тем больше изменение между изображениями.
    • Разница спектрального угла — спектральный угол между двумя многоканальными растрами, каждый пиксел обрабатывается как вектор. Чем больше угол, тем больше изменение между изображениями.
    • Канал с наибольшим изменением — канал, на который приходится наибольшее изменение в каждом пикселе между двумя многоканальными растрами.

  • Выходными данными при вычислении Категориальной разницы является набор растровых данных с атрибутивной таблицей. Таблица содержит типы переходов (например, с Forest на Urban), число пикселов, включенных в каждый тип перехода и оценка площади для каждого типа перехода. Площадь вычисляется как размер пиксела, умноженный на число пикселов каждого типа перехода. Единицы измерения соответствуют линейным единицам измерения входных растровых данных.

  • Можно ограничить анализ определенными классами при вычислении разницы между двумя категориальными растрами. Например, для визуализации роста города, можно использовать все классы в списке Из классов, но только класс Urban в списке Классы до. В результате вы получите все переходы, составляющие категорию Urban.

  • Если входные растры имеют различный размер ячеек или экстенты, можно задать размер и экстент в параметрах среды Размер ячейки и Выходной экстент.

  • Когда для параметра Метод вычисления изменений задано Категорийная разница, параметры Из растра и В растр должны иметь связанную таблицу атрибутов растра с полем Value или ClassValue. Имена классов у соответствующих значений классов используются для названий переходов выходного класса. Инструмент использует стандартные имена классов полей CLASS_NAME или CLASSNAME. Если эти имена полей не существуют, можно использовать параметры Поле имени класса для Растра Из и Поле имени класса для Растра В, чтобы задать их.

Параметры

ПодписьОписаниеТип данных
Из растра

Исходный или более ранний растр, который будет анализироваться.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
В растр

Финальный или самый последний растр для анализа. Это тот растр, который будет сравниваться с начальным.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
Метод вычисления изменений
(Дополнительный)

Задает тип вычислений, который выполняется между двумя растрами.

  • РазницаБудет вычислена математическая разница (разность) между значениями пикселов растров. Это значение по умолчанию
  • Относительная разностьБудет рассчитана разница в значениях пикселов, учитывающая величины сравниваемых значений.
  • Категорийная разницаВычисляется разница между двумя категориальными или тематическими растрами. Выходные данные будут содержать переходы классов, которые произошли между двумя растрами.
  • Спектральное евклидово расстояниеВычисляется Евклидово расстояние между значениями пиксела двух многоканальных растров.
  • Разница спектрального углаВычисляется спектральный угол между значениями пиксела двух многоканальных растров. Выходные значения выражены в радианах.
  • Канал с наибольшим изменениемВычисляется канал, на который приходится наибольшее изменение в каждом пикселе между двумя многоканальными растрами.
String
Из классов
(Дополнительный)

Список названий классов из параметра Из растра, который будет включен в вычисления. Если классы не указаны, будут использованы все.

Это параметр активен когда для параметра Метод выявления изменений задано Категорийная разница.

String
В классы
(Дополнительный)

Список названий классов из параметра В растр, который будет включен в вычисления. Если классы не указаны, будут использованы все.

Это параметр активен когда для параметра Метод выявления изменений задано Категорийная разница.

String
Метод фильтрации
(Дополнительный)

Задает пикселы, которые будут категоризованы в выходных данных. Это параметр активен когда для параметра Метод выявления изменений задано Категорийная разница.

  • Только измененные пикселыВ выходных данных будут категоризованы только пикселы с измененными категориями. Пикселы, оставшиеся в той же категории, будут сгруппированы в класс Other.
  • Только не измененные пикселыВ выходных данных будут категоризованы только пикселы с неизмененными категориями. Пикселы, изменившие категорию, будут сгруппированы в класс Other.
  • Все пикселыВ выходных данных будут категоризованы все пикселы. Это значение по умолчанию
String
Цвета классов переходов
(Дополнительный)

Задает цвет, используемый для отображения выходных классов. Когда пиксел изменяется с одного типа класса на другой, цвет выходного пиксела представляет тип исходного класса, тип последнего класса или смешение двух значений

Это параметр активен когда для параметра Метод выявления изменений задано Категорийная разница.

  • Средний из цветов Из и ВЦвет выходного класса будет средним из цветов класса Из (начального) и класса В (конечного). Это значение по умолчанию
  • Цвет ИзЦвет выходного класса будет соответствовать цвету класса Из (исходного).
  • Цвет ВЦвет выходного класса будет соответствовать цвету класса В (конечного).
String
Поле имени класса для Растра Из
(Дополнительный)

Поле, в котором хранятся имена классов по параметру Растр Из. Инструмент автоматически ищет поле ClassName или поле Class_Name.

Используйте этот параметр, если входные данные не содержат этих стандартных имен полей.

Field
Поле имени класса для Растра В
(Дополнительный)

Поле, в котором хранятся имена классов по параметру Растр В. Инструмент автоматически ищет поле ClassName или поле Class_Name.

Используйте этот параметр, если входные данные не содержат этих стандартных имен полей.

Field

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

Выходной набор данных растра изменений.

Raster

ComputeChangeRaster(from_raster, to_raster, {compute_change_method}, {from_classes}, {to_classes}, {filter_method}, {define_transition_colors}, {from_classname_field}, {to_classname_field})
ИмяОписаниеТип данных
from_raster

Исходный или более ранний растр, который будет анализироваться.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
to_raster

Финальный или самый последний растр для анализа. Это тот растр, который будет сравниваться с начальным.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
compute_change_method
(Дополнительный)

Задает тип вычислений, который выполняется между двумя растрами.

  • DIFFERENCEБудет вычислена математическая разница (разность) между значениями пикселов растров. Это значение по умолчанию
  • RELATIVE_DIFFERENCEБудет рассчитана разница в значениях пикселов, учитывающая величины сравниваемых значений.
  • CATEGORICAL_DIFFERENCEВычисляется разница между двумя категориальными или тематическими растрами. Выходные данные будут содержать переходы классов, которые произошли между двумя растрами.
  • SPECTRAL_EUCLIDEAN_DISTANCEВычисляется Евклидово расстояние между значениями пиксела двух многоканальных растров.
  • SPECTRAL_ANGLE_DIFFERENCEВычисляется спектральный угол между значениями пиксела двух многоканальных растров. Выходные значения выражены в радианах.
  • BAND_WITH_MOST_CHANGEВычисляется канал, на который приходится наибольшее изменение в каждом пикселе между двумя многоканальными растрами.
String
from_classes
[from_classes,...]
(Дополнительный)

Список названий классов из параметра from_raster, который будет включен в вычисления. Если классы не указаны, будут использованы все.

Этот параметр активен тогда, когда параметр compute_change_method имеет значение CATEGORICAL_DIFFERENCE.

String
to_classes
[to_classes,...]
(Дополнительный)

Список названий классов из параметра to_raster, который будет включен в вычисления. Если классы не указаны, будут использованы все.

Этот параметр активен тогда, когда параметр compute_change_method имеет значение CATEGORICAL_DIFFERENCE.

String
filter_method
(Дополнительный)

Задает пикселы, которые будут категоризованы в выходных данных. Этот параметр активен тогда, когда параметр compute_change_method имеет значение CATEGORICAL_DIFFERENCE.

  • CHANGED_PIXELS_ONLYВ выходных данных будут категоризованы только пикселы с измененными категориями. Пикселы, оставшиеся в той же категории, будут сгруппированы в класс Other.
  • UNCHANGED_PIXELS_ONLYВ выходных данных будут категоризованы только пикселы с неизмененными категориями. Пикселы, изменившие категорию, будут сгруппированы в класс Other.
  • ALLВ выходных данных будут категоризованы все пикселы. Это значение по умолчанию
String
define_transition_colors
(Дополнительный)

Задает цвет, используемый для отображения выходных классов. Когда пиксел изменяется с одного типа класса на другой, цвет выходного пиксела представляет тип исходного класса, тип последнего класса или смешение двух значений

Этот параметр активен тогда, когда параметр compute_change_method имеет значение CATEGORICAL_DIFFERENCE.

  • AVERAGEЦвет выходного класса будет средним из цветов класса Из (начального) и класса В (конечного). Это значение по умолчанию
  • FROM_COLORЦвет выходного класса будет соответствовать цвету класса Из (исходного).
  • TO_COLORЦвет выходного класса будет соответствовать цвету класса В (конечного).
String
from_classname_field
(Дополнительный)

Поле, в котором хранятся имена классов по параметру from_raster. Инструмент автоматически ищет поле ClassName или поле Class_Name.

Используйте этот параметр, если входные данные не содержат этих стандартных имен полей.

Field
to_classname_field
(Дополнительный)

Поле, в котором хранятся имена классов по параметру to_raster. Инструмент автоматически ищет поле ClassName или поле Class_Name.

Используйте этот параметр, если входные данные не содержат этих стандартных имен полей.

Field

Возвращаемое значение

ИмяОписаниеТип данных
out_raster_dataset

Выходной набор данных растра изменений.

Raster

Пример кода

ComputeChangeRaster, пример 1 (окно Python)

В этом примере вычисляется разница значений пикселов NDVI между 2000 и 2020.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

NDVIchange = arcpy.ia.ComputeChangeRaster(
	"NDVI_2000.tif", "NDVI_2020.tif", "DIFFERENCE")
	
NDVIchange.save("C:/Data/NDVI_2000_2020.tif")
ComputeChangeRaster, пример 2 (автономный скрипт)

В этом примере вычисляется относительная разница значений пикселов NDVI между 2000 и 2020.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Define input parameters
FromRaster = "C:/Data/NDVI_2000.tif"
ToRaster = "C:/Data/NDVI_2020.tif"
ChangeType = "RELATIVE_DIFFERENCE"

# Execute - calculate the relative difference in NDVI from 2000 to 2020
NDVIrelativeChange = arcpy.ia.ComputeChangeRaster(
	FromRaster, ToRaster, ChangeType)
	
# Save output
NDVIrelativeChange.save("C:/Data/Relative_NDVI_2000_2020.tif")
ComputeChangeRaster, пример 3 (автономный скрипт)

В этом примере вычисляется изменение почвенно-растительного покрова с 2000 по 2020, извлекаются только пикселы, которые перешли из классов Forest, Agriculture, Water или Barren в класс Urban.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")


LandcoverChange = arcpy.ia.ComputeChangeRaster(
	"Landcover_2000.tif", "Landcover_2020.tif", "CATEGORICAL_DIFFERENCE", 
	"'Forest';'Agriculture';'Water';'Barren'", "'Urban'", 
	"CHANGED_PIXELS_ONLY", "AVERAGE")
	
# Save output  
LandcoverChange.save("C:/Data/Landcover_2000_2020.tif")

Связанные разделы