Version 7 (modified by besm, 11 years ago) (diff)

--

Overview

The workflow of alsproc, modelled after the hyperspectral processing software APL, generally works as such:

As the processor you will use generate_alsproc_config to create a configuration file, edit this with a text editor to fill in any parameters specific or special to your flight, then instruct alsproc to perform the operations described in the .cfg file. You'll need to validate your data before you proceed onto any other steps, and address any issues with the processed data by making further changes to the configuration file or notifying the maintainer or calibrator of any issues upstream.

Configure

The configuration file is made with the generate_alsproc_config.py program. It will examine your current working directory and derive a project directory, from which it will determine the best available calibration to base your configuration file on, and populate it with information derived from your flightlines. This can take a while, as it needs to perform a cursory check on all of the raw data.

generate_alsproc_config

Example:

airborne@pmpc1322:/users/rsg/arsf/arsf_data/2013/flight_data/uk/RG12_09-2013_121_Wessex# generate_alsproc_config
Gathering details about project...
Using calibration file (/users/rsg/arsf/calibration/lidar/20130219/als50.cfg)...
Collating details for .cfg file...
Writing .cfg file
Scanning flightline 130501_093511... ok
Scanning flightline 130501_094820... ok
Scanning flightline 130501_100234... ok
Scanning flightline 130501_101637... ok
Scanning flightline 130501_102953... ok
Scanning flightline 130501_104304... ok
Scanning flightline 130501_105631... ok
Scanning flightline 130501_113351... ok
Scanning flightline 130501_114825... ok
Scanning flightline 130501_120434... ok
Scanning flightline 130501_121952... ok
Scanning flightline 130501_123433... ok
Scanning flightline 130501_125655... not ok, check failed on duration
all done

Flightlines which alsproc thinks it might not be able to process based on this check will be flagged here, as in the case of the last flightline, and not be marked to be processed.

Next, edit the .cfg file created as a result. If you did not specify, it will be under processing/als50/.

Fields of particular interest to you as a data processor are:

  • output-format - can normally be left as the default
  • output-projection - will need to be set per-flight depending on where the flight is based, consult the projections table below
  • output_dir - default is probably fine, but it can be useful to change, especially when working on the pitch and roll values later
  • sol-file - change this to the location of the sol file created during navigation processing, it may already be filled in for you
  • sup-file - as with the sol file
Projection Use-Case output-projection
British National Grid all British flights ukbng
UTM everywhere else utm zone=<zone number> hemisphere=<n/s> hrz_datum=wgs84 vrt_datum=wgs84

You will then see a section for each flightline. process_line should be set to true for each flightline unless there was some problem, in which case the maintainer for alsproc should be contacted.

[110618_090736]
output-file = %(output_dir)s/ldr110618_090736%(output-file-ext)s
process_line = true
line_number = 1

# GMT 09:07:52 to 09:08:39, 47.3 seconds
start-time = 1640,551272.000006
end-time = 1640,551319.282274
delta-avg-diff = 0.000006667852
scanner-fov = 18.932618
scan-rate = 58.214212
multi-pulse = false

Generate

Alsproc is fed its arguments with the wrapper script alsproc_batch.py, which also handles certain LiDAR preformatting if using las12_las.

alsproc processing/als50/2013121.cfg

Log files will be kept for each flightline in the directory specified by log_dir in the configuration file, for your use if alsproc should suffer from some processing error.

Pitch and Roll Errors

First you will need to generate an initial dataset to base some observations off

airborne@pmpc1322:/users/rsg/arsf/arsf_data/2013/flight_data/uk/GB13_05-2013_144_Glenmore/processing/als50# generate_alsproc_config 
Gathering details about project...
Using calibration file (/users/rsg/arsf/calibration/lidar/20130219/als50.cfg)...
Collating details for .cfg file...
Writing .cfg file
Scanning flightline 130524_130407... ok
Scanning flightline 130524_130807... ok
Scanning flightline 130524_131239... ok
Scanning flightline 130524_131711... ok
Scanning flightline 130524_132140... ok
Scanning flightline 130524_132606... ok
Scanning flightline 130524_133035... ok
Scanning flightline 130524_133540... ok
Scanning flightline 130524_134001... ok
Scanning flightline 130524_134447... ok
Scanning flightline 130524_134927... ok
Scanning flightline 130524_135443... ok
Scanning flightline 130524_135900... ok
Scanning flightline 130524_140340... ok
Scanning flightline 130524_140918... ok
Scanning flightline 130524_141340... ok
Scanning flightline 130524_141645... ok
Scanning flightline 130524_142158... ok
Scanning flightline 130524_142738... ok
all done

Then edit the resulting .cfg file and set the appropriate fields. Example:

output-projection = +init=epsg:27700 +nadgrids=/users/rsg/arsf/usr/share/proj/OSTN02_NTv2.gsb +geoidgrids=/users/rsg/arsf/usr/share/proj/osgm02_wgs.gtx
sol-file = %(project_dir)s/posatt/ipas_honeywell/proc/20130524_103914.sol
sup-file = %(project_dir)s/posatt/ipas_honeywell/proc/20130524_103914.sup

output-projection is set according to global position. This is a UK flight so I have selected the British National Grid.

sol-file and sup-file have been set according to what was created during the navigation processing.

Then process the dataset. This can take a while; 20 minutes to 20 hours depending on the size of the dataset and load on the network. On early iterations, you may identify just a few flightlines and focus your efforts on those, but you must check flightlines from across the entire dataset, as pitch and roll has been known to change over the course of a flight in the most unfortunate cases.

alsproc 2013144.cfg

<TO BE CONTINUED>

Attachments (3)

Download all attachments as: .zip