You are here:
Extensions > Spatial Analyst > Spatial Analyst functional reference > Surface (Spatial Analyst)

# Curvature

Release 9.3   Print all topics in : "Surface (Spatial Analyst)"

Related Topics

Calculates the curvature of a raster surface, optionally including profile and plan curvature.

Usage tips

Command line and Scripting

• The primary output is the curvature of the surface on a cell-by-cell basis, as fitted through that cell and its eight surrounding neighbors. Curvature is the second derivative of the surface or the slope of the slope. Two optional output curvature types are possible; the profile curvature is in the direction of the maximum slope, and the plan curvature is perpendicular to the direction of the maximum slope.

• A positive curvature indicates the surface is upwardly convex at that cell. A negative curvature indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• In the profile output, a negative value indicates the surface is upwardly convex at that cell. A positive profile indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• In the plan output, a positive value indicates the surface is upwardly convex at that cell. A negative plan indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• Units of the curvature output raster, as well as the units for the optional output profile curve raster and output plan curve raster, are one over 100 z units, or 1/100 (z units). The reasonably expected values of all three output rasters for a hilly area (moderate relief) can vary from -0.5 to 0.5; while for steep, rugged mountains (extreme relief), the values can vary between -4 and 4.

• The following environment settings affect this tool:

• Map Algebra

• The primary output is the curvature of the surface on a cell-by-cell basis, as fitted through that cell and its eight surrounding neighbors. Curvature is the second derivative of the surface or the slope of the slope. Two optional output curvature types are possible; the profile curvature is in the direction of the maximum slope, and the plan curvature is perpendicular to the direction of the maximum slope.

• A positive curvature indicates the surface is upwardly convex at that cell. A negative curvature indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• In the profile output, a negative value indicates the surface is upwardly convex at that cell. A positive profile indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• In the plan output, a positive value indicates the surface is upwardly convex at that cell. A negative plan indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• Units of the curvature output raster, as well as the units for the optional {out_profile_curve} and {out_plan_curve} output rasters, are one over 100 zunits, or 1/100(zunits). The reasonably expected values of all three output rasters for a hilly area (moderate relief) can vary from -0.5 to 0.5; while for steep, rugged mountains (extreme relief), the values can vary between -4 and 4.

• The units of {out_slope} are degrees. Values can vary from 0 to 90.

• Aspect is expressed in positive degrees from 0 to 359.9, measured clockwise from north. An aspect value of -1 indicates an area of undefined aspect (for example, flat). The direction of slope is defined by the value of aspect.

• Learn more about how to specify the input raster dataset in the Map Algebra expression of Raster Calculator.

• ArcObjects

• The primary output is the curvature of the surface on a cell-by-cell basis, as fitted through that cell and its eight surrounding neighbors. Curvature is the second derivative of the surface or the slope of the slope. Two optional output curvature types are possible; the profile curvature is in the direction of the maximum slope, and the plan curvature is perpendicular to the direction of the maximum slope.

• A positive curvature indicates the surface is upwardly convex at that cell. A negative curvature indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• In the profile output, a negative value indicates the surface is upwardly convex at that cell. A positive profile indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• In the plan output, a positive value indicates the surface is upwardly convex at that cell. A negative plan indicates the surface is upwardly concave at that cell. A value of zero indicates the surface is flat.

• Units of the curvature output raster, as well as the units for the optional profile and plan output rasters, are one over 100 zunits, or 1/100(zunits). The reasonably expected values of all three output rasters for a hilly area (moderate relief) can vary from -0.5 to 0.5; while for steep, rugged mountains (extreme relief), the values can vary between -4 and 4.

• The output from the ArcObjects method is a raster object.

Command line syntax
An overview of the Command Line window
Curvature_sa <in_raster> <out_curvature_raster> {z_factor} {out_profile_curve_raster} {out_plan_curve_raster}

 Parameter Explanation Data Type Input raster. Composite Geodataset Output curvature raster dataset. Raster Dataset {z_factor} Number of ground x,y units in one surface z unit. The z-factor adjusts the units of measure for the z units when they are different from the x,y units of the input surface. The z-values of the input surface are multiplied by the z-factor when calculating the final output surface. If the x,y units and z units are in the same units of measure, the z-factor is 1. This is the default. If the x,y units and z units are in different units of measure, the z-factor must be set to the appropriate factor, or the results will be incorrect. For example, if your z units are feet and your x,y units are meters, you would use a z-factor of 0.3048 to convert your z units from feet to meters (1 foot = 0.3048 meter). Double {out_profile_curve_raster} Output profile curve raster dataset. This is the curvature of the surface in the direction of slope. Raster Dataset {out_plan_curve_raster} Output plan curve raster dataset. This is the curvature of the surface perpendicular to the slope direction. Raster Dataset
