Python script opalsHelios
See also
python.packages.opalsHelios

Aim of module

Runs an ALS Simulation using Helios.

General description

The Python script opalsHelios script provides a framework for simulating LiDAR data acquisition with the "Heidelberg LiDAR Operations Simulator - HELIOS++" (Winiwarter et al., 2022). Detailed documentation as well as tutorials for HELIOS++ are provided online: https://github.com/3dgeo-heidelberg/helios/wiki

The basic entity of HELIOS++ is a survey defined in a survey-XML file (survey). It consists of one or more legs, i.e. strips in case of kinematic LiDAR or standpoints for static LiDAR. Each survey is carried out by one scanner (specified by scanner-XML and ID, scanner) mounted on one platform (platform-XML and ID, platform). However, respective settings for both can be adapted for each leg. (Attention! Python script opalsHelios prioritizes scanner settings as follows: leg-wise scanner settings from survey-XML > direct inputs to the script > global scanner settings from survey-XML.) Additionally, there is a number of pre-defined scanners and platforms coming with the HELIOS++ installation. The last important component of each survey is the scene to be scanned, defined in another XML file. A scene can be built using GeoTIFF height models or XYZ point clouds, but also by arbitrarily placing specific objects (e.g. trees, buildings,...).

In addition to the scope of HELIOS++, Python script opalsHelios offers the following features:

  • Automated standard XML search: If using a platform/scanner definition from the original XML files (scanners_als.xml, platforms.xml) coming with the HELIOS++ installation, the path to these XML files can be omitted. For example, the input "./addons/helios/data/scanners_als.xml#riegl_vux-1uav" can be simplified to "riegl_vux-1uav".
  • Combination of more scanners: The scanner parameter allows to specify an arbitrary amount of scanners. In the case of N scanners, the scanner settings (scanAngle, scanRate, prr, beamDivergence) expect 1 or N inputs - one for all scanners or one for each scanner individually. The prioritization mentioned above allows scanner-wise settings while also considering settings for individual legs (from survey-XML).
  • Outputs in ODM format: All simulated point clouds are written to the output directory (outFile) as Opals Data Manager (ODM) files in order to faciliate further processing with opals. The files are named according the respective leg and scanner.

Parameter description

-survey Path to XML file with Helios survey definition
Type : PathArgument
Remark : mandatory
Description:
-scanner [TemplateXML]#[ID] for one or more scanners
Type : String
Remark : optional
Description:
-platform [TemplateXML]#[ID] for one platform
Type : String
Remark : optional
Description:
-scene [TemplateXML]#[ID] defining a scene (raster DEM not yet supported)
Type : PathArgument
Remark : optional
Description:
-scanAngle Half scan angle [deg], possible values defined in scanner file
Type : Floating-point number
Remark : optional
Description:
-scanRate Scanning frequency [Hz], possible values defined in scanner file
Type : Floating-point number
Remark : optional
Description:
-prr Pulse repetition rate [Hz], possible values defined in scanner file
Type : Floating-point number
Remark : optional
Description:
-beamDivergence Beam divergence [rad], possible values defined in scanner file
Type : Floating-point number
Remark : optional
Description:
-heliosLogLevel Helios Log Level [Silent|Quiet|Default|Verbose|Verbose2] (default: default)
Type : String
Remark : optional, default: 'default'
Description:
-projectDir -
Type : PathArgument
Remark : optional, default:
Description: Root directory for the project, default=cwd
-temp Directory for temporary files (default: temp)
Type : PathArgument
Remark : optional, default: temp
Description:
-outFile Directory for final outputs [estimable]
Type : PathArgument
Remark : optional, default:
Description:
-skipIfExists - (default: Boolean(True))
Type : Boolean
Remark : optional, default: Boolean(True)
Description: Skip processing if result already exists
Possible values:
11
00
truetrue
falsefalse
yesyes
nono
Boolean(True)Boolean(True)
Boolean(False)Boolean(False)
TrueTrue
FalseFalse
-screenLogLevel Verbosity level of screen output (default: info)
Type : fromStr
Remark : optional, default: info
Description:
-fileLogLevel Verbosity level of log file output (default: info)
Type : fromStr
Remark : optional, default: info
Description:

Examples

The data used in the following examples can be found in the $OPALS_ROOT/demo/ directory.

Example 1: Simulate ALS compaine

The following command simulates a small ALS compaine using a Riegl VQ-1560i scanner that matches real data provided in Example 1: Laser scanning strip adjustment

opalsHelios -survey helios/als_melk_sim.xml -scanner riegl_vq-1560i_1 -platform sr22

References

Winiwarter, L., Esmorís Pena, A., Weiser, H., Anders, K., Martínez Sanchez, J., Searle, M., Höfle, B. (2022): Virtual laser scanning with HELIOS++: A novel take on ray tracing-based simulation of topographic full-waveform 3D laser scanning. Remote Sensing of Environment, 269, doi:10.1016/j.rse.2021.112772

Author
mwimmer
Date
22.02.2022
@ scanner
sessions.adjustment.scanner group(opalsStripAdjust)