Available with Production Mapping license.
Summary
Creates centerlines from polygon features. This tool is useful for creating centerlines from hydrographic polygons for use at smaller scales.
Illustration
Usage
The Output Features parameter value must be a feature class.
This tool creates one line for each input polygon. This may result in complex multipart geometries. The Feature to Line tool can be run on the output centerlines to split the centerlines at any junctions.
This tool is optimized for spatial relationships and junctions typically found in a hydrographic network. Examples of these are long, thin polygons such as rivers or canals. This tool is also optimized for junctions that occur on the same elevation, such as when rivers converge. However, the tool does not handle junctions that occur on different levels, such as when highway overpasses cross over one another.
For best results, run the Dissolve tool to dissolve all touching polygon features before running the Production Centerline tool. Dissolving features helps to ensure better connections and junctions in the resulting centerlines. If one polygon touches the edge of another polygon, it is unlikely that the centerlines created by the tool will touch.
The integrity of the results of this tool relies on the topological integrity of the inputs. Consider the following when using this tool:
- Empty or null geometry—The input features must consist of valid geometries. If necessary, use the Repair Bad Geometry tool to repair these features.
- Vertices—Lacking vertices on a polygon may compromise the quality of the results. Run the Densify tool first if the polygon features have a small number of vertices.
- Nonlinear segments—Bézier curve, circular arc, and elliptic arc segments may compromise the quality of the results. Run the Densify tool first if the polygon features have nonlinear segments. This will add vertices along the curves.
The output centerlines will not contain geographic attributes from the input polygon features. A field called FID will be added to the output feature class. This field is populated with the ObjectID of the polygon from which the centerline was created, which can be used to join the centerlines to the input polygons. If tools such as Dissolve or Eliminate Polygon Part were run on the original polygons to prepare the data before running Production Centerline, the FID field will link to the prepared polygons not the original polygons. The Identity tool can be run using the original polygons to split the centerlines and identify which original polygon contains the centerline.
For best results, run the Eliminate Polygon Part tool to remove small holes in the polygon features before running Production Centerline. For example, you can remove holes from the middle of river polygons where island polygons exist. The centerlines created by the tool will be contained within the polygons. If a hole exists in the polygon, the centerline will branch around the hole, potentially creating two short centerline segments. Filling small holes before running Production Centerline will create a single centerline through the section where a hole previously existed.
Syntax
arcpy.production.ProductionCenterline(input_features, output_features)
Parameter | Explanation | Data Type |
input_features | The polygon features that will be used to create the centerline. | Feature Layer |
output_features | The output feature class for the centerlines. | Feature Class |
Code sample
ProductionCenterline example (stand-alone script)
The following stand-alone sample script demonstrates how to use the ProductionCenterline function to create a centerline from a polygon feature:
# Name: ProductionCenterline_Example.py
# Description: Select the rivers and produce centerlines
# Import system modules
import arcpy
# Check out extension
arcpy.CheckOutExtension("Foundation")
# Define variables
input_features = r"C:\data\CTM.gdb\HydrographySrf"
output_location = r"C:\data\CTM.gdb\HydrographyCrv"
#Select only the Rivers subtype
arcpy.SelectLayerByAttribute_management(input_features, 'NEW_SELECTION', 'FCSubtype = 100314')
inputLyr = arcpyy.MakeFeatureLayer_management(input_features, "inputLyr")
# Execute Production Centerline
arcpy.ProductionCenterline_production(inputLyr, output_location)
# Check in Production Mapping license
arcpy.CheckInExtension("Foundation")
Environments
Licensing information
- Basic: No
- Standard: Requires Production Mapping
- Advanced: Requires Production Mapping