Scanners and platforms

[1]:
import helios

Predefined

HELIOS++ comes with a list of predefined scanners and platforms:

[2]:
helios.list_scanners()
[2]:
['leica_als50',
 'leica_als50_ii',
 'optech_2033',
 'optech_3100',
 'optech_galaxy',
 'riegl_lms_q560',
 'riegl_lms_q780',
 'riegl_vq_780i',
 'riegl_vux_1uav',
 'riegl_vux_1uav22',
 'riegl_vux_1ha22',
 'riegl_vq_880g',
 'riegl_vq_1560i',
 'livox_mid70',
 'livox_mid100',
 'livox_mid100a',
 'livox_mid100b',
 'livox_mid100c',
 'dji_zenmuse_l2_repetitive',
 'dji_zenmuse_l2_non_repetitive',
 'riegl_vz_400',
 'riegl_vz_1000',
 'riegl_vz_2000i',
 'riegl_vz_600i',
 'riegl_vq_450',
 'livox_mid40',
 'livox_mid70_tls',
 'vlp16',
 'velodyne_hdl_64e',
 'tractor_scanner',
 'pano_scanner']
[3]:
helios.list_platforms()
[3]:
['sr22',
 'quadcopter',
 'copter_linearpath',
 'tractor',
 'tractor_leftside',
 'vehicle_linearpath',
 'vmx_450_car_left',
 'vmx_450_car_right',
 'vmq_1ha_car',
 'simple_linearpath',
 'tripod']

A scanner and platform can then be selected by name:

[4]:
scanner = helios.scanner_from_name("riegl_vz_600i")
platform = helios.platform_from_name("tripod")

Custom

To use custom scanners and platforms, these have to be defined in an XML file (see Scanners and platforms) and then loaded from this XML. A custom scanner can then be instantiated like this:

[5]:
my_scanner_file = "../data/test/test_scanners.xml"
custom_scanner = helios.Scanner.from_xml(my_scanner_file, scanner_id="livox-mid-100a")