Raster Curvature

Running programmatically

Surface curvature at a point is the curvature of a line formed by the intersection of the surface with a plane with a specific orientation passing through this point. The value of the curvature is reciprocal of the radius of the curve - the larger the radius, the smaller the curvature value (a gentle curve has small curvature and a tight curve has large curvature value).  The units of the curvature are radians per linear unit (the unit of the spatial reference of the raster).
Because the values of the curvature are typically small, the results of the curvature functions of ET Surface are the actual curvature multiplied by 100. So the value of the curvature can be described as the change of the orientation resulting from travelling one hundred linear units along the respective line.
The sign of the curvature is assigned differently by different authors. To keep consistency with ArcGIS the functions of ET Surface assign the sign as the corresponding functions of ArcGIS. If you want to change the sign you can use the Raster Calculator to multiply the result by -1.

The functions of ET Surface calculate the curvatures for each cell of a raster dataset using its immediate neighbors as devised by Zevenbergen and Thorne (1987).

Plan Curvature is the curvature in a horizontal plane. It can be also described as the curvature of the hypothetical contour line that passes through a specific cell. The Plan Curvature is positive for cells with concave contours and negative for cells with convex contours. Plan curvature can be used to differentiate between ridges and valleys.

Profile Curvature is the curvature of the surface in the direction of the steepest slope (in the vertical plane of a flow line). The Profile Curvature affects the flow velocity of water draining the surface and influences erosion and deposition. In locations with convex(negative) Profile Curvature the erosion will prevail and in locations with concave (positive) curvature the deposition.

General Curvature (also called Total) is the curvature of the surface itself (not the curvature of a line formed by the intersection of the surface with a plane). The General Curvature can be positive or convex (indicating peaks), negative or concave (indicating valleys) or zero (indicating flat surface or a saddle).

Inputs:

Outputs:

Example:

DEM (50% transparency) over hillshade

DEM (50% transparency) over Plan Curvature (20% transparency) over hillshade. Pronounced valleys and ridges.

Notes:

Running Programmatically

(Go to TOP)

Parameters

Expression Explanation
Function Name RasterPlanCurvature
Function Name RasterProfileCurvature
Function Name RasterGeneralCurvature
<input raster> A String representing the input raster dataset.
<output raster> A String - the full name of the output raster.

Running the function

ETSPath used in the table below is the full path to ETSRun.exe (E.G. "C:\Program Files\ETSpatial Techniques\ETSurface\ETSRun.exe")

RasterPlanCurvature

Language Syntax
Python subprocess.call([ETSPath, "RasterPlanCurvature", "input raster", "output raster"])
.NET using ETSRun.exe StartInfo.FileName = ETSPath
StartInfo.Arguments = "RasterPlanCurvature" "input raster" "output raster"
.NET using ETSOutX.dll RasterPlanCurvature(input raster, output raster)
ArcPy arcpy.RasterPlanCurvature("input raster", "output raster")

RasterProfileCurvature

Language Syntax
Python subprocess.call([ETSPath, "RasterProfileCurvature", "input raster", "output raster"])
.NET using ETSRun.exe StartInfo.FileName = ETSPath
StartInfo.Arguments = "RasterProfileCurvature" "input raster" "output raster"
.NET using ETSOutX.dll RasterProfileCurvature(input raster, output raster)
ArcPy arcpy.RasterProfileCurvature("input raster", "output raster")

RasterGeneralCurvature

Language Syntax
Python subprocess.call([ETSPath, "RasterGeneralCurvature", "input raster", "output raster"])
.NET using ETSRun.exe StartInfo.FileName = ETSPath
StartInfo.Arguments = "RasterGeneralCurvature" "input raster" "output raster"
.NET using ETSOutX.dll RasterGeneralCurvature(input raster, output raster)
ArcPy arcpy.RasterGeneralCurvature("input raster", "output raster")

Notes:

(Go to TOP)