Skip to main content

ComputeChange

Summary

Creates a raster object that contains the difference between two categorical or continuous rasters.

Discussion

For more information about how this function works, see the Compute Change raster function.

The referenced raster dataset for the raster object is temporary. To make it permanent, you can call the raster object's save method.

Syntax

ComputeChange(raster1, raster2, {method}, {from_class_values}, {to_class_values}, {filter_method}, {define_transition_colors}, {extent_type}, {cellsize_type})

Parameter Explanation Data Type

raster1

The first raster to be used in the computation. To evaluate change from time 1 (earlier) to time 2 (later), enter the time 1 raster here.

Raster

raster2

The second raster to be used in the computation. To evaluate change from time 1 (earlier) to time 2 (later), enter the time 2 raster here.

Raster

method

Specifies the method to use to compute the difference between the two rasters.

  • DIFFERENCE—The mathematical difference, or subtraction, between the pixel values in the input rasters will be calculated. This is the default.

  • RELATIVE_DIFFERENCE—The difference in pixel values, accounting for the magnitudes of the values being compared, will be calculated.

  • CATEGORICAL_DIFFERENCE—The difference between two categorical or thematic rasters will be calculated, where the output contains class transitions that occurred between the two rasters.

The default value is DIFFERENCE.

String

from_class_values

The list of class values from raster1 to include in the computation, if method is set to CATEGORICAL_DIFFERENCE. For example, if you want to identify the areas that changed from Forest to Urban, enter the class value for the Forest class here.

If no value is provided, all classes are included.

Integer

to_class_values

The list of class values from raster2 to include in the computation, if method is set to CATEGORICAL_DIFFERENCE. For example, if you want to identify the areas that changed from Forest to Urban, enter the class value for the Urban class here.

If no value is provided, all classes are included.

Integer

filter_method

Specifies the pixels to categorize in the output raster object, if method is set to CATEGORICAL_DIFFERENCE.

  • ALL—All pixels will be categorized in the output. For example, pixels that changed from Forest to Urban will be categorized in a transition class named Forest>Urban. Pixels that started as Forest and remained Forest will be categorized in a class named Forest.

  • CHANGED_PIXELS_ONLY—Only the pixels that changed from one class type to a different class type will be categorized in transitional classes. Pixels that did not change will be grouped in a class named Other. This is the default.

  • UNCHANGED_PIXELS_ONLY—Only the pixels that did not change classes will be categorized. Pixels that did change will be grouped in a class named Other.

The default value is CHANGE_PIXELS_ONLY.

String

define_transition_colors

Specifies the color to use to symbolize class transition categories, if method is set to CATEGORICAL_DIFFERENCE and filter_method is set to either CHANGED_PIXELS_ONLY or ALL.

  • AVERAGE—Transition classes will be given the color that is the average of the from and to class colors. For example, pixels in the Forest>Urban class will have a color that is the average of the Forest class in raster1 and the Urban class in raster2.This is the default.

  • FROM_COLOR—Transition classes will be given the color of the original class from raster1.

  • TO_COLOR—Transition classes will be given the color of the final class from raster2.

The default value is AVERAGE.

String

extent_type

Specifies the spatial extent used to create the output raster.

  • FirstOf—The extent of the first raster variable

  • IntersectionOf—The minimum area common to all input rasters

  • UnionOf—The combined extent of all input rasters

  • LastOf—The extent of the last raster variable

The default value is IntersectionOf.

String

cellsize_type

Specifies the cell size used to create the output raster.

  • FirstOf—The cell size of the first raster variable

  • MinOf—The minimum cell size of the input rasters

  • MaxOf—The maximum cell size of the input rasters

  • MeanOf—The average cell size of the input rasters

  • LastOf—The cell size of the last raster variable

The default value is MaxOf.

String

Return value

Data Type Explanation

Raster

The output raster.

Code sample

ComputeChange example

This example computes the difference in specific classes for categorical land cover from 2000 and 2020.

import arcpy
from arcpy.ia import *

raster1 = arcpy.Raster('Landcover_2000.tif')
raster2 = arcpy.Raster('Landcover_2020.tif')

# Compute only the change that occured in land cover between 2000 and 2020
changed_landcover = arcpy.ia.ComputeChange(raster1, raster2,
    "CATEGORICAL_DIFFERENCE",[41,42,43],[21,22,23],"CHANGED_PIXELS_ONLY",
    "AVERAGE","IntersectionOf","MaxOf")