Advanced Access

Workflows & Integrations

Access Wyoming LiDAR data beyond the web application using REST services, cloud-optimized rasters, scripting environments, and custom analysis workflows.

File Explorer

Goal

Access the Wyoming LiDAR data repository directly through a web browser without specialized cloud storage software. The S3 Data Explorer provides a simple interface for browsing folders, locating datasets, and downloading LiDAR products for use in GIS applications and automated workflows.


Explorer URL

https://lidar.wygisc.org/s3browser


Common Uses

  • Browse the complete LiDAR data repository.

  • Navigate project folders and derivative products.

  • Download individual files without GIS software.

  • Access Cloud Optimized GeoTIFFs (COGs), contours, point clouds, and supporting data.

  • Share direct links to publicly available datasets.


Getting Started

  1. Open the S3 Data Explorer in your web browser.

  2. Browse folders by project, product, or dataset.

  3. Select the file or folder you want to access.

  4. Download files directly using your browser.

  5. Use the downloaded data in ArcGIS Pro, QGIS, or other GIS software.


Additional Notes

The S3 Data Explorer provides direct access to the same public datasets available through the Wyoming LiDAR Hub. It is especially useful for advanced users who know the files they need, require direct access to project directories, or are working with cloud-native datasets and automated workflows. The Wyoming LiDAR Portal provides free public access to statewide terrain models, contours, and related elevation products, and the S3 browser complements those tools by exposing the underlying repository. :contentReference[oaicite:0]{index=0}

esri Rest Endpoints

Service Endpoints

Goal

Connect directly to Wyoming LiDAR image services without downloading raster files locally. These REST endpoints provide access to LiDAR-derived elevation products for visualization, analysis, and integration into GIS applications.

Common Uses

  • Add LiDAR-derived image services directly to ArcGIS Pro.

  • Use DTM, hillshade, or slope layers in web mapping applications.

  • Access service metadata, supported operations, and image properties.

  • Reference services from Python, R, QGIS, or other GIS workflows.

  • Incorporate elevation services into custom geospatial applications.

Getting Started

  1. Open one of the REST endpoints in a web browser.

  2. Review the service description, metadata, and available operations.

  3. Copy the Image Service URL.

  4. Add the service to ArcGIS Pro, QGIS, or another GIS client.

  5. Use the service for visualization, analysis, or integration within your workflow.

ArcGIS Pro Example

In ArcGIS Pro:

  1. Open the Catalog pane.

  2. Expand Servers.

  3. Select Add ArcGIS Server.

  4. Choose Use GIS Services.

  5. Paste the Image Service URL and connect.

The selected service can then be added directly to maps and used like any other image service.

Additional Notes

These endpoints provide access to LiDAR-derived products available through the Wyoming LiDAR Hub. For workflows that require direct raster processing, large-area downloads, or cloud-native analysis, consider using the Cloud Optimized GeoTIFF (COG) resources when available.

Automation

Goal

The Wyoming LiDAR Hub provides direct download links for every available dataset. While these links can be downloaded individually through a web browser, they can also be incorporated into automated workflows using wget, Python, or R. This approach is ideal for downloading large collections of LiDAR data, refreshing local repositories, or integrating downloads into repeatable GIS processing pipelines.


Recommended Workflow

  1. Select the desired LiDAR products within the Wyoming LiDAR Hub.

  2. Download the generated URL list (.txt).

  3. Use the URL list with wget for reliable, resumable downloads.

  4. Execute the download directly or call wget from Python or R.

  5. Continue with automated processing using ArcGIS Pro, QGIS, GDAL, PDAL, or your own scripts.


Installing wget

Windows
The easiest installation methods are through winget or Chocolatey.

winget install GnuWin32.Wget

or

choco install wget

Alternatively, download a Windows binary from one of the GNU wget distributions and ensure the executable is available in your system PATH.

Linux

sudo apt install wget

or

sudo dnf install wget

macOS

brew install wget