Data types for geoprocessing tool parameters

### Command line example

`Curvature_sa C:/data/dem C:/data/curvature 3.28 C:/data/profile C:/data/plan`

Scripting syntax
About getting started with writing geoprocessing scripts
Curvature_sa (in_raster, out_curvature_raster, z_factor, out_profile_curve_raster, out_plan_curve_raster)

 Parameter Explanation Data Type in_raster (Required) Input raster. Composite Geodataset out_curvature_raster (Required) Output curvature raster dataset. Raster Dataset z_factor (Optional) Number of ground x,y units in one surface z unit. The z-factor adjusts the units of measure for the z units when they are different from the x,y units of the input surface. The z-values of the input surface are multiplied by the z-factor when calculating the final output surface. If the x,y units and z units are in the same units of measure, the z-factor is 1. This is the default. If the x,y units and z units are in different units of measure, the z-factor must be set to the appropriate factor, or the results will be incorrect. For example, if your z units are feet and your x,y units are meters, you would use a z-factor of 0.3048 to convert your z units from feet to meters (1 foot = 0.3048 meter). Double out_profile_curve_raster (Optional) Output profile curve raster dataset. This is the curvature of the surface in the direction of slope. Raster Dataset out_plan_curve_raster (Optional) Output plan curve raster dataset. This is the curvature of the surface perpendicular to the slope direction. Raster Dataset

Data types for geoprocessing tool parameters

### Script example

```# Curvature_sample.py
# Description:
#   Calculates curvature, optionally including profile and plan curvature.
# Requirements: None
# Author: ESRI
# Date: Sept 6, 2005
# Import system modules
import arcgisscripting

# Create the Geoprocessor object
gp = arcgisscripting.create()

try:
# Set local variables
InRaster = "C:/data/dem"
OutCurvatureRaster = "C:/data/curvature"
InZFactor = "3.28"
OutProfileCurveRaster = "C:/data/profile"
OutPlanCurveRaster = "C:/data/plan"

# Check out Spatial Analyst extension license
gp.CheckOutExtension("Spatial")

# Process: Curvature
gp.Curvature_sa(InRaster, OutCurvatureRaster, InZFactor, OutProfileCurveRaster, OutPlanCurveRaster)

except:
# If an error occurred while running a tool, then print the messages.
print gp.GetMessages()
```

Map Algebra syntax
Curvature(<grid>, {out_profile_curve}, {out_plan_curve}, {out_slope}, {out_aspect})

 Parameter Explanation A raster representing a continuous surface. {out_profile_curve} An optional output raster showing the rate of change of slope for each cell. This is the curvature of the surface in the direction of slope. {out_plan_curve} An optional output raster showing the curvature of the surface perpendicular to the slope direction, referred to as the planform curvature. {out_slope} An optional output raster showing the rate of maximum change in z-value from each cell. This is the first derivative of the surface. {out_aspect} An optional output raster showing the direction of the maximum rate of change in z-value from each cell. This is also referred to as the slope direction.

### Map Algebra example

```curvature(ingrid)
curvature(ingrid, helen_prof, helen_plan)
curvature(ingrid, #, #, helen_slope, helen_aspect)```

ArcObjects syntax
ISurfaceOp::Curvature (geoDataset As IGeoDataset, profile As Boolean, plan As Boolean) As IGeoDataset

 Parameter Explanation geoDataset An input Raster, RasterDataset, RasterBand, or RasterDescriptor representing a continuous surface. profile A Boolean that, if True, will create an output profile raster. The profile raster shows the rate of change of slope for each cell. This is the curvature of the surface in the direction of slope. plan A Boolean that, if True, will create an output plan raster. The plan raster shows the curvature of the surface perpendicular to the slope direction, referred to as the planform curvature.

### ArcObjects example

```' Create the RasterSurfaceOp object
Dim pSurfaceOp As ISurfaceOp
Set pSurfaceOp = New RasterSurfaceOp

' Declare the input raster object
Dim pInputDataset As IGeoDataset

' Calls function to open a raster dataset from disk
Set pInputDataset = OpenRasterDataset("D:\SpatialData", "inputraster")

' Declare the output raster object
Dim pOutputRaster As IGeoDataset

' Calls the method
Set pOutputRaster = pSurfaceOp.Curvature(pInputDataset, False, False)
```

Please visit the Feedback page to comment or give suggestions on ArcGIS Desktop Help.