**Supported with:**

- Engine with Spatial Analyst
- ArcGIS for Desktop Basic with Spatial Analyst
- ArcGIS for Desktop Standard with Spatial Analyst
- ArcGIS for Desktop Advanced with Spatial Analyst
- Server with Spatial Analyst

**Library dependencies:**System, SystemUI, Geometry, Display, Server, Output, Geodatabase, GISClient, DataSourcesFile, DataSourcesGDB, DataSourcesOleDB, DataSourcesRaster, DataSourcesNetCDF, GeoDatabaseDistributed, GeoDatabaseExtensions, Carto, NetworkAnalysis, Location, GeoAnalyst, Animation, Maplex, Geoprocessing, NetworkAnalyst, Schematic

**Additional library information:**Contents, Object Model Diagram

The ArcObjects components for the ArcGIS Spatial Analyst extension provide a customizable environment with developer tools that allow for model development. Objects in the SpatialAnalyst library work with the Raster Data Objects (RDO).

The RDO model is used to access, analyze, manage, convert, and visualize raster data. RDO provides some features that complement the SpatialAnalyst object model, such as unified data access and interaction-independent format, a high-level nonproprietary language, and an environment that is easy to extend, upgrade, and customize.

Developers consume and do not extend the objects in this library.

For more information, see Working with Spatial Analyst.

See the following sections for more information about this namespace:

- Running concurrent spatial operations
- RasterConditionalOp
- RasterDensityOp
- RasterDistanceOp
- RasterExtractionOp
- RasterGeneralizeOp
- RasterGroundwaterOp
- RasterHydrologyOp
- RasterLocalOp
- RasterMapAlgebraOp
- RasterMathOp
- RasterMultivariateOp
- RasterNeighborhoodOp
- RasterZonalOp
- PathDistanceHorizontalFactor
- PathDistanceVerticalFactor

### Running concurrent spatial operations

The SpatialAnalyst and GeoAnalyst objects are thread-safe at ArcGIS 9.2. However, in previous versions, the objects were not thread-safe and running concurrent spatial operations using the same workspace would crash the application. The workaround is to use separate output workspaces for each process or application.

### RasterConditionalOp

The RasterConditionalOp object includes methods that can be used to perform conditional operations on rasters.

### RasterDensityOp

With the RasterDensityOp object, the magnitude at each sample location (line or point) is distributed throughout a landscape, and a density value is calculated for each cell in the output raster.

### RasterDistanceOp

With the RasterDistanceOp object, the Euclidean distance functions measure the straight-line distance from each cell to the closest source. The Cost Distance function (or cost weighted distance) modifies Euclidean distance by equating distance as a cost factor, which is the cost to travel through any cell.

### RasterExtractionOp

The methods in the RasterExtractionOp object are used to extract data from a raster based on shapes, attributes, and other spatial data.

### RasterGeneralizeOp

The methods in RasterGeneralizeOp either generalize on zones or smooth zone edges of a raster.

### RasterGroundwaterOp

The RasterGroundwaterOp object includes methods to perform the following:

- Darcy flow
- Darcy velocity
- Particle track
- Gaussian dispersion (porous puff)

These methods can be used to perform rudimentary advection-dispersion modeling of constituents in groundwater.

### RasterHydrologyOp

The RasterHydrologyOp methods assist in modeling the flow of water and answering questions such as "Where did the water come from and where is it going?" These hydrologic analysis functions help model the movement of water across a surface and aid in building your understanding of key concepts and terms related to drainage systems and surface processes. In addition, these tools can be used to extract hydrologic information from a digital elevation model (DEM).

### RasterLocalOp

In the RasterLocalOp methods, the value at each location (cell) on the output raster is the result of a function of the input values at the location. One of the methods, for example, evaluates the number of times a set of rasters are greater than another raster on a cell-by-cell basis.

### RasterMapAlgebraOp

Map Algebra is the analysis language for ArcGIS Spatial Analyst. It has a syntax that is similar to any algebra. In RasterMapAlgebraOp, an output raster dataset results from manipulation of the input. The input can be as simple as a single raster dataset, raster layer, feature dataset, feature layer, or shapefile, and the manipulation can be calculating the sine of each of the location's values, or there can be a series of input raster datasets or layers to which the manipulation is applied, such as when adding three raster datasets or raster layers together.

### RasterMathOp

The RasterMathOp methods provide access to a full suite of mathematical operators and functions. These operators and functions enable the values in multiple rasters to be combined arithmetically—addition, subtraction, multiplication, and division for example. In addition, the mathematical manipulation of the values in a single input raster (sine, exponent, power, and so on), the evaluation of multiple input rasters (Boolean And, Greater Than, combinations, and so on), and the evaluation and manipulation of the values in the binary format (for example, Bitwise And and Bitwise Left Shift) are also supported by these methods.

### RasterMultivariateOp

The RasterMultivariateOp methods allow for the exploration of relationships between many different types of attributes. The following are the main types of multivariate analysis:

- Supervised and unsupervised classification
- Principal component analysis (PCA)

### RasterNeighborhoodOp

The RasterNeighborhoodOp functions create output values for each cell location based on the value for the location and the values identified in a specified neighborhood. The neighborhood can be either moving or a search radius.

### RasterZonalOp

The RasterZonalOp functions take a value raster as input and calculate for each cell some function or statistic using the value for each cell and all cells belonging to the same zone. The zonal functions are grouped by how the zones are specified: by a single input value raster or by a second zone raster.

### PathDistanceHorizontalFactor

The PathDistanceHorizontalFactor object defines the relationship between the horizontal cost factor and the horizontal relative moving angle (HRMA). There are several factors from which to select (with modifiers) that identify a defined horizontal factor graph. Additionally, a table can be used to create a custom graph. The graphs are used to identify the horizontal factor that is used to calculate the total cost of moving into a neighboring cell.

### PathDistanceVerticalFactor

The PathDistanceVerticalFactor defines the relationship between the vertical cost factor and the vertical relative moving angle (VRMA). There are several factors from which to select (with modifiers) that identify a defined vertical factor graph. Additionally, a table can be used to create a custom graph. The graphs are used to identify the vertical factor that is used to calculate the total cost of moving into a neighboring cell.