Using wget Directly

wget -c -i laz_urls.txt --parallel=8 --no-clobber

This command resumes interrupted downloads, reads URLs from the supplied text file, downloads multiple files in parallel, and skips files that already exist.


Python Integration

Python can execute the standard wget command as part of a larger workflow using the built-in subprocess module. No additional Python libraries are required beyond a working wget installation.

import subprocess

subprocess.run([
    "wget",
    "-c",
    "-i", "laz_urls.txt",
    "--parallel=8",
    "--no-clobber"
], check=True)

print("Download complete.")

Typical Python workflows continue with processing using libraries such as Rasterio, PDAL, laspy, GeoPandas, or ArcGIS Pro's arcpy.


R Integration

R can execute the same wget command using system2(). This allows downloads to become part of reproducible analysis pipelines.

system2(
  "wget",
  c(
    "-c",
    "-i", "laz_urls.txt",
    "--parallel=8",
    "--no-clobber"
  )
)

message("Download complete.")

Downloaded datasets can then be analyzed using packages such as terra, sf, lidR, and stars.


Why Use Automation?

  • Download hundreds or thousands of files without manual interaction.

  • Resume interrupted downloads automatically.

  • Integrate downloads into scheduled or repeatable workflows.

  • Automatically begin processing once downloads complete.

  • Create reproducible geospatial data acquisition pipelines.


Additional Notes

The URL list generated by the Wyoming LiDAR Hub is a simple text file containing direct download links. Because it is plain text, it can be used with virtually any programming language or download utility that supports reading URLs from a file. While the examples above use wget, the same URL list can be adapted for other download tools if your organization has established standards or automation frameworks.

Cloud Raster Access

Goal

Access and analyze Wyoming LiDAR elevation rasters directly from cloud storage without downloading the entire file first. Cloud Optimized GeoTIFFs (COGs) allow compatible GIS software and scripting tools to request only the portions of a raster needed for visualization or analysis, making large elevation datasets easier to use in desktop, scripted, and cloud-based workflows.


What Is a COG?

A Cloud Optimized GeoTIFF (COG) is a standard GeoTIFF organized internally for efficient access over the web. Instead of downloading a complete raster before it can be used, compatible software can request only the portions and resolutions needed for the current map view or analysis.

This makes COGs especially useful for large elevation datasets. You can preview a raster, inspect an area of interest, or perform supported raster operations directly against the cloud-hosted file while avoiding unnecessary transfer of the entire dataset.


Finding COG URLs

Wyoming LiDAR COGs are available through direct HTTPS URLs. Individual files can be located using the S3 Data Explorer, where you can browse the repository, navigate to the appropriate product folder, and copy or download individual files.

Example DTM COG URL:

https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif

For multiple files, use the Wyoming LiDAR Hub to select the desired raster products and choose Download URL list (.txt). The resulting text file contains direct URLs that can be used in scripts, GIS software, command-line tools, or automated workflows.


Recommended Workflow

  1. Identify the raster or area of interest using the Wyoming LiDAR Hub or S3 Data Explorer.

  2. Copy the direct HTTPS URL for a single COG, or create a URL list for multiple selected rasters.

  3. Open the COG directly in compatible GIS software or reference the URL from Python, R, GDAL, or another raster-processing environment.

  4. Visualize or analyze the raster remotely when supported by the software and operation.

  5. Download the file locally only when your workflow requires a complete local copy or when repeated, intensive processing makes local access more practical.


ArcGIS Pro

ArcGIS Pro provides several ways to work with Wyoming LiDAR elevation data, including direct access to cloud-hosted rasters and REST image services. COGs can be incorporated into ArcGIS Pro workflows for visualization, analysis, and integration with other GIS datasets.

For more advanced or automated workflows, leveraging ArcPy within ArcGIS Pro unlocks additional possibilities for working with COG URLs, including scripted raster processing, batch operations, and integration into larger geoprocessing workflows.

Example COG URL:

