Cloud-Native Elevation: Accessing USGS LiDAR Data via STAC API
The transition from manual file downloads to Cloud-Native Geospatial workflows has revolutionized how we interact with the USGS 3D Elevation Program (3DEP). Instead of navigating legacy web portals to download massive .LAZ tiles, modern GIS analysts use the SpatioTemporal Asset Catalog (STAC) API. This specification allows for the programmatic discovery and streaming of point clouds directly into Python environments or QGIS. By querying the USGS STAC endpoint, you can filter billions of points by bounding box, date, or point density, fetching only the specific spatial assets required for your terrain analysis without the overhead of bulk downloads.
Table of Content
- Purpose: The Shift to STAC
- The USGS STAC API Endpoint
- Step-by-Step: Querying LiDAR Assets
- Use Case: Automated Floodplain Modeling
- Best Results: Efficient Metadata Filtering
- FAQ
- Disclaimer
Purpose
Using the STAC API for USGS LiDAR data serves several high-level GIS functions:
- Automation: Integrating elevation data into CI/CD pipelines or automated reporting tools.
- Precision Discovery: Finding exactly which LiDAR projects cover a specific AOI (Area of Interest) without cross-referencing PDF index maps.
- Cloud-Stream Ready: Facilitating the use of COPC (Cloud Optimized Point Clouds) directly from Amazon S3 buckets.
The USGS STAC API Endpoint
As of 2026, the primary gateway for USGS 3DEP assets is hosted through the Microsoft Planetary Computer or the USGS-specific enterprise STAC. The current production URL for the USGS LiDAR STAC API is:
https://planetarycomputer.microsoft.com/api/stac/v1/collections/usgs-3dep-lidar
Alternatively, the direct USGS endpoint (for non-mirrored assets) is often accessed via:
https://stac.usgs.gov/api/stac/v1
Step-by-Step: Querying LiDAR Assets
1. Initialize the STAC Client
In a Python environment, use the pystac_client library to establish a connection to the API.
from pystac_client import Client
catalog = Client.open("https://planetarycomputer.microsoft.com/api/stac/v1")
2. Define Your Spatial Search
Use a GeoJSON-style bounding box [min_lon, min_lat, max_lon, max_lat] to isolate your study area.
search = catalog.search(
collections=["usgs-3dep-lidar"],
bbox=[-122.4, 37.7, -122.3, 37.8],
max_items=10
)
3. Inspect the Assets
Each "Item" in the STAC response contains metadata and links. USGS LiDAR items typically include links to the COPC file, metadata XML, and thumbnails.
items = list(search.get_items())
for item in items:
print(f"ID: {item.id}")
print(f"Download Link: {item.assets['data'].href}")
Use Case: Automated Floodplain Modeling
An engineering firm needs to monitor sediment change after every major storm event along the Mississippi River.
- The Challenge: Manually searching for new LiDAR surveys is too slow for emergency response.
- The Action: They deploy a Python script that pings the STAC API every 24 hours for their specific river reach.
- The Result: The moment USGS uploads a new survey, the script detects the new STAC "Item," triggers a cloud-based DTM generation, and alerts the team to topographical changes.
Best Results
| Feature | Standard Method (Portal) | STAC API Method |
|---|---|---|
| Search Speed | Minutes (Manual clicks) | Milliseconds (Query) |
| Metadata | Embedded in files | Instant JSON response |
| Processing | Local desktop | Cloud-native (streaming) |
| Scaling | Single file at a time | Batch multi-collection search |
FAQ
What is a COPC file?
COPC stands for Cloud Optimized Point Cloud. It is a standard LAZ 1.4 file organized in a clustered octree, allowing a STAC-compatible client to stream only the points needed for a specific zoom level or area without reading the whole file.
Do I need an API key?
Accessing the USGS STAC metadata is generally public. However, if using the Microsoft Planetary Computer mirror, you may need a (free) token to bypass rate limits during heavy data streaming.
Is all USGS LiDAR available via STAC?
The USGS is progressively migrating the 3DEP archive. While most post-2015 surveys are available, some legacy "historical" LiDAR data may still only be accessible via the National Map Download client.
Disclaimer
STAC API endpoints and collection names are subject to change as federal agencies update their cloud architectures. Always check the official USGS ScienceBase or 3DEP technical documentation for the most current production URLs. Data availability varies by region and project funding. March 2026.
Tags: USGS_LiDAR, STAC_API, Cloud_Native_GIS, 3DEP_Data