Available with Geostatistical Analyst license.

## Summary

Uses the measured values surrounding the prediction location to predict a value for any unsampled location, based on the assumption that things that are close to one another are more alike than those that are farther apart.

## Usage

The predicted value is limited to the range of the values used to interpolate. Because IDW is a weighted distance average, the average cannot be greater than the highest or less than the lowest input. Therefore, it cannot create ridges or valleys if these extremes have not already been sampled.

IDW can produce a bull's-eye effect around data locations.

Unlike other interpolation methods—such as Kriging—IDW does not make explicit assumptions about the statistical properties of the input data. IDW is often used when the input data does not meet the statistical assumptions of more advanced interpolation methods.

This method is well-suited to be used with very large input datasets.

## Syntax

arcpy.ga.IDW(in_features, z_field, {out_ga_layer}, {out_raster}, {cell_size}, {power}, {search_neighborhood}, {weight_field})

Parameter | Explanation | Data Type |

in_features | The input point features containing the z-values to be interpolated. | Feature Layer |

z_field | Field that holds a height or magnitude value for each point. This can be a numeric field or the Shape field if the input features contain z-values or m-values. | Field |

out_ga_layer (Optional) | The geostatistical layer produced. This layer is required output only if no output raster is requested. | Geostatistical Layer |

out_raster (Optional) | The output raster. This raster is required output only if no output geostatistical layer is requested. | Raster Dataset |

cell_size (Optional) | The cell size at which the output raster will be created. This value can be explicitly set under Raster Analysis from the Environment Settings. If not set, it is the shorter of the width or the height of the extent of the input point features, in the input spatial reference, divided by 250. | Analysis Cell Size |

power (Optional) | The exponent of distance that controls the significance of surrounding points on the interpolated value. A higher power results in less influence from distant points. | Double |

search_neighborhood (Optional) | Defines which surrounding points will be used to control the output. Standard is the default. The following are Search Neighborhood classes: SearchNeighborhoodStandard, SearchNeighborhoodSmooth, SearchNeighborhoodStandardCircular, and SearchNeighborhoodSmoothCircular. Standard - majorSemiaxis—The major semiaxis value of the searching neighborhood.
- minorSemiaxis—The minor semiaxis value of the searching neighborhood.
- angle—The angle of rotation for the axis (circle) or semimajor axis (ellipse) of the moving window.
- nbrMax—The maximum number of neighbors that will be used to estimate the value at the unknown location.
- nbrMin—The minimum number of neighbors that will be used to estimate the value at the unknown location.
- sectorType—The geometry of the neighborhood.
- ONE_SECTOR—Single ellipse.
- FOUR_SECTORS—Ellipse divided into four sectors.
- FOUR_SECTORS_SHIFTED—Ellipse divided into four sectors and shifted 45 degrees.
- EIGHT_SECTORS—Ellipse divided into eight sectors.
Smooth - majorSemiaxis—The major semiaxis value of the searching neighborhood.
- minorSemiaxis—The minor semiaxis value of the searching neighborhood.
- angle—The angle of rotation for the axis (circle) or semimajor axis (ellipse) of the moving window.
- smoothFactor—The Smooth Interpolation option creates an outer ellipse and an inner ellipse at a distance equal to the Major Semiaxis multiplied by the Smoothing factor. The points that fall outside the smallest ellipse but inside the largest ellipse are weighted using a sigmoidal function with a value between zero and one.
Standard Circular - radius—The length of the radius of the search circle.
- angle—The angle of rotation for the axis (circle) or semimajor axis (ellipse) of the moving window.
- nbrMax—The maximum number of neighbors that will be used to estimate the value at the unknown location.
- nbrMin—The minimum number of neighbors that will be used to estimate the value at the unknown location.
- sectorType—The geometry of the neighborhood.
- ONE_SECTOR—Single ellipse.
- FOUR_SECTORS—Ellipse divided into four sectors.
- FOUR_SECTORS_SHIFTED—Ellipse divided into four sectors and shifted 45 degrees.
- EIGHT_SECTORS—Ellipse divided into eight sectors.
Smooth Circular - radius—The length of the radius of the search circle.
- smoothFactor—The Smooth Interpolation option creates an outer ellipse and an inner ellipse at a distance equal to the Major Semiaxis multiplied by the Smoothing factor. The points that fall outside the smallest ellipse but inside the largest ellipse are weighted using a sigmoidal function with a value between zero and one.
| Geostatistical Search Neighborhood |

weight_field (Optional) | Used to emphasize an observation. The larger the weight, the more impact it has on the prediction. For coincident observations, assign the largest weight to the most reliable measurement. | Field |

## Code sample

##### IDW (Python window)

Interpolate a series of point features onto a raster.

```
import arcpy
arcpy.env.workspace = "C:/gapyexamples/data"
arcpy.IDW_ga("ca_ozone_pts", "OZONE", "outIDW", "C:/gapyexamples/output/idwout", "2000", "2",
arcpy.SearchNeighborhoodStandard(300000, 300000, 0, 15, 10, "ONE_SECTOR"), "")
```

##### IDW (stand-alone script)

Interpolate a series of point features onto a raster.

```
# Name: InverseDistanceWeighting_Example_02.py
# Description: Interpolate a series of point features onto a rectangular raster
# using Inverse Distance Weighting (IDW).
# Requirements: Geostatistical Analyst Extension
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/gapyexamples/data"
# Set local variables
inPointFeatures = "ca_ozone_pts.shp"
zField = "OZONE"
outLayer = "outIDW"
outRaster = "C:/gapyexamples/output/idwout"
cellSize = 2000.0
power = 2
# Set variables for search neighborhood
majSemiaxis = 300000
minSemiaxis = 300000
angle = 0
maxNeighbors = 15
minNeighbors = 10
sectorType = "ONE_SECTOR"
searchNeighbourhood = arcpy.SearchNeighborhoodStandard(majSemiaxis, minSemiaxis,
angle, maxNeighbors,
minNeighbors, sectorType)
# Check out the ArcGIS Geostatistical Analyst extension license
arcpy.CheckOutExtension("GeoStats")
# Execute IDW
arcpy.IDW_ga(inPointFeatures, zField, outLayer, outRaster, cellSize,
power, searchNeighbourhood)
```

## Environments

## Licensing information

- Basic: Requires Geostatistical Analyst
- Standard: Requires Geostatistical Analyst
- Advanced: Requires Geostatistical Analyst