https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif

Depending on the task, users can choose between working with the underlying COG files directly or connecting to Wyoming LiDAR REST image services for streamlined access to statewide elevation products.


QGIS

QGIS can open a remote COG directly from its HTTPS URL using GDAL's virtual file system. This allows the raster to be displayed without first downloading the entire file.

Use the following format:

/vsicurl/https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif

In QGIS, add the URL as a raster data source. QGIS and GDAL can then request the portions of the COG needed for the current map view.


Python: Read a COG Remotely and Get a Value at a Point

Python can access cloud-hosted COGs directly using Rasterio, which uses GDAL for raster access. By adding /vsicurl/ to the HTTPS URL, GDAL accesses the raster through its virtual file system and requests only the portions of the remote file needed for the operation rather than downloading the entire GeoTIFF first.

The example below opens a Wyoming LiDAR DTM COG directly from cloud storage, transforms a longitude and latitude point into the raster's coordinate system, and returns the elevation value at that location.

Requirements

This example requires the Rasterio and pyproj Python packages. If they are not already installed in your Python environment, install them with:

pip install rasterio pyproj

Example

import rasterio
from pyproj import Transformer

# Direct URL to a Wyoming LiDAR DTM Cloud Optimized GeoTIFF
cog_url = "https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif"

# Tell GDAL to access the COG remotely through its virtual file system
vsi_url = "/vsicurl/" + cog_url

# Example point in longitude and latitude
# Replace these coordinates with your location of interest
lon = -104.50
lat = 41.50

with rasterio.open(vsi_url) as src:

    # Transform the longitude/latitude point into the raster's coordinate system
    transformer = Transformer.from_crs(
        "EPSG:4326",
        src.crs,
        always_xy=True
    )

    x, y = transformer.transform(lon, lat)

    # Read the raster value at that location
    value = list(src.sample([(x, y)]))[0][0]

    print("Raster CRS:", src.crs)
    print("Elevation value:", value)

The returned value represents the modeled bare-earth elevation stored in the DTM raster cell at that location. The full GeoTIFF does not need to be downloaded first; GDAL requests the raster data needed to answer the query directly from the cloud-hosted COG.

This same approach can be extended beyond a single point. Python workflows can use remote COGs to extract values for many locations, clip rasters to areas of interest, calculate statistics for polygons, or iterate through a URL list to process multiple elevation tiles without first downloading each complete raster.


R: Read a COG Remotely and Get a Value at a Point

R can work with a cloud-hosted COG directly using the terra package. The key option is vsi = TRUE, which tells terra/GDAL to access the raster through GDAL's virtual file system instead of requiring the GeoTIFF to be downloaded first.

The example below opens a Wyoming LiDAR DTM COG from its HTTPS URL, creates a point from longitude and latitude coordinates, projects that point into the raster's coordinate system, and returns the raster value at that location.

library(terra)

# Direct URL to a Wyoming LiDAR DTM Cloud Optimized GeoTIFF
cog_url <- "https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif"

# Open the COG remotely.
# vsi = TRUE allows terra/GDAL to read the raster over HTTPS.
dtm <- rast(cog_url, vsi = TRUE)

# Example point in longitude/latitude.
# Replace these coordinates with your location of interest.
point_lonlat <- data.frame(
  lon = -104.50,
  lat = 41.50
)

# Convert the coordinate table into a spatial vector.
point <- vect(
  point_lonlat,
  geom = c("lon", "lat"),
  crs = "EPSG:4326"
)

# Project the point into the raster's coordinate system.
point_projected <- project(point, crs(dtm))

# Extract the DTM value at the point.
value <- extract(dtm, point_projected)

print(value)

The returned value represents the raster cell value at the point location. For a DTM, this is the modeled bare-earth elevation value stored in the raster. The exact units depend on the raster dataset.


GDAL

GDAL provides direct access to remote COGs using its /vsicurl/ virtual file system. This is useful for inspecting raster metadata, extracting subsets, converting formats, or incorporating COGs into command-line processing workflows.

