Cloud-optimized versions of USGS Ungulate Migration data
Cloud-native republication of the U.S. Geological Survey series Ungulate Migrations of the Western United States (Kauffman et al., USGS Fort Collins Science Center, Volumes 1–6, 2020–2026), harmonized from the per-volume ScienceBase shapefile releases into two analysis-ready products in a single, uniform schema (EPSG:4326).
ungulate-ranges — aggregated Brownian-bridge utilization-distribution polygons:
migration Corridors, Stopovers, WinterRange, and AnnualRange
(distinguished by the data_type column).ungulate-routes — individual per-animal-year GPS migration routes (lines;
ind_year identifies the animal-migration).Coverage: 106 herds across 8 states (AZ, CA, NM, NV, OR, UT, WA, WY) plus Idaho (as
multi-state ID,NV elk herds). Species: mule deer, elk, pronghorn, white-tailed deer
(moose in routes). The state column is a clean US-state filter — single codes (WY)
or comma-separated codes for multi-state herds (ID,NV, OR,NV, OR,NV,CA). Herds on
tribal or reservation lands carry their containing state in state, with the tribal
identity recorded separately in tribal_land (Wind River Reservation, Tesuque Pueblo; null for the large majority of features). Every feature carries volume
(1–6) and source_release_date for provenance, and _cng_fid, the universal
per-feature id used to join the hex index back to attributes and to dedup with
COUNT(DISTINCT _cng_fid).
License: public domain (U.S. Government Works). Source: https://www.usgs.gov/centers/fort-collins-science-center/science/ungulate-migrations-western-united-states
The hex asset is a lean spatial index (_cng_fid + H3 columns only). Join it back to
the flat GeoParquet on _cng_fid to attach attributes.
The PMTiles source-layer is the last segment of the dataset name — ungulate-ranges
or ungulate-routes (NOT the file name):
Individual routes (lines):
contour semantics differ by data_type. Corridors use a use-intensity class
(Low/Medium/High/Very high; legacy GRIDCODE 1/10/20 → Low/Medium/High); ranges use a
probability-contour percentile as an integer string (50 = 50% contour). A few legacy
stopovers carry only a polygon index (no percentile) and are null by design.data_type + contour and dedup by _cng_fid before area/aggregation. Never SUM a
per-feature value on the hex index — use COUNT(DISTINCT h10) × cell_area_res10.state and tribal_land. state holds a US-state code (comma-separated for
multi-state herds, e.g. ID,NV). Where the source coded a tribal/reservation
designation in place of a state, the feature carries its containing US state in state
and the tribal identity in tribal_land (Wind River Reservation → WY; Tesuque Pueblo → NM). tribal_land is null otherwise.ID,NV elk herds).data-workflows pipeline
(catalog/usgs-ungulate-migration/).