Skip to content

3dgeo-heidelberg/ALStimate

Repository files navigation

Author: Mark Searle

Contact: [email protected]


BSc. thesis development results - Automatic Estimation of Acquisition Parameters from Airborne Laser Scanning Point Cloud Data

This directory contains the various functions and scripts that were developed with the aim of automatically estimating acquisition parameters from ALS point clouds.

Requirements:

bsc39.yml - YAML file with the required dependencies for the remaining code. Can be used to create an Anaconda Environment with command conda env create -f bsc39.yml

Contents:

The contents of each file are explained in the following:

funcs.py - Library of functions for ALS point cloud parameter estimation. These functions can be combined in specific ways to estimate parameters from ALS point clouds. Some functions were specifically designed to work with the data generation script 'test_data_generator(_onlyrot).py' and the corresponding script for merging the generated test data, 'merge_output.py'. See example workflow for parameter estimation in script 'param_estimate_multiple_strips.py'. Each function contains a docstring explaining its usage.

test_data_generator.py - HELIOS++ test data generation. This script allows the construction and execution of a series of HELIOS++ ALS simulations with a random ALS scanner and random settings for the scanner. The trajectories are defined by shapefiles located in the 'input_shp' directory and the altitude is set randomly, and held over the 'input_raster' DEM with a max deviation of 'height_variation'. The scenefile is defined by the variable 'scene'. A metadata file is automatically written to the output location indicating all the parameters used in the survey.

test_data_generator_onlyrot.py - HELIOS++ test data generation (only rotating polygon mirror scanners). This script allows the construction and execution of a series of HELIOS++ ALS simulations with a random rotating polygon mirror scanner and random settings for the scanner. The trajectories are defined by shapefiles located in the 'input_shp' directory and the altitude is set randomly, and held over the 'input_raster' DEM with a max deviation of 'height_variation'. The scenefile is defined by the variable 'scene'. A metadata file is automatically written to the output location indicating all the parameters used in the survey.

merge_output.py - Merges output of test data generation as generated by test_data_generator.py. Script must be run from 'helios_dir/output/Survey Playback' folder. param lasmerge: path to lasmerge executable param outdir: path to which merged files will be written and metadata files will be copied

param_estimation_vis.ipynb - Jupyter Notebook with workflow of parameter estimation (flight altitude, flight speed, flight trajectory). Steps are visualised with matplotlib plots.

generate_surveys.py - Script used to generate HELIOS++ surveys for flights over teton conservation dataset. Flight lines were entered manually from paramter estimation.

intersect_poly.py - Calculate intersections for corresponding swaths in two point clouds. Indice pairs were assessed visually.

intersect_poly1.py - Takes two wkt polygons, calculates intersection and plots both polygons and the intersection to matplotlib. Used here to create a figure.

lascolumn_check.py - Check las point clouds for unique values in columns. Reads each column present in data. Prints table with results and a column for each point record. If all values in column are the same, sets value in variation flag column to 0. Else to 1.

param_estimate_multiple_strips.py - Example usage of functions from 'funcs.py' to estimate acquisition parameters from a point cloud. Estimates the flight altitude, flight speed, trajectory and prf and writes results to a file. Assumes existence of metadata file as written by 'test_data_generator.py' which contains some metadata on point cloud.

plot_hists.py - Plots and compares histograms of distribution of points along x y and z axis for two point clouds.

plot_trajectoris.py - Plots estimated trajectories from a tab_results file as generated by function 'write_results_tab' in funcs.py.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published