Inspect the remote raster:

gdalinfo /vsicurl/https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif

Extract a geographic subset without first manually downloading the complete source raster:

gdal_translate \
  -projwin xmin ymax xmax ymin \
  /vsicurl/https://wyolidar.s3.arcc.uwyo.edu/COG_Mosaic/dtm/W104N041_Deg_Cog.tif \
  subset.tif

Working with Multiple COGs

For workflows involving multiple rasters, create a URL list from the Wyoming LiDAR Hub. Each line in the text file represents a direct COG URL that can be read by a script, passed to GDAL-based tools, or used to build automated processing workflows.

Python example:

with open("dem_urls.txt", "r") as file:
    urls = [line.strip() for line in file if line.strip()]

for url in urls:
    print(f"Processing: {url}")

R example:

urls <- readLines("dem_urls.txt")

for (url in urls) {
  print(paste("Processing:", url))
}

The URL list can therefore serve as more than a download manifest—it can also be used as direct input to automated raster analysis workflows.


When Should You Download the File?

Remote COG access is useful, but downloading locally may still be the better choice for some workflows. Consider keeping a local copy when:

  • You will repeatedly process the entire raster.

  • Your analysis requires many passes across the same data.

  • You need offline access.

  • Network speed or reliability is limited.

  • Your software or analysis operation does not efficiently support remote raster access.

For visualization, inspection, targeted subsets, and many scripted workflows, direct COG access can eliminate unnecessary downloads and simplify access to large elevation datasets.


Additional Notes

COGs are standard GeoTIFF files and can still be downloaded and used locally like any other GeoTIFF. Their advantage is that their internal structure also supports efficient partial access over HTTP when used with compatible software.

Performance depends on the software, analysis operation, network connection, raster size, and how the COG was created. Not every operation can be performed efficiently against a remote file, so local downloads may still be preferable for large or computationally intensive analyses.

Reference

Bulk Download:
A workflow for downloading many selected files or datasets instead of accessing one item at a time.


COG:
Cloud Optimized GeoTIFF. A GeoTIFF structured so software can read only the portions of a raster needed from cloud storage.


Contour:
A vector line connecting locations of equal elevation. Contours are commonly used to visualize terrain shape and elevation changes on maps.


DEM:
Digital Elevation Model. A general term for a raster dataset representing the elevation of the Earth's surface. A DEM may represent either the bare earth or the land surface, depending on how it was created.


DTM:
Digital Terrain Model. A type of Digital Elevation Model (DEM) that represents the bare-earth ground surface, with buildings, vegetation, and other above-ground features removed.


Hillshade:
A raster visualization that simulates illumination from a light source to emphasize terrain features and landforms.


Image Service:
An ArcGIS service designed to deliver raster data, such as elevation models, imagery, hillshade, or other gridded products.


LAS / LAZ:
Standard file formats for storing LiDAR point cloud data. LAZ is a compressed version of the LAS format and is widely used for efficient storage and distribution.


LiDAR:
Light Detection and Ranging. A remote sensing technology that uses laser pulses to measure the Earth's surface and create highly detailed elevation datasets.


Point Cloud:
A collection of individual points measured by LiDAR. Each point contains a three-dimensional location and may also include attributes such as intensity and classification.


Raster:
A grid-based dataset made of cells or pixels. Elevation models, hillshades, and imagery are common raster datasets.


REST Endpoint:
A web address that exposes a GIS service so it can be used in software, scripts, or web applications.


Slope:
A raster dataset that measures the rate of elevation change, typically expressed in degrees or percent rise. It is commonly used to evaluate terrain steepness for analysis and planning.


Tile:
A subdivision of a larger dataset used to organize, store, and deliver geospatial data efficiently. Large LiDAR datasets are commonly divided into tiles for processing and download.


Vector Tile:
A tiled vector dataset optimized for fast display and efficient rendering in web maps.