Improving lake polygons in Wind River Range, WY

I am planning to make edits to improve the accuracy of lake polygons in the Wind River Range in Wyoming, and am posting my plan here to solicit community feedback before I begin.

The Wind River Range is a mountain range in western Wyoming. Much of it is designated wilderness and offers spectacular hiking and climbing. There are about 2600 lakes in the Wind River Range in OSM. Of these, about half were last touched in 2016 or earlier, when available imagery in the region was poor, and as a result a lot of these lakes are mapped very coarsely (often hundreds of meters between nodes on the perimeter way).

Today, much better imagery is available, including medium-resolution NAIP and USGS imagery as well as high resolution imagery from Bing and ESRI which appears to be very well orthorectified.

There is also 1m LiDAR-derived digital elevation model (DEM) data available for the whole region from USGS, which is in the public domain. Using this data, I was able to generate very accurate polygons for thousands of lakes in the range. (Before you read any further: I am not proposing to bulk import these generated polygons! See the end of this post for my proposal).

I have been examining the generated lake polygons and am impressed with the results. In most cases the generated polygons are just as good as what I would have been able to draw by hand from the best available imagery, but are incomparably faster to create. There are some false positives (flat areas which are not lakes) and a small number of other errors arising from noisy DEM data which are easy to spot.

Here are some images comparing the current lake polygons in OSM (blue) to what I was able to generate (red). There’s a scale bar in the upper left of each image.

Shoestring Lake and Halls Lake:
shoestring and halls lake

Shoestring Lake closeup:
shoestring lake detail

Crescent Lake:
crescent lake

Pothole lakes at 42.936N, 109.538W:
pothole lakes at 42.936N 109.538W
(note two small errors near the center of the image)

Junction Lake:
junction lake

Hidden Lake:
hidden lake

As mentioned, the process isn’t perfect. Here are three failure modes I noticed.

Error 1: Knob Lakes. The flat marshy areas incorrectly identified as part of the lake.

Error 2: Silver Lake. The lake polygon too small because the water level was very low when the LiDAR imagery was collected.

Error 3: Detail from pothole lakes at 42.936N, 109.538W. Noise in the DEM made the surface of these lakes to appear lumpy, causing the generated polygons to be broken into parts or truncated.

The polygons I generated are available on Github as a GeoJSON file if you’d like to check them out. The polygons have been simplified to a level appropriate for large-scale cartographic use (permitting a maximum error from the source DEM of about 1m).

What I am proposing to do is to incorporate some of these generated polygons into OSM by hand. To be clear, this is not an automated or semi-automated import proposal. I will be reviewing each lake manually, and if appropriate will merge it into OSM, replacing the existing lake geometry when one exists. The process I imagine using is roughly:

  1. Create a draft changeset in JOSM, and open the generated lakes GeoJSON file as a separate data layer.
  2. Working one medium-size region at a time, examine each generated lake polygon.
    a. Discard false positive polygons (where no lake is visible in any imagery) and very small puddles.
    b. For remaining polygons, check if the lake is well aligned to satellite imagery (checking multiple imagery sources to be sure), and is substantially better than the geometry already in OSM (if any exists). Redraw by hand any polygons that don’t meet a high standard of quality.
    c. For polygons that pass these tests, copy the generated geometry into the draft changeset. If a lake already existed in OSM, use JOSM’s “replace geometry” tool to substitute the generated geometry while preserving the way’s ID, tags, and edit history. Reconnect any waterways or adjoining landcover polygons to the new lake geometry, and correct any trails that intersect it. If the lake did not already exist in OSM, create it using the generated geometry and applying the tags natural=water and water=lake. In all cases, examine the new geometry and edit it by hand if necessary to ensure it is accurate and well aligned.
  3. Upload the changeset, including the tag #2024WRRHydrography so that it can be easily found later.

My hope is to substantially and efficiently improve the hydrography data in the Wind River Range, and thus improve maps of the area (particularly for backcountry navigation) that are built from OSM data. If successful, I think this technique could be applied to other parts of the country where high-resolution DEM data exists.

Please let me know if you have any thoughts, questions, or concerns.


I like this approach a lot. Have computers do the heavy lifting, review for accuracy, keep the good, toss and redo the rest.

Do you have thoughts on how to track progress and/or collaborate with folks? I’m sure I could be easily tricked into reviewing a bunch of these? Maybe a task manager task with decently chunky sized regions? Maybe you’ll be able to do it all solo! Up to you.


I like what I see and read here. Seems like you have got a good set of data and a very reasonable edit plan.

1 Like

Nice methodology here identifying lakes via DEM. Professional planimetric compilers do this. Perhaps you could use another open dataset like wetlands as a mask to prevent some of those issues, although I think if the lake level changes we don’t need to be concerned about matching own to the latest aerial.

This looks like a well thought out plan that will bring a substantial accuracy improvement. I also might be interested in contributing if you want to make this a group effort. I’d also be interested in trying out this technique elsewhere as I’m regularly using DEM hillshade layers to help with manual tracing of lakes and ponds.

1 Like

Thanks for the positive feedback and the offers to help out. Since other folks seem interested in contributing, I’m looking into setting this up as a Tasking Manager project. Stay tuned.


As someone who has done a tremendous amount of manual reservoir tagging and boundary corrections in Colorado, I love the sound of your method. The manual element makes it pretty foolproof. I’d be happy to take on a chunk of the work if you get it up in the tasking manager or map roulette.

1 Like