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.
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
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.