I have a question concerning proximity analyses in arcpy (ArcGIS 10.7). Forgive me if it takes a while to explain, but I've added a figure below to illustrate my problem.


I'm trying to discover potential lakes (i.e. exposed subglacial overdeepenings) in the ice-free beds of ~1000 glaciers. I have the locations of all overdeepenings and the position of the glacier front at several points in time. So far, I have

  • created a line perpendicular to the flowline of the glacier
  • clipped the whole glacier shp with that line to get the ice-free bedrock
  • clipped the shp containing all the overdeepenings with that bedrock shp giving me all ice-free lakes

All of that works fine as long as the glacier runs in a more or less straight line. If it bends back on itself, I get problems as some parts of the upstream glacier are wrongly considered ice-free and lakes are incorrectly found (red circles in the figure below).

So far, different approaches to solve this have not worked:

  • I thought of trying to clip the glacier just along its main glacier bed to exclude all upper parts. However, sometimes the upper parts of the glacier converge at mountain ridges with the ends of lower tributary glacier arms.
    This means, my polygon is at these points not easily separated into lower and upper parts because of the missing polygon separation (orange area in the figure). So, I think I have to use this 'endless' perpendicular line to clip the whole thing.
  • I have done Near analyses with different points along the upper flowline. I was hoping that some of them would be closer to my incorrect lakes than the point at the true glacier front. This way, I could have determined that the lakes were further upstream.
    Unfortunately, this does not always work. In the figure, the point at the glacier front (A) is still closer to the wrong lakes than point B or C. And as the upper flowline consists of nearly 600 points, I want to avoid doing a near analysis for every point hoping that one will be closer.

enter image description here

Now the question

I'm looking for advice on how to solve this issue. Is there a way using arcpy or Python in general to exclude all sinks upstream from the glacier front?

Maybe a better way to separate the glacier in upper and lower parts?

Or another proximity analysis?

  • Find chainage of lake centers on the line. Might work direction of flow line is correct.
    – FelixIP
    Commented Feb 16, 2021 at 18:56
  • Shapes of individual glaciers are wrong anyway...
    – FelixIP
    Commented Feb 16, 2021 at 19:01
  • Unfortunately, I just have the main flowline. Any lakes in tributary valleys or larger cirque areas at the top (as the wrong lakes in my example) don't lie close enough to the flowline. Commented Feb 16, 2021 at 20:55
  • And what do you mean by 'Shapes of individual glaciers are wrong anyway'? The shapes are from the Randolph Glacier Inventory and relatively exact, at least they are fully sufficient for what I'm trying here. Commented Feb 16, 2021 at 20:56
  • If I correctly understand "exposed bed", your single glacier is now a set of multiple glaciers. Small ones used to be a tributaries of a bigger.
    – FelixIP
    Commented Feb 16, 2021 at 21:24

1 Answer 1


If possible, the use of a DEM can solve this problem:
If the location of the glacier front is known, so is the altitude. It then can be assumed that all subglacial overdeepenings below that altitude have been exposed.

While this does not use proximity analyses, it should solve the problem in nearly all cases.

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.