ice-road-copters

pipeline for post-processing point clouds to resolve change in repeat collections

https://github.com/cryogars/ice-road-copters

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.1%) to scientific vocabulary

Keywords

coregistration cryosphere lidar-point-cloud remote-sensing
Last synced: 8 months ago · JSON representation ·

Repository

pipeline for post-processing point clouds to resolve change in repeat collections

Basic Info
  • Host: GitHub
  • Owner: cryogars
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 32.7 MB
Statistics
  • Stars: 11
  • Watchers: 4
  • Forks: 3
  • Open Issues: 7
  • Releases: 2
Topics
coregistration cryosphere lidar-point-cloud remote-sensing
Created almost 4 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

ice-road-copters :helicopter:

DOI

Overview

The ice-road-copter suite is designed to post-process point cloud data and enable differencing to resolve change in repeat collections. Our focus is snow depth maps. DEM differencing for snow depths requires detailed knowledge of Coordinate Reference Systems (CRS) for the reference product (snow-free) and other products (snow-on). Alignment issues often persist even when both products are tied to the same CRS, and this needs to be addressed with a co-registration process. The software relies on the Point Data Abstraction Library (PDAL; www.pdal.io) for point cloud filtering and segmentation. NASA's Ames Stereo Pipeline (https://github.com/NeoGeographyToolkit/StereoPipeline) performs the co-registration component of the workflow. The software is designed to use plowed roadways through the survey domain as co-registration objects, as the snow-covered domain often lacks stable features.

Setting things up! :hammer:

Downloading ASP precompiled binaries

  1. Download latest stable build (Linux or OSx): https://github.com/NeoGeographyToolkit/StereoPipeline/releases and unzip the folder into the ice-road-copters directory. There are different builds for each OS, but you may have to dig a little to find the OSx build, it gets updated less.
  2. Rename this folder as ASP and remove the zipped file

Setting up Conda environment

$ conda env create -f iceroad_env.yaml $ conda activate iceroad

Running the code

from the ice-road-copters directory for example one can run: $ python scripts/ice-road-pipeline.py <path-to-directory-of-laz-files> -e <path-to-user-supplied-reference-dem> -a <path-to-ASP-directory> -s <path-to-road-shapefile-to-clip-to> -b 3 NOTE: this code assumes you are using a reference DEM (and other airborne lidar data) referenced to the WGS84 ellipsoid (EPSG:4326). If your reference DEM Coordinate Reference System (CRS) is orthometric (Geoid) you must set the -g True flag. This prompts extraction of the CRS metadata and a subsequent coordinate transform. Users must supply a shape file clipped to the roadway through the domain. During co-registration, this code assumes a buffered road area of 3 meters (1.5m on either side of the centerline of the road). This buffered road area can be modifed with -b flag.

Flags

``` -e user_dem Path to user specifed DEM [one will be downloaded from py3dep if you don't supply one]

-d debug turns on debugging logging [Options: True or False]

-a asp_dir Directory with ASP binary files [Can be either ASP or ASP/bin directory]

-s shp_fp Shapefile to align with [road shapefile to use to tie reference DEM to your point cloud]

-b buffer_meters Total width for the transform area [Default: 3]

-g geoid Is the reference DEM CRS orthometric (geoid height)? Will be auto set to True if you don't supply a DEM [Default: False]

```

Optional: If estimating grain size, install R and the following packages

See ice-road-pipeline.py for the additional optional flags. This currently requires a target with a known reflectance in order to calibrate lidar reflectance. It assumes wavelength = 1064 nm.

``` library(raster) library(lidR) library(rlas) library(dplyr) library(readr) library(terra) library(sf) library(data.table)

```

Additional information :books:

The goal of this program is to utilize existing USGS 3DEP 1m topography data (via py3dep) and Ames Stereo Pipeline (ASP) software to accurately align snow-on airborne lidar point clouds to real world coordinates without the use of ground control points. We also provide an option for a user specified DEM (snow-off).

heli_bsu

For example, we used prior knowledge that HWY-21 running through our study site is kept snow-free for a majority of the year, thus making excellent virtual ground control points for post-processing in ASP (using pc_align).

roads

After running pdal processing and ASP post-processing, we are able to generate accurate snow depth maps with road differences on the cm scale.

snow

Owner

  • Name: Cryosphere Geophysics And Remote Sensing
  • Login: cryogars
  • Kind: organization
  • Location: Boise, ID

Snow and ice research that leverages geophysics and remote sensing tools

Citation (CITATION.cff)

cff-version: 1.0.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Hoppinen"
    given-names: "Zachary"
    orcid: "https://orcid.org/0000-0003-0916-7774"
  - family-names: "Wilder"
    given-names: "Brent"
title: "ice-road-copters"
version: 1.0.0
doi: 10.5281/zenodo.8184592
date-released: 2023-05-01
url: "https://github.com/SnowEx/ice-road-copters"

GitHub Events

Total
  • Create event: 5
  • Issues event: 3
  • Watch event: 2
  • Delete event: 1
  • Member event: 4
  • Issue comment event: 48
  • Push event: 26
  • Pull request review event: 33
  • Pull request review comment event: 33
  • Pull request event: 3
  • Fork event: 1
Last Year
  • Create event: 5
  • Issues event: 3
  • Watch event: 2
  • Delete event: 1
  • Member event: 4
  • Issue comment event: 48
  • Push event: 26
  • Pull request review event: 33
  • Pull request review comment event: 33
  • Pull request event: 3
  • Fork event: 1

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 3
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: about 7 hours
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: about 7 hours
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • brentwilder (2)
  • naniciafone (1)
Pull Request Authors
  • brentwilder (6)
  • jomey (2)
  • Surfix (1)
Top Labels
Issue Labels
enhancement (2) bug (1)
Pull Request Labels