I would like to create centerlines for many glaciers I am doing work with in ArcMap. I feel like I have a conceptual model that could work but can't seem to figure out how to make it happen with the tools available. I have polygons for each glacier outline, and DEMs for elevation data.

My idea is as follows:

  1. Using zonal stats find max/min elevation for each glacier using the outline polygons
  2. Turn the max and min pixel into a point file
  3. Then find either a least cost path using the DEM between the max/min for each glacier(seems complicated) or find the path between the two points that lies in the center of either side of the polygon.

It's the last step I need help with.


2 Answers 2


This is workflow for single glacier:

arcpy.PolygonToLine_management("Glacier", "./OUTLINE.shp")
arcpy.InterpolateShape_3d("DEM", "OUTLINE", "./outline3d.shp")
arcpy.FeatureVerticesToPoints_management("outline3d", "./points3d.shp", "ALL")
arcpy.AddZInformation_3d("points3d", "Z")
arcpy.Sort_management("points3d", "./sorted.shp", "Z DESCENDING")
# select extreme points
arcpy.SelectLayerByAttribute_management("sorted", "NEW_SELECTION", '"FID" in ( 0, 772)')
arcpy.SplitLineAtPoint_management("OUTLINE", "sorted", "./threeOrMore.shp", "0.5 Meters")
# set environment extent to glacier
arcpy.gp.EucAllocation_sa("threeOrMore", "./alloc", "", "", "5", "FID", "", "")
arcpy.gp.FocalStatistics_sa("ALLOC", "./fstat", "Rectangle 3 3 CELL", "RANGE", "DATA")
arcpy.gp.Thin_sa("fStat", "./thinned", "ZERO", "NO_FILTER", "ROUND", "50")
arcpy.RasterToPolyline_conversion("thinned", "./Skeleton.shp", "ZERO", "0", "SIMPLIFY", "VALUE")
arcpy.Clip_analysis("Skeleton", "Glacier", "./clipped.shp")
arcpy.SelectLayerByLocation_management("clipped", "INTERSECT", "sorted", "10 Meters")
arcpy.Dissolve_management("clipped", "./c_line.shp", "", "", "SINGLE_PART")

enter image description here

It's enough to create a loop through individual features to achieve your goal. You still need to decide what to do with holes in polygons caused by nunataks.


GLARE toolbox created by bunch of authors have option for glacier flowline creation, it is called there "Trunk Stream Tool".

enter image description here

The inputs are:

  • Moraine - Frontal or lateral moraines that indicate the lower limit
    of the glacier
  • Zone Field - Field in the moraine feature class that
    identifies different features
  • DEM
  • Min Flow Accumulation (optional) - Minimum number of pixels from which water upstream would flow to consider a point as part of a stream
  • Output File Name - Name and storage for the resulting flowline
  • Output watershed (optional) - Name and storage for the resulting watershed

enter image description here

Here is a full information and article about the toolbox:

Ramón Pellitero, Brice R. Rea, Matteo Spagnolo, Jostein Bakke, Susan Ivy-Ochs, Craig R. Frew, Philip Hughes, Adriano Ribolini, Sven Lukas, Hans Renssen - GlaRe, a GIS tool to reconstruct the 3D surface of palaeoglaciers - Computers & Geosciences, Volume 94, 2016, Pages 77-85, ISSN 0098-3004.

sciencedirect.com, researchgate.com

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.