Available with Spatial Analyst license.
Summary
Creates a line feature class of contours (isolines) from a raster surface.
Usage
Contours do not extend beyond the spatial extent of the raster, and they are not generated in areas of NoData; therefore, adjacent contour inputs should first be edgematched into a continuous feature dataset. As an alternative to edgematching, you can merge the adjacent rasters before computing contours.
Contours can be generated in areas of negative raster values. The contour values will be negative in such areas. Negative contour intervals are not allowed.
Smoother but less accurate contours can be obtained by preprocessing the input raster with a Focal Statistics operation with the MEAN option or the Filter tool with the LOW option.
A base contour is used, for example, when you want to create contours every 15 meters, starting at 10 meters. Here, 10 would be used for the base contour, and 15 would be the contour interval. The values to be contoured would be 10, 25, 40, 55, and so on.
Specifying a base contour does not prevent contours from being created above or below that value.
If the output extent is changed from the default, Resampling of the input raster may occur. To avoid this, and to ensure consistent results, set the Snap Raster environment to be the input raster.
When the input raster needs to be resampled, the Bilinear technique will be used. An example of when an input raster may be resampled is when the output coordinate system, extent, or cell size is different from that of the input.
See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.
Syntax
Contour (in_raster, out_polyline_features, contour_interval, {base_contour}, {z_factor})
Parameter | Explanation | Data Type |
in_raster |
The input surface raster. | Raster Layer |
out_polyline_features |
The output contour polyline features. | Feature Class |
contour_interval | The interval, or distance, between contour lines. This can be any positive number. | Double |
base_contour (Optional) | The base contour value. Contours are generated above and below this value as needed to cover the entire value range of the input raster. The default is zero. | Double |
z_factor (Optional) | The unit conversion factor used when generating contours. The default value is 1. The contour lines are generated based on the z-values in the input raster, which are often measured in units of meters or feet. With the default value of 1, the contours will be in the same units as the z-values of the input raster. To create contours in a different unit than that of the z-values, set an appropriate value for the z-factor. Note that it is not necessary to have the ground x,y and surface z-units be consistent for this tool. For example, if the elevation values in your input raster are in feet, but you want the contours to be generated based on units of meters, set the z-factor to 0.3048 (since 1 ft = 0.3048 m). For another example, consider an input raster in WGS_84 geographic coordinates and elevation units of meters for which you want to generate contour lines every 100 feet with a base of 50 feet (so the contours will be 50 ft, 150 ft, 250 ft, and so on). To do this, set the contour_interval to 100, the base_contour to 50, and the z_factor to 3.2808 (since 1 m = 3.2808 ft). | Double |
Code sample
Contour example 1 (Python window)
This example creates contours from an Esri Grid raster and outputs them as a shapefile.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
Contour("elevation", "C:/sapyexamples/output/outcontours.shp", 200, 0)
Contour example 2 (stand-alone script)
This example creates contours from an Esri Grid raster and outputs them as a shapefile.
# Name: Contour_Ex_02.py
# Description: Creates contours or isolines from a raster surface.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "elevation"
contourInterval = 200
baseContour = 0
outContours = "C:/sapyexamples/output/outcontours02.shp"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Contour
Contour(inRaster, outContours, contourInterval, baseContour)
Environments
- Auto Commit
- Cell Size
- Current Workspace
- Default Output Z Value
- Extent
- Geographic Transformations
- M Resolution
- M Tolerance
- Maintain Spatial Index
- Output CONFIG Keyword
- Output Coordinate System
- Output has M values
- Output has Z values
- Output M Domain
- Output XY Domain
- Output Z Domain
- Scratch Workspace
- Snap Raster
- XY Resolution
- XY Tolerance
- Z Resolution
- Z Tolerance
Licensing information
- ArcGIS Desktop Basic: Requires Spatial Analyst or 3D Analyst
- ArcGIS Desktop Standard: Requires Spatial Analyst or 3D Analyst
- ArcGIS Desktop Advanced: Requires Spatial Analyst or 3D Analyst