» RIEGL Point Attributes

Following table shows point attributes of point clouds acquired by RIEGL instruments.
Please note, that not all point attributes are available for all instrument types or software applications.
Group "Coordinates/Vectors"
# Name Title Unit Length Resolution Minimum Maximum Default Invalid Origin Storage Compression Tags Values Description
1 riegl.xyz XYZ m 3 0.00025 -535000.0 535000.0 0.0 scanner variable shuffle position, transform Cartesian point coordinates wrt. application coordinate system (0: X, 1: Y, 2: Z)
2 riegl.xyz_socs XYZ SOCS m 3 0.00025 -535000.0 535000.0 0.0 scanner variable delta position Cartesian point coordinates wrt. scanner's coordinate system (0: X, 1: Y, 2: Z)
3 riegl.xyz_lvcs XYZ LVCS m 3 0.1 -10000.0 10000.0 0.0 software variable shuffle position Cartesian point coordinates wrt. levelled vehicle coordinate system (0: X, 1: Y, 2: Z)
4 riegl.xyz_map XYZ Map m 3 0.00025 -20037508.343 20037508.343 0.0 software variable shuffle position, transform Point coordinates wrt. a projected CRS (e.g. Web Mercator EPSG:3857, 0: Easting, 1: Northing, 2: Height)
5 riegl.xyz_map_min XYZ Map Minimum m 3 0.00025 0.0 1000.0 0.0 software variable shuffle direction, transform Minimum distances to the voxel corner (0: dx, 1: dy, 2: dz)
6 riegl.xyz_map_max XYZ Map Maximum m 3 0.00025 0.0 1000.0 0.0 software variable shuffle direction, transform Maximum distances to the voxel corner (0: dx, 1: dy, 2: dz)
7 riegl.xy_map XY Map m 2 0.00933069192934280443318950659659094526432454586029052734375 -20037508.3427892439067363739013671875 20037508.333458550274372100830078125 0.0 software variable shuffle position, transform Point coordinates wrt. a projected CRS (e.g. Web Mercator EPSG:3857, 0: Easting, 1: Northing)
8 riegl.xyz_corrections XYZ Corrections m 3 0.00025 -5000.0 5000.0 0.0 software variable shuffle direction, transform Corrections that were applied (added) to the Cartesian point coordinates (0: X, 1: Y, 2: Z)
9 riegl.range Range m 1 0.00025 0.0 50000.0 0.0 scanner variable shuffle Target distance wrt. SOCS origin
10 riegl.theta Theta deg 1 1.0e-6 0.0 180.0 0.0 scanner variable default Polar angle (inclination) wrt. SOCS (0..180°)
11 riegl.phi Phi deg 1 1.0e-6 0.0 360.0 0.0 scanner variable default Azimuthal angle wrt. SOCS (0..360°)
12 riegl.scanner_position Scanner Position m 3 0.00025 -535000.0 535000.0 0.0 software variable shuffle position, transform Cartesian coordinates of the scanner position wrt. application coordinate system (0: X, 1: Y, 2: Z)
13 riegl.direction Direction 3 3.125e-05 -1.0 1.0 0.0 scanner variable default direction, transform Laser beam direction vector wrt. application coordinate system (0: X, 1: Y, 2: Z)
14 riegl.direction_medium Direction 3 0.0007 -1.0 1.0 0.0 scanner variable delta direction, transform Laser beam direction vector wrt. application coordinate system (0: X, 1: Y, 2: Z)
15 riegl.direction_coarse Direction 3 0.015 -1.0 1.0 0.0 scanner variable default direction, transform Coarse laser beam direction vector wrt. application coordinate system (0: X, 1: Y, 2: Z)
16 riegl.shot_origin Laser Shot Origin m 3 250.0e-6 -8.0 8.0 0.0 scanner constant shuffle position Laser beam origin wrt. SOCS (0: X, 1: Y, 2: Z)
17 riegl.shot_biaxial_shift Laser Shot Biaxial Shift m 3 250.0e-6 -1.0 1.0 0.0 scanner constant shuffle direction Laser beam biaxial shift vector wrt. SOCS (0: X, 1: Y, 2: Z)
18 riegl.shot_direction Laser Shot Direction 3 250.0e-9 -1.0 1.0 0.0 scanner constant shuffle direction Laser beam direction vector wrt. SOCS (0: X, 1: Y, 2: Z)
19 riegl.shot_direction_levelled Laser Shot Direction Levelled 3 250.0e-9 -1.0 1.0 0.0 scanner variable shuffle direction, transform Laser beam direction vector wrt. ROCS (0: X, 1: Y, 2: Z)
20 riegl.surface_normal Surface Normal 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Target surface normal vector wrt. application coordinate system (0: X, 1: Y, 2: Z)
21 riegl.point_vector Point Vector 3 0.0005 -1.0 1.0 0.0 software variable shuffle direction, transform Vector derived from PCA on neighborhood: normal vector for planar and volumetric neighborhoods, direction vector for linear neighborhoods
22 riegl.plane_up Plane Patch Up Vector 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Direction vector of shorter edge of plane patch wrt. application coordinate system (0: X, 1: Y, 2: Z)
25 riegl.pca_axis_min PCA Axis Minimum 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform The eigenvector that belongs to the smallest eigenvalue (result of PCA, 0: X, 1: Y, 2: Z)
26 riegl.pca_axis_max PCA Axis Maximum 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform The eigenvector that belongs to the greatest eigenvalue (result of PCA, 0: X, 1: Y, 2: Z)
27 riegl.model_cs_axis_x Model CS X-Axis 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Direction of x-axis of model coordinate system wrt. application coordinate system (0: X, 1: Y, 2: Z)
28 riegl.model_cs_axis_y Model CS Y-Axis 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Direction of y-axis of model coordinate system wrt. application coordinate system (0: X, 1: Y, 2: Z)
29 riegl.model_cs_axis_z Model CS Z-Axis 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Direction of z-axis of model coordinate system wrt. application coordinate system (0: X, 1: Y, 2: Z)
30 riegl.cylinder_axis_direction Cylinder Axis Direction 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Normalized cylinder axis direction vector
31 riegl.accelerometer Accelerometer Values m/s² 3 5.0e-6 -300.0 300.0 -300.0 -300.0 scanner variable delta direction Processed values of an accelerometer
32 riegl.gyroscope Gyroscope Values deg/s 3 1.0e-7 -2000.0 2000.0 -2000.0 -2000.0 scanner variable delta direction Processed values of a gyroscope
33 riegl.magnetic_field_sensor Magnetic Field Sensor Values µT 3 0.01 -1000.0 1000.0 -1000.0 -1000.0 scanner variable delta direction Processed values of a magnetic field sensor
34 riegl.accelerometer_raw Accelerometer Raw Values 3 1.0 -32768.0 32767.0 -32768.0 -32768.0 scanner variable delta direction Raw measurement values of an accelerometer (unit see metadata riegl.pose_sensors)
35 riegl.gyroscope_raw Gyroscope Raw Values 3 1.0 -32768.0 32767.0 -32768.0 -32768.0 scanner variable delta direction Raw measurement values of a gyroscope (unit see metadata riegl.pose_sensors)
36 riegl.magnetic_field_sensor_raw Magnetic Field Sensor Raw Values 3 1.0 -32768.0 32767.0 -32768.0 -32768.0 scanner variable delta direction Raw measurement values of a magnetic field sensor (unit see metadata riegl.pose_sensors)
37 riegl.pof_latitude Latitude deg 1 1.0e-9 -90.0 90.0 0.0 software variable delta+shuffle Geodetic (Geographic) Latitude
38 riegl.pof_longitude Longitude deg 1 1.0e-9 -180.0 180.0 0.0 software variable delta+shuffle Geodetic (Geographic) Longitude
39 riegl.pof_height Ellipsoidal Height m 1 250.0e-6 -10000.0 40000.0 0.0 software variable delta+shuffle Height (vertical distance) wrt. to the ellipsoid of the defined geodetic datum
40 riegl.pof_roll Roll Angle deg 1 1.0e-6 -180.0 180.0 0.0 software variable delta+shuffle Rotation about the body axis pointing in forward direction (x-axis for NED systems)
41 riegl.pof_pitch Pitch Angle deg 1 1.0e-6 -180.0 180.0 0.0 software variable delta+shuffle Rotation about the body axis pointing in transverse direction (y-axis for NED systems)
42 riegl.pof_yaw Yaw Angle deg 1 1.0e-6 0.0 360.0 0.0 software variable delta+shuffle Rotation about the body axis pointing in vertical direction (z-axis for NED systems)
43 riegl.pof_xyz XYZ m 3 0.00025 -535000.0 535000.0 0.0 scanner variable shuffle position, transform Position of the platform in the coordinate system defined by the geo_tag (0: X, 1: Y, 2: Z)
44 riegl.pof_roll_ned Roll Angle NED deg 1 1.0e-6 -180.0 180.0 0.0 software variable delta+shuffle Rotation about y-axis of the coordinate system defined by the geo_tag
45 riegl.pof_pitch_ned Pitch Angle NED deg 1 1.0e-6 -180.0 180.0 0.0 software variable delta+shuffle Rotation about x-axis of the coordinate system defined by the geo_tag
46 riegl.pof_yaw_ned Yaw Angle NED deg 1 1.0e-6 0.0 360.0 0.0 software variable delta+shuffle Rotation about inverted z-axis of the coordinate system defined by the geo_tag
47 riegl.pof_xyz_velocity XYZ Velocity m/s 3 0.01 -200.0 200.0 0.0 software variable shuffle direction, transform Velocity vector of the platform in the coordinate system defined by the geo_tag (0: X, 1: Y, 2: Z)
48 riegl.pof_xyz_lvcs_velocity XYZ LVCS Velocity m/s 3 0.01 -200.0 200.0 0.0 software variable shuffle direction Velocity vector of the platform wrt. levelled vehicle coordinate system (0: X, 1: Y, 2: Z)
49 riegl.pof_yaw_velocity Yaw Angle Velocity deg/s 1 0.05 -1000.0 1000.0 0.0 software variable shuffle Rotation velocity about inverted z-axis of the coordinate system defined by the geo_tag
50 riegl.hydro_intersection_point Water Surface Intersection Point m 3 0.00025 -535000.0 535000.0 0.0 software variable shuffle position, transform Water surface intersection point coordinates wrt. application coordinate system (0: X, 1: Y, 2: Z)
51 riegl.hydro_intersection_normal Water Surface Intersection Normal 3 3.125e-05 -1.0 1.0 0.0 software variable default direction, transform Water surface intersection normal vector wrt. application coordinate system (0: X, 1: Y, 2: Z)
52 riegl.hydro_wsm_uncertainty Water Surface Model Uncertainty m 3 0.0001 -3.2768 3.2767 0.0 software variable default direction, transform Water surface model uncertainty (0: X, 1: Y, 2: Z)
53 riegl.xyz_accuracies XYZ Accuracies m 3 0.00025 0.0 1000.0 0.0 software variable shuffle direction, transform Accuracy of Cartesian coordinates (0: X, 1: Y, 2: Z)
54 riegl.zenith_vector Zenith Vector 3 3.125e-05 -1.0 1.0 0.0 software variable shuffle direction, transform Direction of zenith vector wrt. application coordinate system (0: X, 1: Y, 2: Z)
Group "Time"
# Name Title Unit Length Resolution Minimum Maximum Default Invalid Origin Storage Compression Tags Values Description
55 riegl.shot_timestamp_hr Laser Shot Timestamp 4ps 1 1.0 0.0 9.0e18 0.0 scanner constant delta timestamp Laser shot timestamp (in units of 4 pico seconds = 4e-12 s)
56 riegl.timestamp Timestamp s 1 1.0e-7 0.0 9.0e8 0.0 scanner variable shuffle timestamp Laser shot timestamp (100 nano seconds resolution)
57 riegl.wfm_sbl_time_offset Waveform Sample Block Time Offset 4ps 1 1.0 -2.0e9 2.0e9 0.0 software constant shuffle Start of waveform sample block relative to laser shot timestamp (in units of 4 pico seconds = 4e-12 s)
58 riegl.wfm_echo_time_offset Echo Time Offset 4ps 1 1.0 -2.0e9 2.0e9 0.0 software constant shuffle Position of echo relative to start of waveform sample block (in units of 4 pico seconds = 4e-12 s)
59 riegl.pps_timestamp_extern External Timestamp s 1 1.0e-7 0.0 9.0e8 0.0 scanner variable delta timestamp External timestamp (100 nano seconds resolution)
60 riegl.pps_timestamp_intern Internal Timestamp 4ps 1 1.0 0.0 9.0e18 0.0 scanner variable delta Internal timestamp (in units of 4 pico seconds = 4e-12 s)
61 riegl.event_timestamp Event Timestamp s 1 1e-07 0.0 900000000.0 0.0 software variable delta timestamp Timestamp of event (seconds since epoch defined in riegl.time_base)
62 riegl.timestamp_min Timestamp Minimum s 1 1.0e-7 0.0 9.0e8 0.0 software variable shuffle timestamp Minimum laser shot timestamp within voxel (100 nano seconds resolution)
63 riegl.timestamp_max Timestamp Maximum s 1 1.0e-7 0.0 9.0e8 0.0 software variable shuffle timestamp Maximum laser shot timestamp within voxel (100 nano seconds resolution)
64 riegl.pof_timestamp Timestamp s 1 1.0e-7 0.0 9.0e8 0.0 software variable delta+shuffle timestamp Timestamp (100 nano seconds resolution)
65 riegl.acquisition_date Acquisition Date 3 1.0 0.0 4095.0 0.0 0.0 software variable shuffle Date of acquisition (0: year, 1: month [1-12], 2: day [1-31], not specified if any is 0)
Group "Primary Attributes"
# Name Title Unit Length Resolution Minimum Maximum Default Invalid Origin Storage Compression Tags Values Description
66 riegl.reflectance Reflectance dB 1 0.01 -327.68 327.67 0.0 -327.68 scanner variable shuffle Target surface reflectance
67 riegl.amplitude Amplitude dB 1 0.01 -327.68 327.67 0.0 -327.68 scanner constant shuffle Echo signal amplitude
68 riegl.intensity Intensity 1 1.0 0.0 65535.0 0.0 scanner constant shuffle Uncalibrated echo signal amplitude (for legacy RIEGL LMS instruments)
69 riegl.gain Gain dB 1 0.01 -327.68 327.67 0.0 scanner constant shuffle Gain of photodiode
70 riegl.deviation Deviation 1 1.0 -1.0 32767.0 0.0 -1.0 scanner constant shuffle Pulse shape deviation (negative means unavailable)
71 riegl.pulse_width Pulse Width ns 1 0.1 0.0 6553.5 0.0 0.0 scanner constant shuffle Pulse width (full width at half maximum, for Q-Series instruments, 0 = invalid)
72 riegl.class Point Class 1 1.0 0.0 65535.0 0.0 software variable shuffle enumeration 0 = Created, never classified
Point class number
73 riegl.rgba True Color 4 1.0 0.0 255.0 0.0 software variable default color Point color derived from digital camera, 0: Red, 1: Green, 2: Blue, 3: Alpha (0 = no color); additional colors (if any) are stored in riegl.rgba_2, riegl.rgba_3, ...
74 riegl.nir Near Infrared Brightness 1 1.0 0.0 65535.0 0.0 software variable default Point near infrared (NIR) value derived from NIR camera
75 riegl.temperature Temperature °C 1 0.001 -273.15 4.0e6 4.0e6 4.0e6 software variable shuffle Target temperature measured by thermal camera
76 riegl.mta_zone MTA Zone Assigned 1 1.0 1.0 255.0 1.0 software variable default enumeration Index of assigned MTA zone. Nearest MTA zone has index 1
77 riegl.mta_uncertain_point MTA Uncertain Point 1 1.0 0.0 1.0 0.0 software variable default boolean 1 for points with uncertain MTA zone assignment, 0 for certainly assigned MTA zone
78 riegl.fwa Full Waveform Analysis 1 1.0 0.0 1.0 0.0 software variable default boolean 0 = Origin OWP
1 = Origin FWA
1 for all points originating from a full waveform analysis (FWA), 0 for all points originating from online waveform processing (OWP)
79 riegl.background_radiation Background Radiation 1 1.0 0.0 65535.0 0.0 scanner variable shuffle Background Radiation (for VZ-400-HT/HAT only)
80 riegl.background_radiation_si Background Radiation Si-PD 1 1.0 0.0 65535.0 0.0 65535.0 scanner variable shuffle Background Radiation (for VZ-400-HTo only, Si-PD)
81 riegl.background_radiation_ingaas Background Radiation InGaAs-PD 1 1.0 0.0 65535.0 0.0 65535.0 scanner variable shuffle Background Radiation (for VZ-400-HTo only, InGaAs-PD)
82 riegl.temperature_estimated_si Temperature Estimated Si-PD °C 1 1.0 -1.0 2000.0 0.0 -1.0 software variable shuffle Estimated temperature derived from Background Radiation Si-PD
83 riegl.temperature_estimated_ingaas Temperature Estimated InGaAs-PD °C 1 1.0 -1.0 2000.0 0.0 -1.0 software variable shuffle Estimated temperature derived from Background Radiation InGaAs-PD
84 riegl.temperature_estimated_ingaas_si Temperature Estimated InGaAs/Si-PD °C 1 1.0 -1.0 2000.0 0.0 -1.0 software variable shuffle Estimated temperature derived from difference in Background Radiation InGaAs and Si
85 riegl.target_index Target Index 1 1.0 0.0 255.0 1.0 0.0 scanner variable default nth target of a laser-shot (0 = unknown, 1 = first target, ...)
86 riegl.target_count Target Count 1 1.0 0.0 255.0 1.0 0.0 scanner variable default Number of targets of a laser-shot (0 = unknown, 1 = one target, ...)
87 riegl.target_type Target Type 1 1.0 0.0 4.0 0.0 0.0 scanner variable default enumeration 1 = Single target
2 = First target
3 = Intermediate target
4 = Last target
Target rank among all targets of a laser-shot (0 = unknown, 1 = single, 2 = first, 3 = intermediate, 4 = last target)
88 riegl.echo_first Echo First 1 1.0 0.0 1.0e12 0.0 0.0 software constant delta Identifier of first echo that belongs to the laser shot (0 = invalid). This is not an array index but the value of riegl.id of the echo.
89 riegl.echo_count Echo Count 1 1.0 0.0 65535.0 0.0 software constant shuffle Number of echoes that belong to the laser shot
90 riegl.height_center Height Center m 1 0.00025 -100000.0 100000.0 0.0 software variable shuffle Height at center of grid cell
91 riegl.height_mean Height Mean m 1 0.00025 -100000.0 100000.0 0.0 software variable shuffle Mean height within grid cell
92 riegl.height_min Height Minimum m 1 0.00025 -100000.0 100000.0 0.0 software variable shuffle Minimum height within grid cell
93 riegl.height_max Height Maximum m 1 0.00025 -100000.0 100000.0 0.0 software variable shuffle Maximum height within grid cell
94 riegl.point_count Point Count 1 1.0 0.0 4294967295.0 0.0 0.0 software variable shuffle Number of points this point represents (e.g. points combined to voxels or plane patches, 0 = unknown)
95 riegl.point_count_grid_cell Point Count of Grid Cell 1 1.0 0.0 4294967295.0 0.0 0.0 software variable shuffle Number of total points in a grid cell this point represents.
96 riegl.pca_extents PCA Extents m 3 0.00025 0.0 1000.0 0.0 software variable shuffle Volume extents along 0: riegl.pca_axis_max, 1: riegl.pca_axis_min x riegl.pca_axis_max, 2: riegl.pca_axis_min
97 riegl.pca_thickness PCA Thickness m 1 0.00025 0.0 1000.0 0.0 software variable shuffle Volume extents along riegl.pca_axis_min or riegl.surface_normal (result of PCA)
98 riegl.pca_diameter PCA Diameter of Neighborhood m 1 0.001 0.0 1000.0 0.0 software variable shuffle Representative diameter of the neighborhood, calculated as sqrt(12*sum_of_eigenvalues/number_of_points)
99 riegl.eigenvalue_norm_min PCA Minimum Eigen Value Normalized 1 1.52591e-05 0.0 1.0 0.0 software variable shuffle The smallest eigenvalue from PCA normalized by the sum of all eigenvalues
100 riegl.eigenvalue_norm_max PCA Maximum Eigen Value Normalized 1 1.52591e-05 0.0 1.0 0.0 software variable shuffle The largest eigenvalue from PCA normalized by the sum of all eigenvalues
101 riegl.std_dev Standard Deviation m 1 0.0001 0.0 65.535 0.0 0.0 software variable shuffle Standard deviation, e.g. of residual point-to-plane distances (0 = unknown)
102 riegl.plane_confidence_normal Confidence Normal Direction deg 3 0.006 -180.006 180.0 0.0 -180.006 software variable shuffle Confidence ellipse for the normal vector of a plane patch (0: up-axis, 1: width-axis, tilt angle wrt. up-axis)
103 riegl.plane_slope_class Plane Patch Slope Class 1 1.0 0.0 255.0 0.0 0.0 software variable default enumeration Plane patch slope class number. Meaning see metadata riegl.plane_slope_class_info (0 = invalid)
104 riegl.plane_occupancy Plane Patch Occupancy 8 1.0 0.0 255.0 0.0 software variable default 8x8 occupancy matrix indicating point support of plane patch
105 riegl.plane_width Plane Patch Width m 1 0.001 0.0 1000.0 0.0 0.0 software variable shuffle Size of plane patch along the longer edge (0 = unknown)
106 riegl.plane_height Plane Patch Height m 1 0.001 0.0 1000.0 0.0 0.0 software variable shuffle Size of plane patch along the shorter edge (0 = unknown)
107 riegl.plane_count Plane Patch Count 1 1.0 0.0 65535.0 1.0 software variable shuffle For merged plane patches, the number of plane patches the merged plane patch is based on
108 riegl.match_count Plane Patch Match Count 1 1.0 0.0 65535.0 0.0 software variable shuffle The number of source plane patch files the plane patch has matches to
109 riegl.plane_patch_distance Plane Patch Distance m 1 0.00025 -2100.0 2000.0 -2100.0 -2100.0 software variable shuffle Distance between the origins of two plane patches, projected onto the average of their normal vectors
110 riegl.plane_patch_lateral_distance Plane Patch Lateral Distance m 1 0.00025 -2100.0 2000.0 -2100.0 -2100.0 software variable shuffle Distance between the origins of two plane patches, projected onto the plane defined by the average of their normal vectors
111 riegl.plane_patch_angular_distance Plane Patch Angular Distance deg 1 1.0e-6 -1.0 180.0 -1.0 -1.0 software variable shuffle Angle between the normal vectors of two plane patches
112 riegl.cylinder_radius Cylinder Radius m 1 0.00025 0.0 100.0 0.0 0.0 software variable default Radius of cylinder
113 riegl.cylinder_height Cylinder Height m 1 0.00025 0.0 1000.0 0.0 0.0 software variable default Height of cylinder (cylinder origin is at half height)
114 riegl.cylinder_origin_confidence Cylinder Origin Confidence m 1 0.0001 0.0 10.0 0.0 0.0 software variable default Confidence of estimated cylinder origin (perpendicular to axis)
115 riegl.cylinder_radius_confidence Cylinder Radius Confidence m 1 0.0001 0.0 10.0 0.0 0.0 software variable default Confidence of estimated cylinder radius
116 riegl.cylinder_direction_confidence Cylinder Direction Confidence deg 1 0.003 0.0 180.0 0.0 0.0 software variable default Confidence of estimated cylinder axis direction
117 riegl.cylinder_inlier_count Cylinder Inlier Count 1 1 0.0 16000000 0.0 0.0 software variable default Number of points used for cylinder fitting
118 riegl.cylinder_outlier_count Cylinder Outlier Count 1 1 0.0 16000000 0.0 0.0 software variable default Number of points not used for cylinder fitting
119 riegl.pof_accuracy_north Accuracy North m 1 1.0e-6 0.0 1000.0 0.0 software variable shuffle Accuracy in North direction (standard deviation)
120 riegl.pof_accuracy_east Accuracy East m 1 1.0e-6 0.0 1000.0 0.0 software variable shuffle Accuracy in East direction (standard deviation)
121 riegl.pof_accuracy_down Accuracy Down m 1 1.0e-6 0.0 1000.0 0.0 software variable shuffle Accuracy in Down direction (standard deviation)
122 riegl.pof_accuracy_north_east Accuracy North/East m 1 1.0e-6 -1000.0 1000.0 0.0 software variable shuffle Accuracy in North/East direction (signed square root of covariance)
123 riegl.pof_accuracy_east_down Accuracy East/Down m 1 1.0e-6 -1000.0 1000.0 0.0 software variable shuffle Accuracy in East/Down direction (signed square root of covariance)
124 riegl.pof_accuracy_down_north Accuracy Down/North m 1 1.0e-6 -1000.0 1000.0 0.0 software variable shuffle Accuracy in Down/North direction (signed square root of covariance)
125 riegl.pof_accuracy_roll Accuracy Roll deg 1 1.0e-6 0.0 360.0 0.0 software variable shuffle Accuracy of Roll rotation
126 riegl.pof_accuracy_pitch Accuracy Pitch deg 1 1.0e-6 0.0 360.0 0.0 software variable shuffle Accuracy of Pitch rotation
127 riegl.pof_accuracy_yaw Accuracy Yaw deg 1 1.0e-6 0.0 360.0 0.0 software variable shuffle Accuracy of Yaw rotation
128 riegl.wfm_sbl_channel Waveform Sample Block Channel 1 1.0 0.0 255.0 255.0 255.0 software constant default enumeration 0 = High power
1 = Low power
3 = Reference pulse
Waveform sample block channel number (255 = invalid)
129 riegl.wfm_sbl_mean Waveform Sample Value Mean 1 0.0625 0.0 4095.0 0.0 software constant shuffle Waveform sample value mean
130 riegl.wfm_sbl_std_dev Waveform Sample Value Standard Deviation 1 0.25 0.0 255.0 0.0 software constant shuffle Waveform sample value standard deviation
131 riegl.wfm_sbl_first Waveform Sample Block First 1 1.0 0.0 1.0e12 0.0 0.0 software constant delta Identifier of first waveform sample block that belongs to the laser shot (0 = invalid). This is not an array index but the value of riegl.id of the block.
132 riegl.wfm_sbl_count Waveform Sample Block Count 1 1.0 0.0 65535.0 0.0 software constant shuffle Number of waveform sample blocks that belong to the laser shot
133 riegl.wfm_sda_first Waveform Sample Data First 1 1.0 0.0 1.0e12 0.0 0.0 software constant delta Identifier of first waveform sample value that belongs to the sample block (0 = invalid). This is not an array index but the value of riegl.id of the sample.
134 riegl.wfm_sda_count Waveform Sample Data Count 1 1.0 0.0 65535.0 0.0 software constant shuffle Number of waveform sample values that belong to the sample block
135 riegl.wfm_sample_value Waveform Sample Value 1 1.0 0.0 65535.0 0.0 scanner constant shuffle Raw waveform sample value
136 riegl.control_object_type Control Object Type 1 1.0 -1.0 32767.0 -1.0 -1.0 software variable default enumeration Zero-based index of control object type listed in riegl.control_object_catalog (meta data entry)
137 riegl.model_fit_quality Model Fit Quality 1 0.001 0.0 1.0 0.0 software variable default Model fit quality value between 0 and 1 (0 = unspecified)
138 riegl.cp_surface_inclination_angle Surface Inclination Angle deg 1 0.01 0.0 180.0 0.0 software variable default Observed inclination angle of the surface in the vicinity of a control point. It is defined as the arccosine of the vertical component of the surface normal vector. Hence: angle = 0 deg: horizontal (floor); angle = 90 deg: vertical (wall); angle = 180 deg: horizontal (ceiling)
139 riegl.cp_surface_inclination_tolerance_angle Surface Inclination Tolerance Angle deg 1 0.01 0.0 180.0 180.0 software variable default Tolerance angle for the inclination of the surface in the vicinity of a control point
140 riegl.cp_surface_northing_angle Surface Northing Angle deg 1 0.01 0.0 360.0 0.0 software variable default Observed northing angle (azimuth) of the surface in the vicinity of a control point. It is defined as the angle of the horizontal component of the surface normal vector wrt. north direction (measured clockwise). Hence: 0 deg: North; 90 deg: East; 180 deg: South; 270 deg: West
141 riegl.cp_surface_northing_tolerance_angle Surface Northing Tolerance Angle deg 1 0.01 0.0 180.0 180.0 software variable default Tolerance angle for the northing angle of the surface in the vicinity of a control point
142 riegl.obs_confidence_xy XY Confidence of Observed Point m 1 1e-06 0.0 1000.0 0.0 0.0 software variable default Confidence value for xy position of observed point wrt. local observation coordinate system
143 riegl.obs_confidence_z Z Confidence of Observed Point m 1 1e-06 0.0 1000.0 0.0 0.0 software variable default Confidence value for z position of observed point wrt. local observation coordinate system
144 riegl.obs_confidence_range Positional Confidence of Observation in Radial Direction m 1 1e-06 0.0 1.0 0.0 0.0 software variable default Confidence of observation coordinates in local radial direction (range)
145 riegl.obs_confidence_theta Positional Confidence of Observation in Theta Direction deg 1 1e-06 0.0 1.0 0.0 0.0 software variable default Confidence of observation coordinates in local elevation direction (theta)
146 riegl.obs_confidence_phi Positional Confidence of Observation in Phi Direction deg 1 1e-06 0.0 1.0 0.0 0.0 software variable default Confidence of observation coordinates in local azimuth direction (phi)
147 riegl.obs_signal_confidence_rot Rotation Angle Confidence of Observed Signal deg 1 1e-06 0.0 360.0 0.0 0.0 software variable default Confidence value for rotation angle within plane of observed signal
148 riegl.used_for_adjustment Used for Adjustment 1 1.0 0.0 1.0 1.0 software variable default enumeration 0 = Used as verification point
1 = Used for adjustment
Flag indicating if observation shall be used for adjustment (0 = used as verification point; 1 = used for adjustment)
149 riegl.reference_object_id Reference Object ID 1 1.0 0.0 1000000000000.0 0.0 0.0 software variable shuffle ID (riegl.id) of a referenced object (0 = invalid)
150 riegl.event_index Event Index 1 1.0 0.0 4294967295.0 0.0 software variable delta Number of events in specific channel, separate counters for input and output
151 riegl.event_pulse_width Event Pulse Width ms 1 0.1 0.0 6553.5 0.0 0.0 software variable default Width of input pulse (0 = output pulse)
Group "Secondary Attributes"
# Name Title Unit Length Resolution Minimum Maximum Default Invalid Origin Storage Compression Tags Values Description
152 riegl.raw_range Raw Range m 1 0.00025 -50000.0 50000.0 0.0 scanner variable shuffle Raw range of echo
153 riegl.raw_line_angle Raw Line Angle deg 1 1e-6 0.0 360.0 0.0 scanner variable delta Raw line angle
154 riegl.raw_frame_angle Raw Frame Angle deg 1 1e-6 0.0 360.0 0.0 scanner variable delta Raw frame angle
155 riegl.line_angle_coarse Line Angle Coarse deg 1 0.025 0.0 360.0 0.0 scanner variable delta Coarse line scan angle
156 riegl.line_angle_reduced Line Angle Reduced deg 1 0.025 -360.0 360.0 0.0 scanner variable delta Reduced line scan angle
157 riegl.frame_angle_coarse Frame Angle Coarse deg 1 0.001 0.0 360.0 0.0 scanner variable delta Coarse frame scan angle
158 riegl.angle_of_incidence Angle of Incidence deg 1 0.01 0.0 90.0 0.0 software variable default Angle of incidence of the laser beam with respect to a planar neighborhood, normal incidence gives 0 deg
159 riegl.scan_line_index Scan Line Index 1 1.0 -2000000000.0 2000000000.0 0.0 software variable delta Scan Line Index in Scan
160 riegl.shot_index_line Laser Shot Index in Line 1 1.0 -2000000000.0 2000000000.0 0.0 software variable delta Laser Shot Index in Scan Line
161 riegl.mirror_facet Mirror Facet 1 1.0 0.0 15.0 0.0 0.0 scanner variable default enumeration Mirror facet number (0 = invalid, 1 = first facet, ...)
162 riegl.scan_segment Scan Segment 1 1.0 0.0 15.0 0.0 0.0 scanner constant default enumeration Scan segment number (0 = invalid, 1 = first segment, ...)
163 riegl.waveform_available Waveform Available 1 1.0 0.0 1.0 0.0 scanner constant default boolean 0 = No waveform available
1 = Waveform available
Waveform data available for laser-shot (0 = no, 1 = yes)
164 riegl.hydro_refraction_corrected Refraction Corrected 1 1.0 0.0 1.0 0.0 software variable default boolean 0 = No refraction correction applied
1 = Refraction correction applied
1 if the point was refraction corrected, 0 otherwise
165 riegl.extinction Extinction Coefficient dB/m 1 0.001 -30.0 30.0 0.0 software variable default Extinction coefficient, i.e. exponential damping coefficient usually present in water bodies. N.B.: The factor is subject to refraction correction.
166 riegl.svb_amplitude_volumetric SVB Volumetric Backscatter Amplitude dB 1 0.01 -327.68 327.67 0.0 software constant shuffle Amplitude from volumetric backscatter in SVB FWA
167 riegl.svb_reflectance_volumetric SVB Volumetric Backscatter Reflectance dB 1 0.01 -327.68 327.67 0.0 software variable shuffle Reflectance from volumetric backscatter in SVB FWA
168 riegl.svb_reflectance_bottom_uncorrected SVB Bottom Reflectance Uncorrected dB 1 0.01 -327.68 327.67 0.0 software variable shuffle Reflectance in SVB FWA of bottom return without correcting for the attenuation of the water column
169 riegl.svb_attenuation_volumetric SVB Attenuation of Bottom Return dB 1 0.01 0.0 100.0 0.0 software variable default Attenuation of the reflectance of bottom target due to backscatter and absorption in the water column in SVB FWA
170 riegl.svb_target_attenuation_coefficient_volumetric SVB Target Attenuation Coefficient dB/m 1 0.01 0.0 100.0 0.0 software variable default Bottom target amplitude is attenuated by svb_target_attenuation_coefficient_volumetric for every additional meter of target depth in the water column.
171 riegl.svb_surface SVB Surface Point 1 1.0 0.0 1.0 0.0 software variable default boolean Indicates surface point from SVB FWA (1 = surface)
172 riegl.svb_bottom SVB Bottom Point 1 1.0 0.0 1.0 0.0 software variable default boolean Indicates bottom point from SVB FWA (1 = bottom)
173 riegl.svb_path_length SVB Path Length m 1 0.004 0.0 200.0 0.0 software variable shuffle Path length between surface and bottom from SVB FWA
174 riegl.start_of_scan_line Start of Scan Line 1 1.0 0.0 1.0 0.0 scanner variable default boolean 1 for all points of the first laser shot of a scan line, 0 otherwise
175 riegl.end_of_scan_line End of Scan Line 1 1.0 0.0 1.0 0.0 scanner variable default boolean 1 for all points of the last laser shot of a scan line, 0 otherwise
176 riegl.scan_angle Scan Angle deg 1 0.096 -180.0 180.0 0.0 software variable delta see LAS format specification 1.4-R13
177 riegl.scan_direction Scan Direction 1 1.0 0.0 1.0 0.0 scanner variable default enumeration 0 = Negative
1 = Positive
see LAS format specification 1.4-R13
178 riegl.voxel_collapsed Voxel Collapsed with Neighbor 1 1.0 0.0 1.0 0.0 software variable default boolean Voxel has been collapsed with neighbor (0 = not collapsed, 1 = collapsed)
179 riegl.line_scan_active Line Scan Active 1 1.0 -1.0 1.0 -1.0 -1.0 scanner variable delta 1 if the mirror wheel rotates, 0 otherwise
180 riegl.frame_scan_active Frame Scan Active 1 1.0 -1.0 1.0 -1.0 -1.0 scanner variable delta 1 if the scanner head rotates, 0 otherwise
181 riegl.data_acquisition_active Data Acquisition Active 1 1.0 -1.0 1.0 -1.0 -1.0 scanner variable delta 1 if the data acquisition is in progress, 0 otherwise
182 riegl.plane_references Plane Patch References 2 1.0 0.0 1.0e12 0.0 0.0 software variable shuffle IDs (riegl.id) of plane patches this observation refers to (0 = invalid)
183 riegl.pof_path_length Path Length m 1 1.0e-3 0.0 4.0e6 0.0 software variable delta+shuffle Cumulative distance travelled
184 riegl.pof_pdop PDOP 1 0.01 0.0 100.0 0.0 software variable shuffle Position (3D) dilution of precision
185 riegl.pof_hdop HDOP 1 0.01 0.0 100.0 0.0 software variable shuffle Horizontal dilution of precision
186 riegl.pof_vdop VDOP 1 0.01 0.0 100.0 0.0 software variable shuffle Vertical dilution of precision
187 riegl.pof_age_of_corrections Age Of Corrections s 1 0.1 -1.0 1000.0 -1.0 -1.0 software variable default Age of GNSS RTK corrections (-1 = unknown)
188 riegl.pof_baseline_length Baseline Length m 1 0.1 0.0 1000000.0 0.0 software variable default Length of GNSS RTK baseline, i.e. the distance between the antennas of the base station and the rover
189 riegl.pof_solution_gnss GNSS Solution 1 1.0 0.0 8.0 0.0 0.0 software variable default enumeration 0 = GNSS fix invalid
1 = GNSS fix single
2 = GNSS fix DGPS
3 = GNSS fix time only
4 = GNSS fix RTK fixed
5 = GNSS fix RTK float
6 = GNSS fix estimated
7 = GNSS fix manual
8 = GNSS fix simulated
Solution type of GNSS
190 riegl.pof_satellites_gnss Number of GNSS Satellites 1 1.0 0.0 1000.0 0.0 software variable shuffle Total number of GNSS satellites that were used to calculate the position
191 riegl.pof_satellites_gps Number of GPS Satellites 1 1.0 0.0 1000.0 0.0 software variable shuffle Number of GPS satellites that were used to calculate the position
192 riegl.pof_satellites_glonass Number of GLONASS Satellites 1 1.0 0.0 1000.0 0.0 software variable shuffle Number of GLONASS satellites that were used to calculate the position
193 riegl.pof_satellites_beidou Number of Beidou Satellites 1 1.0 0.0 1000.0 0.0 software variable shuffle Number of Beidou satellites that were used to calculate the position
194 riegl.pof_satellites_galileo Number of Galileo Satellites 1 1.0 0.0 1000.0 0.0 software variable shuffle Number of Galileo satellites that were used to calculate the position
195 riegl.pof_satellites_qzss Number of QZSS Satellites 1 1.0 0.0 1000.0 0.0 software variable shuffle Number of Quasi-Zenith Satellite System (QZSS) satellites that were used to calculate the position
196 riegl.pixel_linear_sums Linear Sums m 3 1e-3 0.0 64000000.0 0.0 0.0 software variable shuffle Sums of the linear point distances to the pixel corner (0: dx, 1: dy, 2: dz)
197 riegl.pixel_square_sums Square Sums 6 1e-6 0.0 5120000000.0 0.0 0.0 software variable shuffle Sums of the square point distances to the pixel corner (0: dx*dx, 1: dy*dy, 2: dz*dz, 3: dx*dy, 4: dy*dz, 5: dx*dz)
198 riegl.shape_id Point Cloud Shape 1 1.0 0.0 3.0 0.0 0.0 software variable default enumeration 0 = Undefined
1 = Plane
2 = Line
3 = Volume
Estimated shape of point cloud (0 = undefined, 1 = plane, 2 = line, 3 = volume)
199 riegl.plane_cluster_id Plane Cluster ID 1 1.0 0.0 4000000000.0 0.0 0.0 software variable default The plane cluster ID this point belongs to (0 = no cluster)
200 riegl.segment_id Segment ID 1 1.0 0.0 4000000000.0 0.0 0.0 software variable default The segment ID this point belongs to (0 = no segment)
201 riegl.voxel_linear_sums Linear Sums m 3 2.5e-4 0.0 16000000.0 0.0 0.0 software variable shuffle Sums of the linear point distances to the voxel corner (0: dx, 1: dy, 2: dz)
202 riegl.voxel_square_sums Square Sums 6 6.25e-8 0.0 320000000.0 0.0 0.0 software variable shuffle Sums of the square point distances to the voxel corner (0: dx*dx, 1: dy*dy, 2: dz*dz, 3: dx*dy, 4: dy*dz, 5: dx*dz)
203 riegl.voxel_index Voxel Index 3 1.0 0.0 4294967295.0 0.0 software constant shuffle Integer coordinates of voxel corner
204 riegl.covariances Point Cloud Covariances 6 1.0e-6 -4.5e9 4.5e9 0.0 software variable shuffle Elements 00, 11, 22, 10, 21 and 20 (in that order) of point cloud covariance matrix
205 riegl.voxel_count Voxel Count 1 1.0 0.0 4294967295.0 0.0 0.0 software variable shuffle Number of voxels this point represents (e.g. voxels combined to pixels, 0 = unknown)
206 riegl.id PID 1 1.0 0.0 1.0e12 0.0 0.0 rdb constant shuffle Point identifier, unique within database (0 = invalid)
207 riegl.vertex_first Vertex First 1 1.0 0.0 4294967295.0 0.0 0.0 software variable default Identifier of first vertex that belongs to a geometry object (e.g. polyline) (0 = invalid)
208 riegl.vertex_count Vertex Count 1 1.0 0.0 65535.0 0.0 software variable default Number of vertices that belong to a geometry object (e.g. polyline)
209 riegl.cp_search_radius Search Radius m 1 0.01 0.0 655.35 0.0 0.0 software variable default Search radius for finding the control point in the scan data. This value (if valid) shall be preferred over that of the common settings when finding observation points for the respective control point.
210 riegl.cp_maximum_distance Maximum Distance m 1 0.1 0.0 50000.0 0.0 0.0 software variable default Maximum accepted distance of an observed control point from SOCS center. This value (if valid) shall be preferred over that of the common settings when finding observation points for the respective control point.
Group "Other Attributes"
# Name Title Unit Length Resolution Minimum Maximum Default Invalid Origin Storage Compression Tags Values Description
211 riegl.selected Selected 1 1.0 0.0 1.0 0.0 software dynamic default boolean Point selected by user (0 = not selected, 1 = selected)
212 riegl.visible Visible 1 1.0 0.0 1.0 1.0 software dynamic default boolean Point visible (i.e. not hidden) in view (0 = hidden, 1 = visible)
213 riegl.source_cloud_id Point Cloud ID 1 1.0 0.0 10000.0 0.0 0.0 software constant shuffle ID of original point cloud (0 = unknown)
214 riegl.source_cloud_count Point Cloud Count 1 1.0 0.0 65535.0 0.0 software variable shuffle For points merged from multiple source files, the number of source files contributing to the point (0 = unknown)
215 riegl.source_index Point Index 1 1.0 0.0 1.0e12 0.0 0.0 software constant shuffle Index of point in original point cloud (0 = unknown)
216 riegl.source_indicator Source Indicator 1 1.0 0.0 255.0 0.0 software variable default enumeration 0 = Standard processing
1 = Target interpolation
0 for all points derived by standard waveform processing, 1 for additional points derived from interpolation, other enum values to be defined separately
217 riegl.dynamic_object_point Dynamic Object Point 1 1.0 0.0 1.0 0.0 software variable default boolean Marks points that belong to dynamic objects (0 = no dynamic object, 1 = dynamic object)
218 riegl.single_source_point Single Source Point 1 1.0 0.0 1.0 1.0 software variable default boolean Marks points that originate from one source file (0 = multiple source files, 1 = single source file)
219 riegl.mirror_object_point Mirror Object Point 1 1.0 0.0 1.0 0.0 software variable default boolean Marks points that belong to mirror objects (0 = no mirror object, 1 = mirror object)
220 riegl.window_echo_impact_corrected Window Echo Impact Corrected 1 1.0 0.0 1.0 0.0 software variable default boolean 0 = Not impacted by exit aperture
1 = Impacted by exit aperture
1 for all points in temporal vicinity of echoes from the exit aperture and corrected for the impact of the exit pane on amplitude and range, 0 otherwise
221 riegl.dyntrig_uncertain_point Dyntrig Uncertain Point 1 1.0 0.0 1.0 0.0 software variable default boolean 1 for all points with an echo signal amplitude below the dynamic trigger level, 0 otherwise
222 riegl.barometric_height_amsl Barometric Altitude m 1 0.01 -100.0 10000.0 0.0 scanner variable delta Altitude determined based on the atmospheric pressure according to the standard atmosphere laws
223 riegl.distance_to_surface Distance to Surface m 1 0.0001 -2100.0 2000.0 -2100.0 -2100.0 software variable shuffle Distance between point and a reference surface (values less than -2000.0 mean no distance available)
224 riegl.nbhd_distance_min Neighborhood Minimum Distance m 1 0.00025 0.0 50000.0 0.0 software variable shuffle Minimum distance to points in neighborhood
225 riegl.nbhd_distance_max Neighborhood Maximum Distance m 1 0.00025 0.0 50000.0 0.0 software variable shuffle Maximum distance to points in neighborhood
226 riegl.nbhd_distance_mean Neighborhood Mean Distance m 1 0.00025 0.0 50000.0 0.0 software variable shuffle Mean distance to points in neighborhood
227 riegl.nbhd_distance_median Neighborhood Median Distance m 1 0.00025 0.0 50000.0 0.0 software variable shuffle Median distance to points in neighborhood
228 riegl.nbhd_distance_std Neighborhood Distance, Standard Deviation m 1 0.00025 0.0 50000.0 0.0 software variable shuffle Standard deviation of distances to points in neighborhood
229 riegl.nbhd_distance_mad Neighborhood Distance, Median Absolute Deviation m 1 0.00025 0.0 50000.0 0.0 software variable shuffle MAD standard deviation of distances to points in neighborhood
230 riegl.shot_id Shot ID 1 1.0 0.0 1.0e12 0.0 0.0 software constant delta Identifier of laser shot (0 = invalid). This is not an array index but the value of riegl.id of the laser shot.
231 riegl.wfm_sbl_id Waveform Sample Block ID 1 1.0 0.0 1.0e12 0.0 0.0 software constant delta Identifier of waveform sample block (0 = invalid). This is not an array index but the value of riegl.id of the block.
232 riegl.event_fake_pulse Event Fake Pulse 1 1.0 0.0 1.0 0.0 software variable default boolean 0 = real input event
1 = fake input event
Event fake pulse (0 = real input event, 1 = fake input event to indicate that no event was detected within set time window)
233 riegl.point_inside_aabb_bocs Inside Inner AABB in BOCS 1 1.0 0.0 1.0 0.0 software variable default boolean 1 if point is inside inner box, 0 if outside
234 riegl.point_outside_aabb_bocs Outside Outer AABB in BOCS 1 1.0 0.0 1.0 0.0 software variable default boolean 1 if point is outside outer box, 0 if inside
235 riegl.tpu_wsm_z_uncertainty Water Surface Model Z Uncertainty m 1 0.001 -1.0 64.535 -1.0 -1.0 software variable default Water surface model z uncertainty at intersection point
236 riegl.tpu_wsm_normal_uncertainty Water Surface Model Normal Uncertainty deg 1 0.001 -1.0 64.535 -1.0 -1.0 software variable default Water surface model normal uncertainty at intersection point
237 riegl.tpu_xyz_uncertainties XYZ Uncertainties m 3 0.001 -1.0 64.535 -1.0 -1.0 software variable default Uncertainties of Cartesian coordinates (0: X, 1: Y, 2: Z) resulting from uncertainty propagation based on contributing systematic and random measurement uncertainties from several sources
238 riegl.tpu_thu Total Horizontal Uncertainty m 1 0.001 -1.0 64.535 -1.0 -1.0 software variable default Total Horizontal Uncertainty (THU) at a confidence level of 95% derived from x- and y-component of xyz uncertainties
239 riegl.tpu_tvu Total Vertical Uncertainty m 1 0.001 -1.0 64.535 -1.0 -1.0 software variable default Total Vertical Uncertainty (TVU) at a confidence level of 95% derived from z-component of xyz uncertainties
Storage Classes
# Name Description
1 constant value cannot be changed
2 variable value can change from time to time
3 dynamic value is likely to be changed often
Compression Options
# Name Description
1 default nothing special, just use default compression algorithm
2 delta calculate differences between two consecutive values
3 shuffle shuffle bytes of point attribute values
4 delta+shuffle calculate differences and shuffle bytes
Attribute Tags
# Name Description
1 boolean state/flag
2 color color values
3 direction direction vector
4 enumeration finite set of unique values, optionally with a name
5 position position vector
6 timestamp timestamp of some event, relative to epoch defined in riegl.time_base
7 transform transform position or direction vector during import/export
Version: 1.4.5, Date: 2024-10-16