Using WA DNR LiDAR imagery in OpenStreetMap’s iD editor

Washington State’s Department of Natural Resources collects and publishes LiDAR data covering much of the state. LiDAR imagery is created by flying specially-equipped aircraft over areas of interest and using light pulses to determine the precise distance to the ground. This data is later assembled into elevation maps. You can browse the maps using the DNR LiDAR Portal interactive viewer.

The LiDAR maps are very high resolution (about 2 meters per pixel). In addition, LiDAR penetrates tree cover to reveal the shape of the ground hidden underneath. These attributes make LiDAR data a great resource for mapping streams, hiking trails, and forest roads.

LiDAR map of Clark Mountain area, showing glaciers and streams

Clark Mountain area, showing glaciers and streams

LiDAR map of Paradise in Mount Rainier National Park, showing roads, parking lot and hiking trails

Paradise in Mount Rainier National Park, showing roads, parking lot and hiking trails.

All of the DNR LiDAR data is the public domain, so this imagery can be used without worry when contributing to OSM. About one-third of the state has already been surveyed, and the DNR plans to survey the entire state.

Map showing statewide coverage of LiDAR data in Washington

Statewide coverage of LiDAR data (updated July 2022)

Using DNR LiDAR maps in iD is very simple. The DNR runs an ArcGIS server which provides a WMS endpoint. iD can use this endpoint to display a custom imagery layer.

Launch iD ( Open the Background Settings panel on the right (shortcut: B), choose “Custom” from the Backgrounds list, and then paste this huge URL into the box in the pop-up that appears:{height}&width={width}&srs=EPSG%3A3857&bbox={bbox}

That template string tells iD how to query the DNR’s WMS server. Click “OK” and you should see the imagery appear right away.

Note: the large list of layers in the URL above was generated from the GetCapabilities endpoint on the WMS server, which provides a list of all the available layers. The server provides each individual LiDAR survey area as a separate layer, so if you’re just interested in all the LiDAR imagery available, you need to include all the layer IDs in the request. I generated that list of layers using the following command.

curl -s --compressed '' | xidel -s - -e '//Layer/Name' | paste -sd "," - | sed 's/,/%2C/g'

The tool xidel is available on Github and can also be installed with Homebrew if you’re using a mac.

Screenshot of iD editor showing a LiDAR basemap

LiDAR imagery in use in the iD editor