# Welcome

Thank you for choosing Phoenix LiDAR Systems! This user manual provides a detailed overview in the use of our LiDAR mapping systems. It addresses and explains the working principles of the underlying components, the system architecture, and the required software. This manual is not intended to replace customer training. Instead, it should serve as introductory material for new users and a reference tool for experienced personnel.

To navigate this documentation, use the banner on the left of the window. For legacy documentation, see the links posted below.&#x20;

{% hint style="info" %}
For legacy documentation, see the links below.&#x20;
{% endhint %}

## Legacy Documentation: SpatialExplorer versions 4 - 7:

**SpatialExplorer version 4, 5, 6**: <https://docs-6.phoenixlidar.com/lidarmill-desktop/introduction>

**SpatialExplorer version 7**: <https://docs-7.phoenixlidar.com>

<figure><img src="/files/Da4Khtwxhh9WcxEQE54c" alt=""><figcaption><p>RangerUltra integrated on a Harris H6 UAV</p></figcaption></figure>


# Introduction

SpatialExplorer is used to control and configure lidar systems produced by Phoenix LiDAR Systems, as well as to post-process the acquired data. SpatialExplorer can also be used to post-process some data produced by non-Phoenix branded lidar systems, such as RESEPI systems and generic LAS/LAZ processing.

The following documentation is ordered according to the user interface of SpatialExplorer. Most processing tools are located within a [toolbar](/spatialexplorer-8-and-9/user-interface/toolbars), whereas processing settings and artifacts are located primarily in the[ project](/spatialexplorer-8-and-9/user-interface/windows/project) window.&#x20;

## Quick Links

### Data Acquisition

If you are attempting to collect acquire data using a Phoenix lidar system, check out our [rover toolbar documentation](/spatialexplorer-8-and-9/user-interface/toolbars/rover). If you are just trying to connect to a lidar system, to download data or configure settings, see the [connect to rover documentation](/spatialexplorer-8-and-9/user-interface/toolbars/rover/connect-to-rover).&#x20;

### Post-Process Collected Data

If you already have acquired data, and you need to post-process the data, check out one of our [data processing workflows](/spatialexplorer-8-and-9/post-processing/data-processing-workflows), which are organized by acquisition style/platform.&#x20;

###


# Installation

SpatialExplorer can be downloaded from [accounts.phoenixlidar.com](https://accounts.phoenixlidar.com) (requires authentication). Login to your account, then navigate to **Updates** and select **SpatialExplorer** from the banner on the left:

<figure><img src="/files/Ia6NtQHXBRwYPDxwVvys" alt=""><figcaption><p>SpatialExplorer installers located under Updates</p></figcaption></figure>

Please email our support team at <support@phoenixlidar.com> if you have any questions.&#x20;

## Setup

1. Run the Phoenix LiDAR Systems Suite Setup Wizard.
2. Click **Next** button in the Welcome Interface.
3. Click **I Agree** button to continue if you accept the License Agreement.
4. Choose the installation path (or use default path), then click **Install** button.
5. Select the components you'd like to install.
6. Click **Next** to begin the installation.
7. Click **Finish** button after installation is complete.


# System Requirements

Minimum system requirements may be acceptable for base station computers, used to connect to rover during data acquisition. Computers used for post processing data should meet the recommended system requirements.&#x20;

Minimum system requirements:

| **OS**  | Windows 10 64-bit or Window 11 64-bit                      |
| ------- | ---------------------------------------------------------- |
| **RAM** | 16 GB                                                      |
| **GPU** | NVIDIA or AMD GPU with minimum OpenGL 4.6 driver installed |

Recommend system requirements:

| **OS**      | Windows 10 64-bit or Window 11 64-bit                           |
| ----------- | --------------------------------------------------------------- |
| **RAM**     | 64 GB or more                                                   |
| **GPU**     | Support for OpenGL 4.6. NVIDIA GeForce RTX 20 series or better. |
| **CPU**     | Base clock speed of 4 GHz or higher.                            |
| **Storage** | Solid-state drive                                               |


# SpatialExplorer-Compatibility

SpatialExplorer installs two executables, a standard version and a compatibility version:

<figure><img src="/files/aGdaLGVYdx4BQeAhVIGH" alt=""><figcaption></figcaption></figure>

Most users should run **SpatialExplorer.exe**, however users with older workstations or complicated IT screening services can run the **SpatialExplorer-Compatibility.exe**. If **SpatialExplorer.exe** does not launch properly, consider running the compatibility executable.

{% hint style="warning" %}
&#x20;The compatibility version will typically process slower than the standard executable.&#x20;
{% endhint %}


# Licensing

To access the license manager of SpatialExplorer, view [**Tools->Licensing**](/spatialexplorer-8-and-9/user-interface/toolbars/tools/licensing).&#x20;

SpatialExplorer licenses can be either annual or perpetual. Annual licenses expire after 1-year and require renewal. Perpetual licenses never expire but require maintenance fees to be paid in order to get software updates. &#x20;

Each license contains grants. Grants enable specific functionality within the software. Shown below are the types of licenses offered and the functionality that they enable.&#x20;

## SpatialExplorer

Standard license for core software features.&#x20;

| **Data Acquisition** |                                                                                 |
| -------------------- | ------------------------------------------------------------------------------- |
| ***Grant Title***    | ***Functionality***                                                             |
| \*                   | Remote Rover Connection                                                         |
| \*                   | Vehicle Profile Management                                                      |
| \*                   | Sensor acquisition setting configurator                                         |
| \*                   | Sensor calibration management                                                   |
| \*                   | IMU installation configurator                                                   |
| \*                   | Real-time sensor control                                                        |
| \*                   | Real-time GNSS satellite monitor                                                |
| \*                   | Real-time IMU data monitor                                                      |
| \*                   | Real-time systems monitor                                                       |
| \*                   | Real-time Point cloud viewer                                                    |
| \*                   | Real-time data measurements                                                     |
|                      |                                                                                 |
| **Data Processing**  |                                                                                 |
| ***Grant Title***    | ***Functionality***                                                             |
| \*                   | Coordinate system manager                                                       |
| \*                   | Create local transform                                                          |
| \*                   | Flightline manager                                                              |
| \*                   | MTA resolution                                                                  |
| \*                   | Raw data Fusion                                                                 |
| \*                   | Project Tiling                                                                  |
| \*                   | Colorization - basic                                                            |
| \*                   | Interactive Point Selections                                                    |
| \*                   | QC - 3D Point cloud viewer                                                      |
| \*                   | QC - Cross section viewer                                                       |
| \*                   | QC - Measurements                                                               |
| \*                   | Manage Reference Stations (in LiDARMill)                                        |
| \*                   | Show sun position                                                               |
| \*                   | Show compass                                                                    |
| \*                   | Show OSM base map                                                               |
| export-data          | Export processed data (LAS, LAZ, SHP, DXF, etc.)                                |
| import-recon         | Decoding raw data from RECON & RESEPI that are associated with a user's account |

\* Grant currently not required

## SpatialPro

A SpatialExplorer module that adds calibration, analytics, and reporting tools. This includes LiDARSnap, CameraSnap, classification tools, advanced colorization tools, vector/raster product generation tools, and report generation.&#x20;

| **Data Processing**           |                                                       |
| ----------------------------- | ----------------------------------------------------- |
| ***Grant Title***             | ***Functionality***                                   |
| lidarsnap-v4                  | LiDARSnap - Sensor calibration                        |
| lidarsnap-v4                  | LiDARSnap - Trajectory Optimization                   |
| lidarsnap-v4                  | LiDARSnap - Constrain adjustments with GCP            |
| lidarsnap-v4                  | LiDARSnap - Adjust to a control point cloud           |
| camerasnap-v1                 | CameraSnap - Sensor Calibration                       |
| camerasnap-v1                 | CameraSnap - Individual Pose Correction               |
| camerasnap-v1                 | CameraSnap - Manual feature matching                  |
| colorize-project-advanced     | Colorization - Advanced                               |
| colorize-ortho                | Colorization using an orthomosaic                     |
| adjust-to-gcp                 | Adjust to Control - vertical and/or horizontal debias |
| create-report                 | Automated QC Reporting                                |
| classify-by-class             | Auto Classify - Points                                |
| classify-noise                | Auto Classify - Noise                                 |
| classify-ground               | Auto Classify - Ground                                |
| classify-powerlines           | Auto Classify - Powerlines                            |
| classify-statistical-outliers | Auto Classify - Statistical Outlier Removal           |
| classify-moving-objects       | Auto Classify - Moving Objects                        |
| classify-on-selection         | Interactive Classify - On Selection                   |
| create-maps                   | Create - Maps                                         |
| create-contours               | Create - Contours                                     |
| create-maps                   | Create - Floor Plans                                  |
| create-mesh                   | Create - Mesh                                         |
| compute-normals               | Compute - Normals                                     |
| compute-height-above-ground   | Compute - Height Above Ground                         |
| compute-socs                  | Compute - SOCS                                        |
| compute-cloud-distance        | Calculate Distance                                    |
| resample-cloud                | Resample Cloud - Delaunay                             |
| cloud-clean                   | CloudClean                                            |
| import-lidar                  | Import LiDAR (importing sdc, sdcx, ...)               |
| import-cloud                  | Import .las/laz                                       |
| export-pix4d                  | Export PIX4D .dat                                     |

## NavLab Embedded

A SpatialExplorer module that allows for offline GNSS+INS trajectory processing.

| **Data Processing** |                                          |
| ------------------- | ---------------------------------------- |
| ***Grant Title***   | ***Functionality***                      |
| \*                  | Manage Reference Stations (in LiDARMill) |
| \*                  | Compute Reference Station Position       |
| ie-license-key      | Estimate Primary Antenna Lever Arm       |
| ie-license-key      | Differential GNSS Processing             |
| ie-license-key      | INS Loosely / Tightly Coupled Processing |
| ie-license-key      | Automated Trajectory QC Report           |

\*  Grant currently not required

## SLAM

A SpatialExplorer module that enables SLAM (simultaneous localization and mapping) processing through GNSS denied environments.

| **Data Processing** |                                                             |
| ------------------- | ----------------------------------------------------------- |
| ***Grant Title***   | ***Functionality***                                         |
| slam-postprocessing | Hybrid SLAM - Automatic georeference with available GNSS    |
| slam-postprocessing | Automatic loop closure                                      |
| slam-postprocessing | Pre-configured dynamics profiles (Pedestrian, mobile, etc.) |
| slam-postprocessing | Interactive optimization to control                         |

## MissionGuidance

A SpatialExplorer module that provides live flight navigation for piloted airborne and mobile vehicle operations.

| **Data Acquisition** |                                      |
| -------------------- | ------------------------------------ |
| ***Grant Title***    | ***Functionality***                  |
| mission-guidance     | Pilot Navigation Display             |
| mission-guidance     | Velocity, Heading, Elevation Monitor |
| mission-guidance     | Remaining time estimates             |
| mission-guidance     | Automatic flight line scheduling     |
| mission-guidance     | Interactive flight line scheduling   |
| mission-guidance     | Configurable tolerances              |
| agl-oracle           | Real-time height above ground        |


# Change Log

View change logs for all Phoenix LiDAR System Software [here](https://accounts.phoenixlidar.com/releases/changelogs/spatialexplorer).&#x20;


# User Interface

The SpatialExplorer interface is divided into Windows and Toolbars. Most processing tools, such as trajectory processing or lidar calibration tools, are located on a toolbar, whereas most processing settings are located in the project window.&#x20;

See below a map of the **SpatialExplorer** user interface:

{% file src="/files/1vMvS1UTgSMwrW7EOMeT" %}


# Windows

Content in SpatialExplorer is divided into Windows. Windows can be enabled or disabled using the **Windows** menu located on the menu bar at the top of the application.


# AGL Oracle

AGL Oracle is a tool used to determine your vehicle's real-time height above ground altitude during data acquisition. This is tool is useful for maintaining a constant altitude during piloted acquisition.

Please refer to the following video for help regarding the operation of AGL Oracle.

{% embed url="<https://youtu.be/5rgR8p8EMmo?t=1195>" %}


# Classify On Selection

The **Classify On Selection** window enables the user to classify a selection of points from one set of class(es) to another set of class(es). This window is used in conjunction with the classify tools within the [Selection ](/spatialexplorer-8-and-9/user-interface/toolbars/data-visualization)toolbar.

<figure><img src="/files/Vlj5b60vcgL1SqEaidba" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
After using the **Classify On Selection** tool, point clouds will have uncommitted changes, and need to be saved using **File->Save**.&#x20;
{% endhint %}


# Coordinate Reference System

The coordinate reference system (CRS) window is used to configure the CRS of the project and various other import/export artifacts:

<figure><img src="/files/pKv40DqF84hoTcnwSEIG" alt=""><figcaption></figcaption></figure>

Certain input artifacts (reference stations, ground control points, LAZ point clouds, etc.) require the CRS to be specified upon importing the artifact. As for the CRS of the project, this can be edited at any time by clicking on the CRS shown at the top right of the application:

<figure><img src="/files/qnVBD4Z4p1SB6HZ2IQ40" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
When opening a PLP file for the first time, you will be asked to assign a project CRS.&#x20;
{% endhint %}

## Geographic-3D/compound CRS

Basic geodetic 3D coordinate systems, such as WGS84 and NAD83, can be found in the **Well-known geographic-3D/compound CRS** tab:

<figure><img src="/files/qEhcHqBZfvCtaYn4okDe" alt=""><figcaption></figcaption></figure>

Configure the horizontal and vertical CRS. Some users may find their CRS predefined under the **Well-known geographic-3D compound CRS**, however in most cases the user will need to select the horizontal and vertical CRS separately by selecting **User-defined compound CRS**.&#x20;

## User-defined compound CRS

Projected coordinate systems and coordinate systems with distinct horizontal and vertical components should be assigned using the **User-defined compound CRS** tab:

<figure><img src="/files/sCSmawzrMe6dz59yLJHB" alt=""><figcaption></figcaption></figure>

<mark style="color:red;">Some vertical coordinate reference systems will require a geoid grid.</mark> If a geoid grid is not required, such as when using ellipsoidal altitudes, SpatialExplorer will not allow you to select a grid.

If a geoid is required, click **Select geoid** to access the [Grids manager](/spatialexplorer-8-and-9/user-interface/toolbars/lidarmill/manage-grids):

<figure><img src="/files/YWzJVDP6R7KCV2JTUmby" alt=""><figcaption></figcaption></figure>

Navigate to the geoid you require, or import a local file if necessary. If the geoid is already downloaded, you can select it and click **Use selected grid**. If your geoid is not downloaded yet, you will need to first click the **Download selected grid**.&#x20;

Once your geoid grid is selected, you should see it in the bottom window of the CRS menu:

<figure><img src="/files/cNF48KOAGY4YAKq4xRV4" alt=""><figcaption></figcaption></figure>

Once your project CRS is configured, you should see the CRS listed in the top right of the SpatialExplorer window.


# Corrections

The Corrections window stores computed corrections, and enables users to apply rigid adjustments to the trajectory and pointcloud. The [Align to GCP](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/ground-control) tool automatically creates vertical corrections in the Corrections window, however corrections can also be created manually from measurements:

## Creating Automated Vertical Corrections

Use the [Align to GCPs ](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/ground-control)tool to create corrections from vertical residuals between GCPs and the pointcloud:

<figure><img src="/files/C6C1oszWWATCQEudnFd3" alt=""><figcaption></figcaption></figure>

## Creating Corrections Manually&#x20;

Corrections can also be created manually by selecting points or GCPs in the main view (creating measurements) and then using the **Import from Measurements tool.**

To create corrections manually, select a GCP and the corresponding point in the point cloud which should be co-located with the GCP:

<figure><img src="/files/dThXXWwBLE0z1Hhi2t6u" alt=""><figcaption></figcaption></figure>

You should then have two entries in the measurement window, one with source (SRC) PointCloud, and one with source GroundControl:

<figure><img src="/files/5LyHV9nNNy4CsAO85rMh" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Keep the Measurements window clean! A correction must be between two points, either one GCP and one pointcloud point, or two points in the pointcloud. If your measurements window has more than two entries, a correction cannot be created.
{% endhint %}

Use the **Import from Measurements** button to import the measurements as either a Vertical, Horizontal, or Full correction:

<figure><img src="/files/AAiYmAIGRMn8zrRkLT32" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you intend to run LiDARSnap with manual corrections enabled, the correction must be a Full (i.e. horizontal and vertical) correction.&#x20;
{% endhint %}

After creating the correction, you should see it as an entry in the **Corrections** window, as well as visualized in the main view:

<figure><img src="/files/cwLmkMZJUX8IWwRJEcmP" alt=""><figcaption></figcaption></figure>

A correction can also be created from two points in the pointcloud, or between two points in two different pointclouds. To create a correction from two pointcloud points, disable the **GCP-point corrections** option:

<figure><img src="/files/tXzVBVkH2JvTixJFSh1c" alt=""><figcaption></figcaption></figure>

## Applying Corrections

{% hint style="warning" %}
If you are creating corrections to be used with LiDARSnap, do not attempt to apply corrections, as discussed below. For LiDARSnap, Full corrections should be present in the corrections window.&#x20;
{% endhint %}

Corrections can be applied to the active trajectory. This is useful when a single, global shift of the data set is required. Corrections are averaged amongst type, meaning that all vertical corrections are averaged to determine a single vertical adjustment, and all horizontal corrections are averaged to obtain a single horizontal shift:

<figure><img src="/files/F4PUbuHI3pbfLuVcxM21" alt=""><figcaption></figcaption></figure>

Applying a correction to the active trajectory will create a new trajectory with the applied shift.&#x20;


# Main View

The **Main View** displays point clouds, trajectories, images, and other artifacts, either in 3D view or in profile view:

&#x20;

<figure><img src="/files/1s5qJp7AmnXGkHx0E5uS" alt=""><figcaption></figcaption></figure>

Some tools are available at the top of the view menu:

* <img src="/files/MJyQQ0PwtImbPm86bPW5" alt="" data-size="line"> Used to export a screenshot of main view contents&#x20;
* <img src="/files/T3GwnR5ztolkb7ASk5AR" alt="" data-size="line"> Used to control whether the camera should follow the vehicle or remain static during [Playback Fusing](/spatialexplorer-8-and-9/user-interface/windows/project-player).&#x20;
* <img src="/files/cDopLHZ4UL2zEVxEa5cl" alt="" data-size="line">and <img src="/files/yy0LQGiU8BzSh3m9wiU5" alt="" data-size="line"> indicate whether a profile or 3D view is displayed in the view
* <img src="/files/9QqPT9KGlX9mVWC99EYV" alt="" data-size="line"> Adds a view to the right
* <img src="/files/d4zcGWEP6KuLQBiLxupe" alt="" data-size="line"> Adds a view below
* <img src="/files/NogFzyCGBJV0TLB8E6gy" alt="" data-size="line"> Removes a view


# Picks

The **Picks** window allows you to perform various measurements on the active map layer. Depending on which map layer is selected within the Project Window, points can be picked from the point cloud layer, the trajectory layer, or other additional map layers.&#x20;

**Picks are made by left clicking on a feature in the map view** (e.g. pointclouds, trajectories, GCPs, images, etc.),&#x20;

<figure><img src="/files/vtH0kVt1dcVbCJORLP3W" alt=""><figcaption></figcaption></figure>

**Picks** can be used for measuring distances, creating corrections, creating intervals, and for creating vector geometries.

## Creating Geometries from Picks

Vector geometries, such as points, lines, and polygons, can be created using the **Picks** window. Select either **POS** (points), **PTH** (line), or **PLY** (polygon) as your geometry type:

<figure><img src="/files/liGnthak1KvGkKjNC7Y8" alt=""><figcaption></figcaption></figure>

Then, begin creating the geometry by left clicking in the main view. You will see your **Picks** displayed in the main view, along with a visualization of the line or polygon, if you selected either of those geometry types:

<figure><img src="/files/Ke2uGeP7qSp6SClHhYa1" alt=""><figcaption></figcaption></figure>

Once you are finished, select the **Create Geometry** icon and specify a name for the feature:

<figure><img src="/files/WXbqgdoHH7a9JcZ4L1id" alt=""><figcaption></figcaption></figure>

After a name has been specified for the feature, you will need to specify a filename for the KMZ. This is because a single geometry file (KMZ, SHP, etc) can have multiple features (e.g. multiple polygons).

Geometries created default to KMZ, as KMZ supports hierarchal, multi-type (polygon, line, points) geometry handling. To change the format of the geometry, use the [Export tool](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/export). Modifying geometries is covered further in[ Project->Geometry](/spatialexplorer-8-and-9/user-interface/windows/project/geometry) .

## Sending Picks to an Existing Geometry

If you have a geometry in your project, this geometry can be set to **Open for Editing** by checking the checkmark icon next to the geometry:

<figure><img src="/files/wtcJUtRg44oBYSCNLoyH" alt=""><figcaption></figcaption></figure>

If a geometry is open for editing, all geometries created using the **Picks** window will be created as features of the existing geometry.&#x20;


# Messages

The Messages window provides detailed information pertaining to the status of uploaded files, processing and analyzing tools, and updates on edits/changes made to project files:

![SpatialExplorer Messages Window](/files/-M_wH9R_bYRIMu0_Q5of)

Messages in <mark style="color:yellow;">**yellow**</mark> indicate warnings about corrupted data, missing data or files, and other data issues:

<figure><img src="/files/fLGfE2hMhvN8ZfAhb3fS" alt=""><figcaption><p>SpatialExplorer issuing warnings about missing IMU samples</p></figcaption></figure>


# Mission Guidance

Normally, manned acquisition requires two operators: a sensor-operator and a pilot/driver. The sensor operator will run SpatialExplorer on a laptop to control and monitor the sensors as usual. In addition, lines/paths/linestrings from KML/KMZ files can be imported and converted to flightlines. With a second display mounted in the pilot's field of view and connected to the laptop running SpatialExplorer, a simple and intuitive interface is shown to the pilot to help navigate along these flightlines in 3d.

Please refer to the following video for help regarding the operation of MissionGuidance

Click [here](https://docs.phoenixlidar.com/missionguidance/introduction) to jump to the Mission Guidance section of the manual&#x20;

{% embed url="<https://youtu.be/5rgR8p8EMmo>" %}


# Photo Viewer

The photo viewer displays images selected by the user. To display an image, click the on the image in the main view:

<figure><img src="/files/jLEmXkPef3Ps5RKoKeGB" alt=""><figcaption><p>Ladybug5+ image displayed in the photo viewer. </p></figcaption></figure>

{% hint style="info" %}
If a point cloud or trajectory is displayed in the main view, it may be difficult to click on the image, so considering disabling point clouds and trajectories when attempting to use the photo viewer.&#x20;
{% endhint %}


# Project

The project window is located on the left side of the UI and contains artifacts associated with the project file, such as lidar and camera records, pointclouds, trajectories, and ground control.

Clicking once on an artifact will show its options in the bottom menu.

Double-clicking on a sensor within the Rover section will open its configuration settings window.

<figure><img src="/files/BdjVkMUVBDH75KSRU37a" alt=""><figcaption><p>Example of Project window with a pointcloud selected</p></figcaption></figure>


# Rover

Rover settings in the project window include all settings related to the lidar system, namely: lidar and camera sensor settings, IMU-to-vehicle orientation, and GNSS lever arm values.&#x20;


# Cameras

Camera configuration settings are contained within the Rover->Cameras section.  Data is divided into sessions, which are produced during acquisition. The camera settings menu is divided into three main tabs: **Acquisition**, **Calibration**, and **Processing:**

**Acquisition** settings are set during data acquisition and cannot be modified when processing data.&#x20;

**Calibration** settings can be modified, however it is not recommended to modify the settings manually, and to instead use CameraSnap.&#x20;

**Processing** settings should be configured by the user with each data set.

Additional tools are located at the bottom of the window in the **Tools** menu


# Camera Acquisition Settings

The acquisition tab of camera settings displays each camera session in the **Sessions** window. A session is a set of image timestamps. Similar to how lidar sessions are organized, anytime you start and stop the camera, you create a camera session. The number of images recorded in the session is shown in parentheses next to the session. The camera configuration parameters used to record each session are displayed in the acquisition tab.&#x20;

Individual sessions can be disabled by unchecking the session within the **Sessions** window. If disabled, the session will not be used when colorizing a pointcloud, nor when exporting image metadata.&#x20;

<figure><img src="/files/AP7fUIEU4S6SdFZkLar7" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
These settings cannot be changed in Work Offline mode. They are simply read-only parameters.
{% endhint %}


# Camera Calibration Settings

## Calibration

In the Calibration tab, the user can revise the Camera’s calibration values, such as sensor size (in mm), pixel size (in px), as well as camera position and camera orientation. These options should not be altered unless necessary, and only then should be used in very special cases. Use [CameraSnap](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap) to modify these values:

<figure><img src="/files/aoIrgiELccNGdkFDUCg6" alt=""><figcaption></figcaption></figure>


# Camera Processing Settings

The Processing tab allows for adjustment of the images used for colorization:

<figure><img src="/files/ELTcl2LuMUfYwYCmzhkm" alt=""><figcaption></figcaption></figure>

It is advisable to **Use Intervals** (bottom right) which enables only imagery recorded within a processing interval. You can also disable images manually by unselecting them with the **checkbox** next to the filename.&#x20;

<figure><img src="/files/QTEuPjUkqQiqhfJ7N70P" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Colorization time can be reduced by disabling images that won't be needed for colorization. This is especially true when colorizing with depth maps, as one depth map must be created for every enabled image, which can add considerable processing time with large data sets. It's also recommended to use intervals to deliberately select which images to use for during camera calibration.&#x20;
{% endhint %}


# Camera Tools

Various tools associated with the camera are located in the Tools menu at the bottom of the camera settings menu:

<figure><img src="/files/Cdw23oQOOFuXXn6arPcB" alt=""><figcaption></figcaption></figure>


# Load sensor transform/extrinsics from file

Calibration values that appear in the [**Calibration**](/spatialexplorer-8-and-9/user-interface/windows/project/rover/cameras/camera-calibration-settings) tab of the camera settings menu can be imported from a PLP file. This is useful from a customer support context, as Phoenix LiDAR customer support can provide a customer calibration values by sending them a PLP file. Users can also use this feature to apply a calibration to several data sets without manually entering values.&#x20;

In most cases, after pointing SpatialExplorer to the PLP, you will select to import the calibration from **Sessions**:

<figure><img src="/files/SKEeyX3n9eIqF5NExnxS" alt=""><figcaption></figcaption></figure>

It's also recommended to import the **Sensor->IMU transform**:

<figure><img src="/files/p1inKCh5xfn6TUEMABbP" alt=""><figcaption></figcaption></figure>


# Calibrate Sensor Manually

[**CameraSnap**](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap) can be accessed through the workflow toolbar, however if user's prefer a more manual workflow, Calibrate Sensor Manually can be accessed from the **Camera->Tools** menu:.

Manual **CameraSnap** is initiated with automatically camera matches:

<figure><img src="/files/Z1cxkhYmgW4urGtJz1TK" alt=""><figcaption></figcaption></figure>


# Edit Receptor Masks

When first opening a PLP file referencing Ladybug imagery, SpatialExplorer will ask you to create masks for each of the six receptors. You can also go to **Camera Settings-> Processing->Tools->Edit Receptor Masks** to access this menu:

<figure><img src="/files/Gb1afy5Q4u1JAW7mblZA" alt=""><figcaption></figcaption></figure>

Draw the mask so that it excludes the vehicle or any mounting hardware. Only areas in green will be used during processing.


# IMU

This field displays the IMU orientation in several different conventions. The IMU orientation displayed under **InertialExplorer Rotation** is used within NavLab Embedded. The PLP file will initially contain values that were [set by the rover profile](/spatialexplorer-8-and-9/user-interface/toolbars/rover/rover-settings-and-profiles/navigation-system#imu-orientation) (the values set during acquisition):

<figure><img src="/files/OGZCPx8ezKlkk7sDQZw1" alt=""><figcaption></figcaption></figure>


# GNSS

This field displays the **GNSS Antenna-Type**, and the **IMU to GNSS antenna offsets** configured for the navigation system. These values are used within NavLab Embedded. The PLP file will initially contain values that were [set by the rover profile](/spatialexplorer-8-and-9/user-interface/toolbars/rover/rover-settings-and-profiles/navigation-system#gnss-antennas) (the values set during acquisition):

<figure><img src="/files/hf1FSqwOU0tuKVlUD9n1" alt=""><figcaption></figcaption></figure>


# Lidars

Lidar configuration settings are contained within the Rover->Lidars section. Data is divided into sessions, which are produced during acquisition. The lidar settings menu is divided into three main tabs: **Acquisition**, **Calibration**, and **Processing:**

**Acquisition** settings are set during data acquisition and cannot be modified when processing data.&#x20;

**Calibration** settings can be modified, however it is not recommended to modify the settings manually, and to instead use LiDARSnap.&#x20;

**Processing** settings should be configured by the user with each data set.

Additional tools are located at the bottom of the window in the **Tools** menu


# Lidar Acquisition Settings

The acquisition tab of lidar settings displays each lidar session in the **Sessions** window. A session is a lidar record associated with a file (.rxp or .ldr) and with associated lidar parameters. In other words, whenever you start and stop the lidar, you create a session. The lidar sensor configuration parameters used to record each session are displayed in the acquisition tab.&#x20;

Individual sessions can be disabled by unchecking the session within the **Sessions** window. If disabled, the session will not be fused when building a pointcloud.&#x20;

<figure><img src="/files/dbC7oEqAUTrVNLMrzZMU" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
These settings cannot be changed in Work Offline mode. They are simply read-only parameters.
{% endhint %}


# Lidar Calibration Settings

The calibration tab displays the sensor-to-IMU rotations and translations associated with the lidar. These settings can be modified via LiDARSnap, however it is not recommended to manually change these values.&#x20;

<figure><img src="/files/HXPt75NGPhy7YPT0hzdL" alt=""><figcaption></figcaption></figure>

### Mounting Transform (IMU to Sensor) <a href="#transform-imu-to-sensor" id="transform-imu-to-sensor"></a>

These fields apply a transformation from the center of the IMU to the center of the LiDAR sensor. The Translation fields define the offset from the center of the IMU to the LiDAR’s optics. The Rotation (extrinsic ZXY order) fields define how the LiDAR sensor is oriented relative to the IMU.‌

* **Translation** - The translations (X,Y and Z) along the IMU axis between the center of navigation (IMU reference point) and the LiDAR reference point
* **Rotation (XYZ order)** - The rotations between the IMU frame and the LiDAR sensor frame&#x20;

### Mounting Calibration (IMU to Sensor) <a href="#corrections-in-sensor-frame" id="corrections-in-sensor-frame"></a>

These fields apply systematic IMU frame to sensor frame misalignment corrections commonly referred to as "boresight calibration" corrections

* **Translation** - Translation corrections along the IMU axis between the center of navigation (IMU reference point) and the LiDAR reference point
* **Rotation (XYZ order)** - LiDAR boresight misalignment corrections - IMU to sensor (roll, pitch, yaw

### Encoder Calibration

Some sensors have their encoder mounted improperly, such that the center of encoder doesn't match the center of spin axis. This introduces an error when getting encoder reads, most of which manifests as a sine. Thus, a correction sine can be fit with phase and amplitude to the encoder readings.

* **EEA** - Encoder Error Amplitude (degrees)
* **EEP** - Encoder Error Phase (degrees)

### Per-laser Calibration

These fields apply corrections to each laser individually

* **Translation (XYZ)** - Physical offset of the given laser to the center of sensor. Usually, X and Y will not be used and Z will be set to vertical offset on the spin axis for multilaser systems.
* **Rotation (XYZ)** - Per-laser rigid rotation calibration (applies to legacy calibrations)
* **Range Scale** - Applies a scale factor (multiplier) to the range reading.
* **Range Offset** - Applies an offset for the range reading.
  * Range scale and offset parameters will adjust the range such that: rangeNew = rangeOld \* rangeScale + rangeOffset.
* **Scan Angle Scale** - Applies a scale factor (multiplier) to the scan angle reading. Scan angle is the angle in spin direction, as reported by the encoder
* **Scan Angle Offset** - Applies an offset for the scan angle reading. The offset is applied

  in spin-axis direction and is in degrees.

  * Scan angle scale and offset parameters will adjust the range such that: scanAngleNew = scanAngleOld \* scanAngleScale + scanAngleOffset
* **Tilt Angle Scale** - Applies a scale factor (multiplier) to the tilt angle. Tilt Angle is the angle between the laser and the spin axis. Notice this will have a different effect than rotation, as it will not move the spin axis, rather it will adjust the angle between the laser and the spin axis.
* **Tilt Angle Offset** - Applies an offset for the tilt angle.
  * Tilt angle scale and offset parameters will adjust the range such that: tiltAngleNew = tiltAngleOld \* tiltAngleScale + tiltAngleOffset.


# Lidar Processing Settings

The processing tab contains lidar processing settings associated with the project.&#x20;

<figure><img src="/files/tjsk6B9WRloaoY9UIf67" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**FOV** and **Range** are the most commonly adjusted parameters. With aerial data, a 90 degree FOV is typically a good compromise between swath size and quality returns (returns far from nadir are typically noisy).  A minimum range can help remove points from aircraft landing gear.&#x20;
{% endhint %}

**Returns to fuse** controls which returns are fused into the pointcloud. With multi-return lidar sensors, such as Riegl lidars, multiple returns are recorded for each pulse emitted, and this return index is stored into the data (RXP or SDCX file). &#x20;

**Downward FoV** specifies the swath width in degrees centered on vehicle-nadir. (90 degrees is 45 degrees on either side of nadir). &#x20;

**Fuse Returns from every** nth shot and nth line. This can be used to fuse only a subset of points, which is useful for expediting processing time when acquired density is very high. See an example below section on downsampling.&#x20;

**Valid Intensity** is a scaled intensity value - very low reflectance values, less than -25 dB, may likely be noise.&#x20;

**Valid Deviation** refers to how much a return waveform shape deviates from an ideal, leptokurtic return shape.&#x20;

**Minimum and maximum range -** Adjust to eliminate points that are either very close or very far from the sensor.

{% hint style="warning" %}
**Returns to fuse**, **Valid Intensity**, and **Valid** **Deviation** are not applicable to all LiDAR scanners.&#x20;
{% endhint %}

### Downsampling with Line Scanners

If you do not require the full recorded lidar density, you can limit which points are fused by adjusting the **Fuse returns from every** nth shot and nth line.&#x20;

{% hint style="info" %}
**Examples**

Fusing the 1st shot from every 10th line will result in fusing only 10% of the density, as only 1 out of every 10 scan lines are fused.

Fusing the 2nd shot of every 1st line, will result in fusing only 50% of the density, as every scan line is fused, however every other shot is skipped.&#x20;
{% endhint %}

In the example below, only about 3% of the data will be fused, which will drastically speed up processing times, in the case of a field data check or other cursory examination of the pointcloud:&#x20;

<figure><img src="/files/ImmPIftuBIm7SYV3sBAA" alt=""><figcaption></figcaption></figure>

### Blocking Out Frustums <a href="#blocking-out-frustums" id="blocking-out-frustums"></a>

In some payload configurations, the LiDAR sensor can be mounted in such a way that it might constantly scan parts of the vehicle or craft, (i.e. a portion of a car’s roof or a UAV’s landing gear). This will create reflections in the resulting 3D point cloud. There are two options to prevent this from happening:‌

* Set the minimum range value to a value greater than difference of the distance from the LiDAR sensor to the obstacle.
* Block certain frustums, which are angular regions. Up to four regions can be blocked at the same time.

In order to calculate frustums, you must know the orientation of the LiDAR sensor as it is mounted. For a Velodyne sensor, it is indicated by the cable being 180 degrees. For a RIEGL sensor, it is indicated by R logo on the front of the sensor.

![Field of View Orientation for Velodyne Sensors](/files/-M_gr1BGEkMotcdVNMjD)

![Field of View Orientation for RIEGL Sensors‌](/files/-M_gr6NnA-xJtTQH49dN)

You then select a horizontal min/max and a vertical min/max of the range you would like to block as well as a min/max distance range. RIEGL sensors do not have a vertical min/max option because they are line scanners and therefore do not have a vertical field of view. Horizontal refers to the 360 degree rotation of the scanner, so essentially to the left/right of your vehicle. Vertical refers to forward and backward.‌

To block out frustums you need to set each of the 3 parameters (Horizontal, Vertical, and Range) to include the points you wish to block. In this example below, we are blocking everything that is to the Right and Behind the vehicle. Points are masked that meet all criteria for the mask: Horizontal 330 to 360, and Vertical 0 and +45, and range 0 to 500.

![Frustums example with Velodyne sensor](/files/-M_grAWny05Kn1NrD1JY)

![Frustums example with Velodyne sensor‌](/files/-M_grDhUhdSp0qgwl4Zl)

You might need to set up more than 1 filter such as using one frustum to block from 0 to 90 degrees and another to block from 180 to 270 degrees. For example, if you want to preserve only 40 degrees, +20 and -20 from nadir, then you will need to set up 2 filters. First filter should block points if they are 0-160 degrees horizontal, and 0-1000 (or whatever your maximum range is for the scan) meters range. The second should block points if they are 200-360 degrees horizontal and 0-1000 meters range.‌

It is recommend adjust these parameters and inspect them in SpatialExplorer before fusing them and exporting your point cloud to a LAS/LAZ.‌


# Lidar Tools

Various tools associated with the camera are located in the Tools menu at the bottom of the camera settings menu:


# Load sensor transform/extrinsics from file

Calibration values that appear in the[ **Calibration** ](/spatialexplorer-8-and-9/user-interface/windows/project/rover/lidars/lidar-calibration-settings)tab of the lidar settings menu can be imported from a PLP file. This is useful from a customer support context, as Phoenix LiDAR customer support can provide a customer calibration values by sending them a PLP file. Users can also use this feature to apply a calibration to several data sets without manually entering values.&#x20;

In most cases, after pointing SpatialExplorer to the PLP, you will select to import the calibration from **Sessions**:

<figure><img src="/files/SKEeyX3n9eIqF5NExnxS" alt=""><figcaption></figcaption></figure>

It's also recommended to import the **Sensor->IMU transform**:

<figure><img src="/files/p1inKCh5xfn6TUEMABbP" alt=""><figcaption></figcaption></figure>


# Reference Stations

Reference stations are used with NavLab Embedded to achieve the highest level of positioning accuracy. To import a reference station, navigate to **Reference Stations** in the project window and select the **File Open** icon:

<figure><img src="/files/ClpWevKMDg5iw3rTwQOL" alt=""><figcaption></figcaption></figure>

Then, navigate to a raw observation file recorded by your reference station. The following raw reference station file formats are supported:

* RINEX versions 2 and 3&#x20;
* Raw DAT files produced by Stonex receivers sold by Phoenix LiDAR Systems
* Raw files produced by receivers using NovAtel OEM GNSS boards (many Hemisphere, Topcon, and Leica branded receivers)

{% hint style="info" %}
If you are using RINEX format data, select the observation file (typically file extensions .22O, .23O, .24O, .obs) when importing the reference station, however ensure that the RINEX ephemeris files are also present in the same directory.&#x20;
{% endhint %}

Once the reference station is imported, configure the position by double clicking the reference station file in the project window. You can also click the settings button  <img src="/files/jjiCMKDvvsKwRNicL0IB" alt="" data-size="line">.&#x20;

Select a position from the dropdown menu:

<figure><img src="/files/4uD2mFrrvLuAg6HuNerR" alt=""><figcaption></figcaption></figure>

&#x20;In most cases, you will need to [create a position manually](/spatialexplorer-8-and-9/user-interface/windows/project/reference-stations/creating-positions), or [compute a PPP position](/spatialexplorer-8-and-9/user-interface/windows/project/reference-stations/computing-positions).


# Creating Positions

To create a new position manually, double click on the reference station in the project window and select **Manage Positions:**

<figure><img src="/files/nuGIziw9CUV2bHv9zgEG" alt=""><figcaption></figcaption></figure>

&#x20;Then, select the reference station file from the banner on the left, then click **Create** at the bottom:

<figure><img src="/files/ry232y4svYAbSatpUoz8" alt=""><figcaption></figcaption></figure>

Once your position is created, enter the[ coordinate reference system ](/spatialexplorer-8-and-9/user-interface/windows/project-setup)of the position, then enter the position and antenna model.

<figure><img src="/files/vlP4V1D0ApDBstcuGPRu" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The example above shows easting and northing coordinates, however if the position CRS is geographic (i.e. WGS84, NAD83), the dialog fields will be labeled longitude and latitude.&#x20;
{% endhint %}

Enter the position height or elevation in the **Height of Marker** field. The antenna height above the position (i.e. pole or tripod height) should be enterred in the **Height of Antenna ARP above Marker** field. Always enter pole or tripod heights in respect to the ARP (antenna reference point) - the software will account for the L1 Phase Center offset automatically based on the antenna model information.&#x20;

Once complete, click **Save & Close**.&#x20;


# Computing Positions

SpatialExplorer can compute position automatically using either **LiDARMill** or **InertialExplorer**. If you have a NavLab Embedded license, use the **InertialExplorer** option (most common).

### Computing PPP Position with InertialExplorer

If you have a NavLab Embedded license, you can compute a reference station position using **InertialExplorer**:

<figure><img src="/files/Oz99mtX3sXdUE1Bnr8Mx" alt=""><figcaption></figcaption></figure>

This will compute a position from the raw reference station data, using precise orbit and clock files from NovAtel. Typically PPP positions have a vertical accuracy around 3 - 10 cm, depending on your geographic region.&#x20;


# Using Positions with LiDARMill

If you are logged into your [LiDARMill account](/spatialexplorer-8-and-9/user-interface/toolbars/file/settings/lidarmill), you can select from positions that are saved to your LiDARMill account:

<figure><img src="/files/rJCUox4j9jIo7UqdWVF4" alt=""><figcaption></figcaption></figure>

If you intend on using the same position with multiple projects, consider saving it to your LiDARMill account, to prevent from having to enter it manually for each data set:

<figure><img src="/files/c6DvTKxZSyyA5zJsso7X" alt=""><figcaption></figcaption></figure>


# Flightplans

Flightplans can be imported and are located here. Typically flightplans are imported as KML files (e.g. created via GoogleEarth). For information on how to use Flightplans, see [**MissionGuidance documentation**](/missionguidance/introduction).&#x20;


# Geometry

Geometries are vector type data products (points, lines, polygons, and surfaces). Many different geometry file formats are supported, such as: **OBJ**, **KMZ/KML**, **SHP**, **DXF**, and **LandXML**. Geometries can be imported using File->Open.&#x20;

Geometries can be created manually in SpatialExplorer using the [**Picks**](/spatialexplorer-8-and-9/user-interface/windows/measurements-window) window. Some geometries, such as contours and meshes, can be created using the [**Create**](/spatialexplorer-8-and-9/user-interface/toolbars/analytics/create) tool.&#x20;


# Modifying Geometries

You can view the properties and features of a Geometry by clicking the **Properties** button:

<figure><img src="/files/x2cphcZTwXX5P99WfjEp" alt=""><figcaption></figcaption></figure>

## Adding and Removing Features&#x20;

In the **Geometry Properties** dialog, you can remove features by selecting the row of the feature, right clicking, and select **Remove Selected Features**:

<figure><img src="/files/gqHtffyvJTiDvw3QE7Cz" alt=""><figcaption></figcaption></figure>

To add features, use the [**Picks**](/spatialexplorer-8-and-9/user-interface/windows/measurements-window) windows to create a geometry. Ensure that the correct geometry is open for editing:

<figure><img src="/files/K8dOuW05wxKUyXEfZZ3A" alt=""><figcaption></figcaption></figure>

## Editing Geometry Properties

Many geometry formats (SHP, KML, etc) support adding custom fields to features within a geometry. By default, all features created contain a user-modifiable string field "**Description**". You can double click fields to edit them.

You can add or remove custom fields by right clicking the header and selecting **Remove Current Column** or or **Add Column**:

<figure><img src="/files/PvpYhVUYWA4XQ7vfNvP9" alt=""><figcaption></figcaption></figure>

When adding a column or field, specify the name of the column and **Column Type**:

<figure><img src="/files/tFMem3iHqLjKpXRntnma" alt=""><figcaption></figcaption></figure>

The following generic **Column Types** are available:

| Type Name      | Description           |
| -------------- | --------------------- |
| String         | Text entry            |
| Double         | Decimal number        |
| 32 bit Integer | 32-bit integer number |
| 64 bit Integer | 64-bit integer number |

You can then input values, per feature, for the custom field:

<figure><img src="/files/rXacaUQ4oAFe1aL2JGMN" alt=""><figcaption></figcaption></figure>

## Saving Geometries

Once a geometry is modified, either by modifying fields or by adding/removing features, the geometry file will be unsaved. This unsaved state is indicated by italicizing and asterisking the name:

<figure><img src="/files/pug9r2SNV33vjV25llf5" alt=""><figcaption></figcaption></figure>

To save the geometry, select it and click the **Save** icon.&#x20;

## Exporting Geometries

Geometries by default are stored as KML, due to KML's flexible structure and ability to accept user-defined fields. You can export geometries to other formats using the [Export](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/export) tool.&#x20;

{% hint style="warning" %}
Most geometry types have limitations regarding user-defined fields. KML/KMZ is rather flexible, as it's XML structure allows users to define custom fields with minimal limitations. If you plan on exporting to a different geometry type (e.g. SHP or DXF), ensure that the fields and field names comply with the geometry structure definition. &#x20;
{% endhint %}


# Grid

Any created grids will be located here. Grids can be use when fusing a pointcloud, in which case one cloud per grid cell will be fused, and they will all belong to the same [Cloud Group](/spatialexplorer-8-and-9/user-interface/windows/project/pointclouds#cloud-groups).

A grid can be created by using the **Create Grid** button and specifying the **Grid Stride**:

<figure><img src="/files/xgTP9OsdIeKGsJH8NOkY" alt=""><figcaption></figcaption></figure>


# Ground Control

Ground control points (GCPs) can be used for accuracy assessment, accuracy reporting, and data adjustment.  To import GCPs into a project, use File->Open to open a CSV file - SpatialExplorer will automatically assume that a CSV contains GCP information. You will then need to specify the coordinate system of the GCPs as well as the column assignments:

<figure><img src="/files/ucCuYmaOYbJzkNizIlpG" alt=""><figcaption></figcaption></figure>

## GCP Type

GCPs are assigned via their **Type** attribute as either **Check, Control, or Unused** points:

* Check and Control points are generally collected at the same time, using the same methodology.&#x20;
* Control points are used for data adjustments, whereas Check points are used for accuracy reporting. Control points appear orange in the main view, while check points appear blue.&#x20;
* GCPs utilized for data adjustments should not be used to validate the accuracy of the data product.&#x20;

Ensure the Coordinate Reference System (CRS) is properly configured to match the CRS that the GCPs reference. For configuring the CRS menu, refer to [**Coordinate Reference System window**](/spatialexplorer-8-and-9/user-interface/windows/project-setup).&#x20;

Visually verify the GCPs are properly georeferenced:

<figure><img src="/files/dIbSXbEKLkEXV0VdeTOb" alt=""><figcaption></figcaption></figure>

You can find more information on the principles of ground control usage and collection here:

{% file src="/files/WevkTJDlLBekNMoRUcfR" %}


# Images

Georeference imagery, such as orthomosaics or other raster images, are shown here in the project window:

<figure><img src="/files/4B5LmgT5iXZadZi6DyJF" alt=""><figcaption></figcaption></figure>

Raster images can be imported into the project using **File->Open**.&#x20;

## Tools

* <img src="/files/5firJZuJDAr1aigLdURZ" alt="" data-size="line"> **Image Properties**: Image band assignment and min/max values can be defined here:![](/files/vEWSgi8zb9OSprOPeiVA)
* <img src="/files/f5rjeohmKotI2YHJIYH9" alt="" data-size="line">  **Project to Cloud**: Colorize pointclouds using the image.&#x20;
* <img src="/files/nmPd3fM5rqYbqe7CKyyU" alt="" data-size="line">  **Rebuild Overviews:** Rebuild image overviews for different zoom-levels.&#x20;
* <img src="/files/XPD9wSSeWaW39dpUfzp1" alt="" data-size="line"> **Remove Image**: Remove the image from the project.&#x20;


# Intervals

Intervals created using the [**Create Intervals**](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/create-intervals) tool appear here, in the project window. It is possible to have several different interval lists in one project.&#x20;

<figure><img src="/files/QaVXpUmLHAZXCtOfRRkh" alt=""><figcaption></figcaption></figure>

Intervals can be modified. To remove an interval from the list, click the red **X** on the left. The **From** and **To** times (listed in GPS TOW) can also be adjusted to change the time span of the interval. If an interval's time span is adjusted to overlap an existing interval's time span, SpatialExplorer will prompt you to either combine the two intervals or terminate the modified interval at the beginning of the existing interval.

### Manual Interval Creation

Intervals can also be created manually. Select at least two positions along your trajectory. You should see these two positions in the measurements window:

<figure><img src="/files/kBMG5Vjp5t32IfgLQrQ7" alt=""><figcaption></figcaption></figure>

Then, use the **Create Intervals From Measurements** tool, located at the bottom of the interval list menu:

<figure><img src="/files/QD7NYW94uX9g2ovyx8Ld" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You can create multiple intervals at once using this tool. Simply select the beginnings and ends of your desired intervals along the trajectory and click **Create Intervals From Measurements**. Measurements will be sorted by time prior to interval creation. &#x20;
{% endhint %}


# Trajectories

The Trajectories section of the Project window shows all trajectories present in the project:

<figure><img src="/files/okPyvKxCwpV0Y8wcu9UZ" alt=""><figcaption></figcaption></figure>

## Active Trajectory

It's possible to have several trajectories that cover the same time range - such is the case in the example shown above. Only the active trajectory will be used for fusing a pointcloud. The active trajectory is displayed in bold font, which in this case is the POF trajectory created by LiDARSnap.&#x20;

{% hint style="info" %}
If you merge multiple PLP files into one project, you will have several active trajectories, corresponding to the number of PLPs merged.&#x20;
{% endhint %}

If you change the active trajectory, by activating a new trajectory, the pointcloud will need to be recomputed using the[ recompute button](/spatialexplorer-8-and-9/user-interface/windows/project/pointclouds#tools) to reflect the updated positions of all points.&#x20;

## Types of Trajectories

Various trajectory formats are processable in SpatialExplorer:

* **NAV**: A real-time trajectory created by the navigation system during data acquisition. This trajectory is not suitable for producing deliverable data but can be useful for fusing pointclouds in the field as part of a field check.
* **CTS**: A tightly coupled trajectory. This is the default format of LiDARMill produced trajectories. Can be suitable for data production but may, particularly in the case of mobile or pedestrian lidar applications, contain errors which require LiDARSnap optimization. &#x20;
* **CLS**: A loosely coupled trajectory. Similar to CTS in terms of quality.&#x20;
* **POF**: Typically, POF files are produced by LiDARSnap, however Riegl software applications also use the POF format. An optimized POF trajectory created by LiDARSnap is the recommended trajectory for data production.&#x20;
* **OUT**: An SBET trajectory. Commonly produced by 3rd party software. Suitable for data production.

## Tools

* <img src="/files/0NC5WVLxVkfOdBv3owoZ" alt="" data-size="line"> **Open Trajectory Folder**: Opens the folder where the trajectory is stored.&#x20;
* <img src="/files/XoBLH09HQ1ZLgwf7HcJx" alt="" data-size="line"> **Activate Trajectory**: Sets the trajectory as the active trajectory, for which all lidar and camera records should reference to obtain world positions.&#x20;
* **Show Trajectory Report**: Shows associated trajectory report, only available for trajectories created using NavLab Embedded.&#x20;
* <img src="/files/tBHq8dlCzWY698FESQgx" alt="" data-size="line"> **Export Trajectory**: Exports the trajectory to a variety different trajectory file formats (POF, OUT/SBET, TXT, TRJ)
* <img src="/files/LaeZDAeeb82pXcL7rdPV" alt="" data-size="line"> **Select Color**: Selects the color used to visualize the trajectory in the main view.&#x20;
* <img src="/files/2SAv1Wz7yW1sxQnfaSvT" alt="" data-size="line"> **Clear Trajectory**: Used in real-time to clear the trajectory in the main view.&#x20;
* <img src="/files/YDVGFGt4dYWemRtz0F1Y" alt="" data-size="line"> **Remove Trajectory**: Removes trajectory from the project.


# Pointclouds

All pointclouds in a project will have any entry in the project window. The pointcloud menu belonging to each cloud has **Visualization** and **History** tabs, as well as various **Tools** at the bottom of the menu.

## Creating and Saving CLOUD Files

The cloud file (.cloud), is a Phoenix LiDAR proprietary pointcloud format (for exporting to LAZ, see the [Export menu](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/export)). Clouds are initially created using the [Create Cloud](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/create-cloud) tool, or by [Playback ](/spatialexplorer-8-and-9/user-interface/windows/project-player)fusing.&#x20;

After a cloud is created, it can be modified. Some cloud modifications automatically save during their processing, such as colorization or ground classification. Other changes, like trajectory optimization, result in a recomputed cloud that contains changes which are not written to disk. More information about recomputing is located in the [Tools](#tools) section of this page

A cloud has changes which are not written to disk whenever the cloud appears in an italicized, bold font with an asterisk next to the name:

<figure><img src="/files/tDfaLJBoQwuEqe0lV2qO" alt=""><figcaption></figcaption></figure>

To commit the changes, and save the cloud's current state to disk, simply use **File->Save**. All committed changes can be viewed in the cloud's[ **History**](#history) tab.&#x20;

## Visualization

The Visualization tab can be used to adjust the attribute(s) used to visualize the cloud:

<figure><img src="/files/oEH0rvleUt2Pe0m30iBj" alt=""><figcaption></figcaption></figure>

The visualization can be adjusted using the **C** and **V** sliders, which stand for ***color*** and ***visibility***. Adjusting the **visibility** slider will change which points are visible, based on the attribute being modified. Adjusting the **color** slider will change the start and end attribute values associated with the start (blue) and end (red) of the color ramp.&#x20;

**Update Histograms from Cloud** may be necessary when the cloud has been recomputed and the attribute visualization no longer reflects the current state of the cloud. This is also used to load attributes when a cloud is imported from an LAZ.&#x20;

{% hint style="info" %}
Points hidden using the Visualization tab's sliders and drop downs will still be selected when using spatial [selection tools](/spatialexplorer-8-and-9/user-interface/toolbars/data-visualization) (polygon, above-line, below-line). For advanced classification based on point attributes (intensity, height above ground, etc.), please refer to the [Cloud Script Tool](/spatialexplorer-8-and-9/user-interface/toolbars/data-visualization/cloud-script-tool).&#x20;
{% endhint %}

### Example: MTA Uncertainty

Newly created point clouds will now show both certain and uncertain points as determined by the 'disambiguate LiDAR ranging' tool.

This applies to all Ranger Systems using SpatialExplorer 9.0.2 onwards.

MTA uncertainty is a new visualization attribute:&#x20;

* 0 for certain points are visualized blue by default.
* 1 for uncertain points are visualized red by default.

<figure><img src="/files/7uIJNFDGd8YRfT8eaQkI" alt=""><figcaption><p>Uncertain points are visualized red by default.</p></figcaption></figure>

If you want to classify these out as noise, you can use the Edit Cloud Script tool to select these points, then the Classify by Class tool to class them all as noise.

{% tabs %}
{% tab title="Cloud Script" %}

<figure><img src="/files/dOMDDvzrIjgzhztGVw6q" alt=""><figcaption><p>The MTA uncertain points will become highlighted once you click 'OK'</p></figcaption></figure>
{% endtab %}

{% tab title="Classify as Noise" %}

<figure><img src="/files/tfR369lgPuwTgRkBXKFL" alt=""><figcaption><p>Classify by Class on the highlighted uncertain point</p></figcaption></figure>
{% endtab %}

{% tab title="Confirm Classification" %}

<figure><img src="/files/54W7MmC1rjFtSo2kKvvW" alt=""><figcaption><p>You can now deselect the 07 noise class under the classification attribute to remove these points from future visualizations.</p></figcaption></figure>
{% endtab %}
{% endtabs %}

## History

The **History** tab shows committed changes to the cloud. You can **View Commits**, or **Reset to Commit**, which resets the state of the cloud to the selected commit.&#x20;

<figure><img src="/files/a8LweARqC8TRxXU2gJmK" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Reset to Commit** is useful when changes to a cloud need to be reverted.
{% endhint %}

## Tools

* <img src="/files/Y8vkyPSjB21jkcCZUM6t" alt="" data-size="line"> Recompute Cloud: This tool recomputes all points' positions within the cloud based on the current active trajectories, vehicle->IMU transform, and IMU->sensor transforms. Changes created when recomputing are not initially written to disk, and must be written via File->Save, if desired.&#x20;
* <img src="/files/ObXnZqghButkFNX6YoI7" alt="" data-size="line"> Inspect Cloud: View detailed information about the cloud file stored on disk.
* <img src="/files/nqn3bix0Xa85Th5I65zl" alt="" data-size="line"> Delete cloud: Removes cloud from the project (PLP).&#x20;

{% hint style="info" %}
**Recompute Cloud** tool allows users to quickly experiment with different trajectories and sensor calibration settings, without having to re-fuse a pointcloud.&#x20;
{% endhint %}

## Cloud Groups

When creating a cloud using the [**Create Cloud** ](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/create-cloud)tool, you have the option to create a single cloud or fuse to a grid. When fusing to a grid, one cloud file will be created per grid cell:

<figure><img src="/files/5fimLZUCNgT6KHFFcBh3" alt=""><figcaption></figcaption></figure>

To open a cloud group, **File->Open** one of the cloud files, and SpatialExplorer will automatically open the remainder of the group.&#x20;

When working with data sets that cover a large spatial area (greater than 2 sq. km or 500 acres), it's best to use a cloud group, rather than a single cloud. The most notable advantage to processing with a cloud group is faster processing speeds with classification routines (such as Classify Ground).&#x20;

Working with cloud groups is essentially the same as working with a single cloud, and the only difference to the user is the presence of many CLOUD files on disk.&#x20;


# Terrains

You can enable an **OpenStreetMap** terrain from the **Terrains** section of the project window:

<figure><img src="/files/2T1TSvtHlH32RKOfn12Z" alt=""><figcaption></figcaption></figure>

This terrain can be useful for troubleshooting the global position of your data:

<figure><img src="/files/xEiuVmApFiG8U6evLopE" alt=""><figcaption></figcaption></figure>

This OpenStreetMap mesh can also be useful with MissionGuidance. If you plan to use MissionGuidance offline, consider downloading the OpenStreetMap tiles using the **Download Map** button. This will bring you to the World Map menu, where you can select a region to download using the button in the top left:

<figure><img src="/files/xfswr2hPtHLFutVMJyWx" alt=""><figcaption></figcaption></figure>

Once you have selected your region and **Zoom Level**, click **Download Map**. The map tiles will now be cached and available for offline access.&#x20;


# Project Player

The project player organizes records in a timeline format. This enables the user to see the time span covered by records such as lidar data, camera data, processing intervals, trajectories and reference stations:

<figure><img src="/files/GRF8W2KKabq6xZuLjDiO" alt=""><figcaption><p>Project player with several different types of records.</p></figcaption></figure>

Data playback can be initiated by clicking on the **playback button (A)** on the far left of the window. The user can also seek to a specific time by clicking the **seek icon (B):**

<figure><img src="/files/1k8nQxoBbU0Vv7ZXaMmh" alt=""><figcaption></figcaption></figure>


# Sensors

{% hint style="warning" %}
This window is used during data acquisition and is only visible when you are connected to a lidar system. See [connect to rover](/spatialexplorer-8-and-9/user-interface/toolbars/rover/connect-to-rover) for more information.&#x20;
{% endhint %}

The Sensors window allows the user to enable/disable sensors:

<figure><img src="/files/TdXMnVkhriI3FaV0xtID" alt=""><figcaption></figcaption></figure>

Sensors can be set to the following statuses:

* **OFF** - no data is recorded or displayed
* **SLT** - data is recorded, but real-time points are not displayed. With cameras that support real-time previews (A6K-lite), real-time previews will **NOT** be displayed.&#x20;
* **ACT** - data is recorded and real-time points are displayed. With cameras that support real-time previews (A6K-lite), real-time previews will be displayed.&#x20;

{% hint style="info" %}
While **SLT** mode does not display recorded data in real-time, it's still possible to ensure that sensors are recording data by monitoring the [statistics](/spatialexplorer-8-and-9/user-interface/windows/system-monitor#statistics) window, which displays the number of packets received from the sensor.&#x20;
{% endhint %}


# SLAM

The SLAM window is used to initiate SLAM processing, as well as to optimize a SLAM cloud:

<figure><img src="/files/xtb4RYBDsjTnQKIsBNNz" alt=""><figcaption></figcaption></figure>

### Manage SLAM

The Manage SLAM menu contains tools to start SLAM processing, as well as to quit, save, or re-open an existing SLAM cloud.

* **Start SLAM**: Used to start SLAM. The **SLAM Processing Profile** dialog will open upon clicking **Start SLAM**.
* **Restore SLAM session:** Used to restore a previous SLAM session (PBSTREAM file).&#x20;
* **Finalize and save SLAM session:** Used to save a SLAM session to a PBSTREAM file. This will also create a PLP and CLOUD file associated with the SLAM session.&#x20;
* **Write trajectory: Writes SLAM trajectory to a POF file.**&#x20;
* **Write positions to PVA**: Writes the positions from the SLAM trajectory to a PVA update file, used in InertialExplorer.&#x20;
* **Quit SLAM**: Quits SLAM processing. If the SLAM session has not yet been saved, it will discard the session and the SLAM cloud.&#x20;

### Optimization Weights

Certain parameters that control the SLAM filter are configurable on the fly, meaning that these parameters can be adjusted and the SLAM trajectory and SLAM cloud will be recomputed immediately. Restored SLAM sessions can also be recomputed and re-optimized by adjusting these settings.&#x20;

* **Georef. weight:** This is the weight of GNSS updates in the SLAM filter. GNSS updates can come from a NAV, CG, or CTS file loaded into the project
* **Georef inlier scale:** The georeferencing inlier scale specifies the distance from trajectory at which GNSS measurement start having diminishing effect. This parameter can be set to a smaller distance at the very end in order to eliminate the effect of outlier measurements.
* **Gravity alignment weight 1:** Performs global gravity (i.e. pitch/roll) alignment of the trajectory according to the IMU measurements, while also having a "smoothing" effect on the trajectory positions. In our testing, a moderate (10-200) weight on the gravity alignment 1 has proven to work.
* **Gravity alignment 2:** An alternative implementation of gravity alignment 1 (albeit it should not have the "smoothing" effect).&#x20;
* **Corrections:** This is the weight applied to user-select corrections.&#x20;


# SLAM Processing Profile

The **SLAM Processing Profile** contains a **General**, **Advanced**, and **Tree** menu. Most users should focus on just the **General** tab:

<figure><img src="/files/EZAAA9kuvMAs68TQxMWQ" alt=""><figcaption></figcaption></figure>

**Movement profile**: This essentially controls how many sweeps are stored in each submap. Collectively all submaps make up the entire scan. Breaking the scan into numerous submaps enable SLAM to account for drift better, and individually adjust different parts of the scan. If you move quickly, such as a vehicle acquired data set, you want to more quickly make new submaps, thus use the **Standard movement profile**. If you move slower, such as the context of a pedestrian scan, you want to make new submaps slower, because you traverse less distance per unit time, so the **on foot movement profile** will be best in that context.&#x20;

**Map resolution**: **Fine map resolution** is usually better in terms of accuracy, but in the case of mobile data sets, **standard resolution** may need to be used due to CPU resource limitations.&#x20;

**Visibility range:** If you are in an outdoor environment, **Long visibility range** may be best. Typically with indoor data sets **Standard Visibility** is used.&#x20;

**Measurement source for georeferencing**: Typically this is the GNSS Antenna positions from active trajectory.&#x20;

**Search for loop closures**: Loop closure refers to the SLAM algorithm adjusting it's current map and trajectory based on the appearance of a feature that was previously scanned. As you scan in a GNSS denied environment, the position as determined by SLAM drifts from the true position. Loop closure can effectively reduce this drift by adjusting the current map to a previous map which was created with presumably less drift.

<figure><img src="/files/Jq4RcbcbuLCegTdGumQg" alt=""><figcaption><p>Loop closure used to mitigate trajectory drift.</p></figcaption></figure>

**Periodically optimize trajectory:** This will update the SLAM cloud periodically. Users can manually optimize the cloud by clicking **Optimize.**&#x20;


# System Monitor

{% hint style="warning" %}
This window is used during data acquisition and is only visible when you are connected to a lidar system. See [connect to rover](/spatialexplorer-8-and-9/user-interface/toolbars/rover/connect-to-rover) for more information.&#x20;
{% endhint %}

The System Monitor window displays various system parameters relating to the rover and its attached sensors. The types of parameters monitored are Pose (latitude/longitude, roll/pitch/yaw), GNSS/INS Navigation System (PosStatus, UncertaintyP, CorrAge), and Statistics (number of recorded navigation system packets, lidar data packets, and photos).

<figure><img src="/files/T1O2K6LIOMeeHKEQyNFI" alt=""><figcaption></figcaption></figure>

There are numerous statistics displayed in the System Monitor window:

## Pose

* **Lat** - Latitude&#x20;
  * Rover's latitude (WGS84)
* **Lon** - Longitude
  * Rover's longitude (WGS84)
* **Vel H/V** - Velocity Horizontal/Vertical&#x20;
  * Rover's horizontal/vertical velocity in m/s
* **Roll** - Rover's roll orientation in degrees&#x20;
* **Pitch**- Rover's pitch orientation in degrees&#x20;
* **Yaw**- Rover's yaw orientation in degrees&#x20;

## NavigationSystem&#x20;

* **PosStatus** - GNSS Position Status
  * The GNSS solution status (e.g. Solution computed, insufficient observations)
* **PosType** - GNSS Position Type
  * e.g. SinglePoint, IntegerNarrowLane
* **INS** - Navigation System Status
  * [status of the GNSS/IMU navigation filter](/data-acquisition-and-uav-piloting/navigation-and-alignment-techniques/further-reading/navigation-system-alignment)
* **Time** - GNSS reference time status
  * e.g. Coarse, Finesteering
* **UncertP** - Uncertainty Position
  * Unitless covariance value relating to the rover’s position uncertainty. The lower the values the better; minimizing this value produces a more accurate sensor trajectories and thus more accurate measurements
* **UncertA** - Uncertainty Attitude
  * Unitless covariance value relating to the rover’s orientation uncertainty. The lower the values the better; minimizing this value produces a more accurate sensor trajectories and thus more accurate measurements
* **CorrAge** - Corrections Age
  * Age of the last received differential correction in seconds (Applies to RTK corrections and will remain 0 when reference station is not connected to rover)
* **Align** - Status of Dual-Antenna Heading Solution
  * This string indicates the position type and satellite count of the dual-antenna, align solution.&#x20;
  * Example: *"**Ok InlN 23**"*
    1. "**Ok**": Align solution status.
    2. "**Fnl**": Position type of secondary antenna. Note that only Integer Narrow Lane (**Inl**) position types will be used by either the **real-time INS** or **post-processing software** (NavLab or Inertial Explorer). Possible position types include:
       * **Fnl**: "float narrow lane"
       * **Inl**: "Integer narrow lane"
    3. "**N"**: Verified ("V") or not verified ("N").  Verification is a secondary check on the secondary antenna position quality, however non-verified updates will still be utilized by the real-time INS and post-processing software. Non-verified updates typically indicate noisy GNSS data on the secondary antenna.&#x20;
    4. "**23**": Number of satellites used in the heading solution.&#x20;
* **CPU Load** - INS CPU load
  * CPU Load of the GNSS/Inertial Navigation System expressed in %
* **Satellites** - Number of Satellites
  * Satellites count observed by rover GNSS receiver&#x20;
* **DOP H/V** - Dilution Of Precision Horizontal/Vertical
  * Term used to specify the error propagation as a mathematical effect of navigation satellite geometry on positional measurement precision. The lower the better.&#x20;
* **Temp** - Navigation/IMU system temperature
  * Temperature in the navigation system/IMU
* **SolAge GNSS** - GNSS Solution Age
  * Age of the last computed GNSS solution in seconds
* **SolAge RTK** - RTK-GNSS Solution Age
  * Age of the last computed RTK-GNSS solution in seconds

## Statistics

* **Packets Nav** **Ok/Err** - Navigation Packets
  * Number of navigation packets collected / Number of packets with detected issues&#x20;
* **Packets IMU**
  * Number of packets received from the IMU
* **Data LiDAR** - LiDAR data recorded
  * Size of recorded LiDAR data file(s)
* **Photos Captured** - Number of photos captured


# Toolbars

Processing Tools in SpatialExplorer are divided into Toolbars. The rover toolbar contains tools used to interface with lidar hardware during data acquisition.&#x20;


# File

The File tab contains file operations.

<figure><img src="/files/d4j8pU5TsSW6xyY40CY2" alt=""><figcaption></figcaption></figure>

**Recent Files**

Navigate to recently used file locations

**Close Project**

Close out of current PLP project file

**Save Project as...**&#x20;

Save a new PLP project file

**Save Project**&#x20;

Save current PLP project file

**Open File...**&#x20;

Open existing PLP project file

**Save Screenshot...**&#x20;

Save Screenshot of SpatialExplorer Interface

**Quit**&#x20;

Exit out of SpatialExplorer Program


# Settings

Many local settings are contained in the File->Settings menu.&#x20;


# General

<figure><img src="/files/bYv7zM4RtCY06BZIsEAa" alt=""><figcaption></figcaption></figure>

General settings includes the following:

**Language**: Language used in SpatialExplorer

**Vehicle**: This setting can be used to display an animated vehicle in [**Main View**](/spatialexplorer-8-and-9/user-interface/windows/main-view). This is particularly useful when visualizing the acquisition using the [**ProjectPlayer**](/spatialexplorer-8-and-9/user-interface/windows/project-player).&#x20;

**Projection**: The [**Main View** ](/spatialexplorer-8-and-9/user-interface/windows/main-view)projection can be either orthometric or perspective. In orthometric mode, no perspective-based distortion will occur (i.e. sets of parallel lines will remain parallel despite the camera view).&#x20;


# Processing

<figure><img src="/files/7Q4PH4O2VALZbd3kpFlO" alt=""><figcaption></figcaption></figure>

Processing settings include the following:

**Temporary Storage**: Set the temporary storage directory here. Certain processes utilize temporary storge (LiDARSnap, SLAM). When processing large data sets (100 GB CLOUD file or larger), ensure that you have at least 200 GB of free temporary space.&#x20;

**LiDAR Range Disambiguation - Number of parallel processes**: This setting pertains to the [Disambiguate Lidar Ranging](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidar) tool. Multiple raw lidar files (RXPs) can be processed in parallel. The number of parallel processes that can be run is dependent on your workstation's processing resources, however with most modern workstations, this value can be set to 3 or 4.&#x20;


# LiDARMill

Users can use this menu to login to LiDARMill. This enables them to access saved [reference station positions ](/spatialexplorer-8-and-9/user-interface/windows/project/reference-stations)stored on LiDARMill:

<figure><img src="/files/2Xf6r0nDTixAyE5B9bRB" alt=""><figcaption></figcaption></figure>


# Shortcuts

Shortcuts can be configured in the SE local settings menu. This enables the user to set hotkeys which select different selection tools.&#x20;

To specify a custom short cut, click the **Shortcut** field, then type the key command on your keyboard:

<figure><img src="/files/DQCdgEmctNl0hqj4W5t4" alt=""><figcaption></figcaption></figure>


# View

The View tab enables users to adjust viewing parameters within Spatial Explorer.

<figure><img src="/files/aQD2CN6XgHb5P5MZgQgV" alt=""><figcaption></figcaption></figure>

### View Tool

Used to navigate within the main view. This is the default function of the mouse cursor. Left click and hold to pan the view. Right click and hold to move the view origin. **To orbit around a specified location, or center the view on a specific point, right click on the point.**&#x20;

### Profile Tool

To view a profile of the cloud, select the profile tool. The first two mouse clicks in the [main view](/spatialexplorer-8-and-9/user-interface/windows/main-view) define the profile location and direction, with the third click defining the width of the profile:

<figure><img src="/files/Q2DPOm5qHNsp2siXX1Cl" alt=""><figcaption></figcaption></figure>

With the width, length, and direction defined, you can now place the profile into a view. A green bar at the top of the view is used to indicate which view the profile will be inserted into, in this case the profile will be inserted into the left view:

<figure><img src="/files/d051i1X6UvgXvdzEboQi" alt=""><figcaption></figcaption></figure>

**Zoom In** or **Zoom Out** on content in main view.

**Show Fullscreen**&#x20;

Enables/disables SpatialExplorer to be viewed in full-screen mode.

**Reset Camera**&#x20;

Resets main to display data in a top-down and centered view&#x20;

**Show Mouse Cursor**&#x20;

Enables/disables display of mouse cursor&#x20;

**Show Compass**&#x20;

Enables/disables display of compass correlating to data orientation (top right corner of data viewer):

![Show Compass Enabled](/files/2fDZgQrTnjrp8KOAxeD1)

**Show Sun Position**&#x20;

Enables/disables display of sun angle vector on compass:

![Show Sun Position Enabled](/files/-MaAoHYk9-1lUa1F6QUu)

**Rotate View**

Rotates the main view. With the slider centered the main view remains static. Move slider to the left to rotate main view clockwise. Move slider to the right to rotate the data counterclockwise.

**BG Brightness**

Adjust data viewer background brightness within data viewer. 0=black, 1 = white.&#x20;

**Eye-Dome Lighting**&#x20;

A non-photorealistic lighting model, which helps accentuate the shapes of different objects within the point cloud by grouping points which are close to each other, and shading their outlines. 0 = no EDL effect, 1= Maximum EDL effect&#x20;

**Eye-Dome Radius**&#x20;

EDL point grouping radius. The higher the number, the more accentuated the EDL effect.&#x20;


# Selection

The Selection Toolbar consists of interactive selection tools, most of which are intended to be used with the [Classify on Selection](/spatialexplorer-8-and-9/user-interface/windows/classify-on-selection) window. When selection tools are used within a profile view, the classification will only apply to points that are inside the display extent and depth of the profile view.

<figure><img src="/files/HEUDlvQ89w8ZmAXKqOwx" alt=""><figcaption></figcaption></figure>

### Rectangular Selection Tool

Selects points contained inside a rectangle. Left click button to activate, then left click to place the top left vertex of the rectangle. Hold the left mouse button and drag to expand the rectangle.&#x20;

### Polygon Selection Tool

Selects points contained inside a polygon. Left click button to activate, then left click to create an initial vertex of polygon. Continue adding vertices by left clicking, then left click on the initial vertex to finalize the polygon.

### Classify Above Line Tool &#x20;

This tool classifies points above a line drawn in either a 2D cross section (profile) view or within a 3D view.

### Classify Below Line Tool &#x20;

Classifies points below a line drawn in either a 2D cross section (profile) view or within a 3D view.

### Classify Left of Line Tool &#x20;

Classifies points to the left of a line drawn in either a 2D cross section (profile) view or within a 3D view.

### Classify Right of Line Tool &#x20;

Classifies points to the right of a line drawn in either a 2D cross section (profile) view or within a 3D view.

### Classify Between Lines Tool &#x20;

Classifies points between two lines drawn in either a 2D cross section (profile) view or within a 3D view.&#x20;

### Invert Selection Tool

Inverts current point selection.

### Deselection Tool

Deselects selected points.&#x20;

### Hide Unselected Points

Used to only display selected points in main view.


# Cloud Script Tool

The Cloud Script Tool in the Edit Cloud Script window makes selections by querying point attributes.

<figure><img src="/files/f9nm94XwXQujGVUgr9gD" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xtqRDZItobOBDTbZFVDO" alt=""><figcaption></figcaption></figure>

To clear a cloud script selection, clear the text in the script field then click the green check mark again:

<figure><img src="/files/4rCd3knCwrRFC9j5Qfjo" alt=""><figcaption></figcaption></figure>

### Example: Using Cloud Script to classify points based on height above ground.&#x20;

<figure><img src="/files/fYuymIxFiQcqAqk0R16a" alt=""><figcaption><p>This script selects/queries all points of class 0 that are between 0 cm and 250 cm above the ground.</p></figcaption></figure>

The selected/queried points will be highlighted in the main view, as shown in the above example. You can then classify these selected points using the [Classify By Class ](/spatialexplorer-8-and-9/user-interface/toolbars/analytics/classify/classify-by-class)tool. A yellow message will be displayed, indicating that this classification is based on your cloud query from the cloud script tool.

<figure><img src="/files/7pN0ryAMDyolTqJu7DKd" alt=""><figcaption><p>Yellow message indicating that only the highlighted query will be classified to the output.</p></figcaption></figure>


# Workflow

The workflow tab contains many tools used in a typical lidar data processing workflow.

<figure><img src="/files/EaKTmnCAtEqVltrldb5c" alt=""><figcaption></figcaption></figure>


# NavLab Embedded

NavLab Embedded produces a refined trajectory using raw navigation data recorded by the lidar system.

<figure><img src="/files/0VFexWQ1WlLJvc3faVZX" alt=""><figcaption></figcaption></figure>

The NavLab embedded is used to process the lidar systems navigation data through a PPK filter. Typically, a GNSS reference station is used, however PPP processing can also be performed in NavLab. If available, [import your GNSS reference station](/spatialexplorer-8-and-9/user-interface/windows/project/reference-stations) prior to running NavLab.&#x20;

NavLab Embedded displays Rover and Reference Station sessions in the **Rover** and **Reference Stations** panes.  If you have multiple flights in the same area, which all require the same GNSS reference station file, you should ensure that all PLP files are opened, and that all rover GNSS sessions are visible in the NavLab window:

<figure><img src="/files/8FBaow4YSpqIs92y8vI5" alt=""><figcaption><p>Multiple Rover sessions in the NavLab window</p></figcaption></figure>

{% hint style="warning" %}
If you are processing with differential GNSS, ensure your reference station Position Name, Antenna Type, and CRS Name are displayed correctly.&#x20;
{% endhint %}

Ensure the following options are correctly selected:

**Output directory**: Output directory of files created by NavLab Embedded.&#x20;

**Processing datum**: Typically, this should be the datum of your project's coordinate reference system. This is NOT necessarily your project coordinate system. NavLab embedded processes within a datum only (spherical coordinate system), so if you are using a projected coordinate system (UTM, State Plane, etc.), select only the datum associated with your coordinate system.&#x20;

**Output Formats**: InertialExplorer is the default format. Users can optionally add SBET or SBTC output formats.&#x20;

**Processing Type**: Processing type determines how GNSS data is processed (PPP or Differential) and how the INS solution is coupled (tightly coupled or loosely coupled). Typically, **Differential GNSS and INS Tightly Coupled** performs the best with aerial, mobile, and pedestrian data.

{% hint style="warning" %}
The **Differential GNSS** processing type generates only a processed GNSS file (.CG file), which has no attitude information and cannot be used to build a point cloud. This processing mode is typically only used for SLAM processing.&#x20;
{% endhint %}

{% hint style="info" %}
Any processing type that utilizes **PPP** GNSS processing does not require reference station data. PPP processing utilizes refined ephemeris products to re-compute the lidar's raw GNSS data, thus it is required to download precise files.
{% endhint %}

**Profile**: Select your IMU and profile (Airborne, mobile, UAV, etc.). With aerial data sets, typically the **Airborne** profile performs best, with the **UAV** profile being a good alternative. Mobile data sets, collected using a ground vehicle, should use the **Ground Vehicle** profile.


# Processing Options

Some basic processing options are shown in the main NavLab window:

* **Multi-pass**: processing is typically performed in the forward and reverse directions. Multi-pass will enable processing in the forward and reverse directions several times each and all results will be combined.
* **Precise files**: Precise files are clock and ephemeris products produced by NovAtel. Typically, it's beneficial to download precise files.&#x20;
* **Enable AR:** This enables PPP-AR (Precise Point Positioning with Ambiguity Resolution). PPP-AR uses refined ephemeris and clock bias correction products to improve GNSS processing results when differential GNSS is not available (i.e. when a reference station is not used during processing). This feature requires an NRT license (see[ Tools->Licensing](/spatialexplorer-8-and-9/user-interface/toolbars/tools/licensing)).

Additionally some advanced options are available in the Advanced Options window:

<figure><img src="/files/2F5MOEqH2HVb02Jyw5BE" alt=""><figcaption></figcaption></figure>

#### **Alignment method:** Alignment method determines how an initial heading/yaw value is estimated:

* Auto: allow the software to select between static and kinematic.
* Kinematic: Align kinematically. This is the most common method, and is supported by all IMUs.
* Static: Align statically. This method is only supported by high performance IMUs, such as the IMU-32, 52, and 60.

#### **Minimum alignment velocity:** When aligning kinematically, this parameter can be used to restrict alignment to some minimum lateral speed. This is ideal for preventing prematurely aligning, such as during taxiing or takeoff.&#x20;

#### **Enable Doppler Velocities:** Vehicle velocity can be estimated using GNSS doppler information. Noisy GNSS doppler information can degrade trajectory processing, however this is uncommon.

#### **Ionospheric processing**: Ionospheric processing, also referred to as dual frequency processing, improves trajectory solutions when baseline lengths (distance between GNSS reference station and lidar system) are long (> 7 km), however with very short baselines, results are typically best without ionospheric processing. When set to automatic, NavLab will enable/disable Ionospheric processing automatically based on the discard tolerance set below.

#### **Discard tolerance**: Discard tolerance is the baseline distance below which Ionospheric processing will be disabled if Ionospheric processing is set to Automatic.

#### **Criteria for accepting new fixes:** This controls how frequently re-fixing of carrier phase ambiguities occurs. When set to **Default**, re-fixing occurs somewhat frequently, using the default A-RTK settings. This is ideal with mobile and pedestrian data, and may also improve airborne data. If set to **On-engage only**, ambiguities will be fixed at the beginning of processing, and will only be re-fixed in the event of a high PDOP.

#### **Quality acceptance criteria:** This controls the maximum quality factor accepted when re-fixing carrier phase ambiguities. The lower the quality factor number, the lower the RMS error of the epoch, and the lower the probability of an incorrect fix.

#### **Constellations to use**: Select which GNSS satellite constellations to use during processing. Only disable a constellation if there is a known issue with that constellation in the acquired data.

#### **PVA file:** PVA files can be used for importing external vehicle position updates.


# Estimating Primary Antenna Lever Arm

## **Estimate Primary Lever Arms**

NavLab computes X iterations (specified by user) and the resulting lever arm measurement convergence is plotted below, with the X axis showing iteration number, and the Y axis showing lever arm offsets colored by X,Y,Z lever arm calculations (Forward direction on the left, Reverse on the right). Note that Inertial Explorer's ability to estimate lever arm values is dependent on the quality of the initial lever arm measurement input, correct vehicle body rotation, the amount of data collected, and proper vehicle dynamics.

<figure><img src="/files/vqhg2E0S2vuB8qEnvQ45" alt=""><figcaption></figcaption></figure>


# Create Intervals

Processing intervals are used to exclude unnecessary data. Intervals are also involved during lidar calibration and relative accuracy reporting.

###

<figure><img src="/files/lcM8EzNG8CASKsqystAz" alt=""><figcaption></figcaption></figure>

### Automatic Intervals

Using the **AutoSplit Trajectories** tool, the user can specify parameters related to flight velocity, angular velocity and minimum interval duration to automatically remove turns and split the trajectory into straight-line processing intervals, sometimes referred to as flight lines:

<figure><img src="/files/ZAYbfXQhukWIYHZeaINp" alt=""><figcaption></figcaption></figure>

Intervals will be depicted in magenta in the main view:

<figure><img src="/files/jHlDkbZpZjWunfl9TbDF" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: With the **AutoSplit Trajectories** window open, you can reconfigure parameters and click "Compute" to recompute intervals.&#x20;
{% endhint %}

The interval list will be visible in the project tree, located under [**Intervals**](/spatialexplorer-8-and-9/user-interface/windows/project/intervals). Here, multiple lists of intervals can be stored (e.g., one list of intervals for sensor calibration and another interval list for data production):

<figure><img src="/files/PDzohOxFtoQP3int0QPX" alt=""><figcaption><p>An interval list </p></figcaption></figure>

For more information regarding modifying interval lists, merging intervals, or creating intervals manually, see [**Project->Intervals**](/spatialexplorer-8-and-9/user-interface/windows/project/intervals).&#x20;

###


# Disambiguate Lidar Ranging

Data recorded by Riegl lidar scanners requires range disambiguation.

<figure><img src="/files/rCtLxRnBJ9pt7pt3gYWc" alt=""><figcaption></figcaption></figure>

Raw LiDAR files (.rxp files) are uploaded to the project at the same time the PLP is opened. If you have a **RANGER** series scanner (VUX-1, VUX-120, VUX-160, VUX-240), you will need to convert your RXP files to SDCX prior to building a point cloud.&#x20;

{% hint style="info" %}
SDCX file conversion is only necessary for systems with a Riegl LiDAR scanner. LiDAR data from any of the Scout, RECON, or AL3 series systems do not require this step.
{% endhint %}

Add the RXP files from your project folder and click **Process**:

<figure><img src="/files/oZkCMOvH6CtrrfviD9Yx" alt=""><figcaption></figcaption></figure>

Once processing is complete, SpatialExplorer will prompt you to replace the RXP files with SDCX files:

<figure><img src="/files/ZvenC8B7QYcGsFxrlqsv" alt=""><figcaption></figcaption></figure>

After adding the SDCX files to the project, you should notice that the LiDAR sessions now reference SDCX files (rather than the original RXP files):&#x20;

![Project Window->LiDAR->Acquisition references SDCX files, rather than the raw RXP files.](/files/ZAioppjWnjCwPC3odtjP)

{% hint style="warning" %}
**SDCX conversion can fail**. The most common reason for failure is that the input RXP file contains an insufficient amount of data (e.g. an RXP file that was created when testing the sensor, and contains only 5 - 10 seconds of data). In this case, no action is necessary, and the unprocessed RXP file can remain in the project, as it is unlikely to be used during point cloud production.&#x20;
{% endhint %}


# Create Cloud

Point clouds can be produced using the Create Cloud tool.

<figure><img src="/files/A4WHcDEHvqJyGvTTODxW" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/BeAJLS8JCVSYiyDYYge5" alt=""><figcaption></figcaption></figure>

**Time Intervals**: It's especially common with aerial-acquired data to fuse only select [processing intervals](/spatialexplorer-8-and-9/user-interface/windows/project/intervals), rather than to fuse all data.&#x20;

**Grid**: Fusing to a grid enables the user to create a [cloud group](/spatialexplorer-8-and-9/user-interface/windows/project/pointclouds#cloud-groups) (i.e. a tiled point cloud). This is advantageous with spatially large data sets.&#x20;

{% hint style="info" %}
A **Minimum Velocity** of 0.1 m/s can be useful when fusing mobile data sets. This prevents data accumulating when the vehicle is not in motion.&#x20;
{% endhint %}

**SLAM:** SLAM processing can be enabled here for multi-laser lidar systems. If SLAM is enabled, an additional [SLAM Processing settings ](/spatialexplorer-8-and-9/user-interface/windows/slam/slam-processing-profile)menu will appear.&#x20;


# LiDARSnap

LiDARSnap is used to optimize lidar pointclouds by calibrating sensors and optimizing trajectories. This helps improve alignment of data from different flight lines or from different times.

<figure><img src="/files/Po9yOCxO0z3MJ0l3eY6A" alt=""><figcaption></figcaption></figure>

**LiDARSnap** is a lidar calibration tool. This means that LiDARSnap is used to adjust strips, or individual passes of lidar data, to improve relative and absolute accuracy. LiDARSnap uses observations in the data set, which can be either pointcloud observations or GCP-to-pointcloud corrections, and makes adjustments based on the available observations.&#x20;

\
In a purely lidar use-case, with no available GCPs, LiDARSnap attempts to find matching surfaces in the pointcloud data which can be used to derive a correction. These matched surfaces, also known as correspondences, must be in the same general location and have the same orientation. When GCPs are involved, LiDARSnap still searches for cloud-to-cloud correspondences, but additionally creates GCP-to-cloud correspondences. All correspondences are then used to solve for either sensor or trajectory corrections.

## [Sensor Calibration](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4/sensor-calibration)

In the case of sensor calibration, all correspondences are used to solve for the lidar sensor's yaw, pitch, and roll (along with a few other laser intrinsic properties). This type of optimization is often referred to as a "boresight." Sensor calibration is a global adjustment, meaning that changes in the sensor's yaw, pitch, or roll, will affect the entire data set. Sensor calibration is unable to compensate for trajectory error, as trajectory error varies over time. Sensor calibration may not always be a necessary step in a lidar production workflow, for several reasons.&#x20;

## [Trajectory Optimization](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4/trajectory-optimization)

Trajectory optimization uses the detected correspondences to improve the trajectory. LiDARSnap divides the trajectory into sections, and then uses the correspondences associated with that section to improve the alignment of the data. Trajectory optimization is common and almost always performed as part of a lidar production workflow.&#x20;

<br>

<figure><img src="/files/dAdmE9kNq6TzQ02d08hU" alt=""><figcaption><p>Point cloud changing from an uncalibrated cloud to a fully calibrated cloud colored by elevation</p></figcaption></figure>


# Sensor Calibration

The **Aerial Calibration** preset in LiDARSnap makes global roll, pitch, and yaw adjustments to a dataset by modifying the sensor-to-IMU transforms in the lidar **Settings->Calibration** tab:

When building a pointcloud, the lidar's orientation is determined by taking the IMU's orientation and applying a set of transforms (rotations and translations) specific to the lidar scanner. A lidar dataset will exhibit consistent and systematic errors if these transforms are incorrect:

<figure><img src="/files/qp2z3gsh38RTcsEJ6uPa" alt=""><figcaption><p>Five different flight lines of UAV lidar data fail to correspond well with each other due to incorrect sensor-to-IMU rotations. </p></figcaption></figure>

Typically sensor-to-IMU translations are taken from mechanical drawings, and do not need to be solved for using LiDARSnap. Generalized sensor-to-IMU rotations can also be determined from mechanical drawings (e.g., 180 degrees along IMU-X, -180 degrees along IMU-Z), however precise values, unique to each system, must be determined via a calibration routine.&#x20;

<figure><img src="/files/XSmHWSLOYhBeUA1lxeEM" alt=""><figcaption><p>Generalized values from mechanical drawings are shown under the Mounting Transform section, and system-specific calibration values are shown in the Mounting Calibration section. Note that calibrated translation values are not present in the Mounting Calibration section, as translations are not typically calibrated.</p></figcaption></figure>

All lidar systems are calibrated prior to delivery to the end user, however frequent use, mishandling, and system age can invalidate this initial factory calibration over time, therefore relative accuracy in a dataset may be improved via sensor calibration.&#x20;

{% hint style="info" %}
Sensor calibration requires certain geometry to be present in a dataset. Man-made planar features need to be present, ideally with a variety of normals. IMU-to-sensor pitch and roll can be solved for using flat ground (such as a parking lot), however solving IMU-to-sensor yaw requires upright and pitched surfaces.
{% endhint %}

When running the **Aerial Calibration** LiDARSnap preset, the **Sensor** tab will indicate that the **Mounting Rotation** (IMU-to-lidar yaw, pitch, and roll) has been enabled for optimization, as well as certain laser intrinsic values:&#x20;

<figure><img src="/files/2L2FyF3roYrBtdPTg5RS" alt="Image showing LiDARSnap with the sensor tab open. "><figcaption></figcaption></figure>

The **Trajectory** tab of LiDARSnap should have nothing enabled when using the **Aerial Calibration** preset. In general, it is not recommended to have both sensor and trajectory features enabled for optimization in a single LiDARSnap run - either solve for trajectory parameters OR sensor parameters.

The result of an aerial calibration LiDARSnap run is modified sensor-to-IMU rotation values (as well as modified laser intrinsic values), visible in the lidar settings calibration window. Often, lidar data misalignment issues persist even after sensor calibration, as non-constant errors in the trajectory are not resolvable via sensor calibration.&#x20;


# Trajectory Optimization

Trajectory optimization involves adjusting the lidar system's trajectory, which in turn changes the position of the lidar points. Position (south, east, up) and attitude (roll, pitch, yaw) can be adjusted by the optimizer at any point along the trajectory in order to achieve better agreement between lidar data from different times along the trajectory. Trajectory optimization can also be used to adjust lidar data towards ground control points.&#x20;

LiDARSnap offers two presets for trajectory optimization - **Airborne Trajectory Optimization** and M**obile Trajectory Optimization**. Each of these presets contain a set of parameters that have been found to work well with their respective data set types, however all parameters can be modified by the user. The mobile trajectory preset optimizes for all parameters (south, east, up, roll, pitch, yaw) at a very fine spline interval (every 2 seconds), whereas the airborne trajectory preset only optimizes the vertical parameter (up) at a coarser interval (every 10 seconds).&#x20;

The result of trajectory optimization is a POF trajectory created by LiDARSnap:

<figure><img src="/files/qt3sHF1vVX1vYtR74b3K" alt=""><figcaption><p>POF trajectory (yellow) produced by LiDARSnap trajectory optimization</p></figcaption></figure>

SpatialExplorer will automatically recompute the point cloud in respect to this new trajectory; however, if the optimization results are satisfactory, it is recommended that you save the pointcloud and PLP before proceeding with classification, colorization or any other processing.&#x20;


# Aerial Trajectory Optimization

The aerial trajectory optimization preset uses a 10 second **Trajectory Adjustment Rate** with only the **Up** parameter enabled for optimization:

<figure><img src="/files/WJc8EI98wKqEasUR0SPX" alt=""><figcaption></figcaption></figure>

This will result in a single vertical adjustment for each 10 second section of the trajectory. This works well to correct for vertical drift between different flight lines in an aerial dataset. Using a relatively slow **Trajectory Adjustment Rate** restricts the optimizer from applying sudden adjustments along the trajectory, and ensures that ample observations are used when computing each adjustment.&#x20;

{% hint style="info" %}
Aerial data sets may require optimization of **Yaw**, in addition to **Up**. Determination of heading (or yaw) with most lidar systems utilizes the system's course-over-ground as determined by GNSS (kinematic alignment). This process can sometimes result in a poor heading determination, and thus, yaw should possibly be considered for optimization.&#x20;
{% endhint %}


# Mobile Trajectory Optimization

The mobile trajectory optimization preset optimizes for all parameters (**south, east, up, roll, pitch, yaw**) using a 2 second **Trajectory Adjustment Rate**.&#x20;

<figure><img src="/files/8hIxrIcFF7wdBgopTaFF" alt=""><figcaption></figcaption></figure>

Generally speaking, this is a more aggressive optimization routine than the Aerial preset. Mobile datasets commonly suffer from low-quality GNSS data and unideal vehicle dynamics, so a more aggressive trajectory optimization routine is preferred.&#x20;

Users can modify the **Trajectory Adjustment Rate** parameter to control the frequency that adjustment is performed. Increasing this parameter to about 5 seconds may be ideal when the processed trajectory quality is high and frequent adjustment is not necessary.

{% hint style="info" %}
If your processed trajectory quality is high (as determined by attitude and position separation plots, satellite observation plots, and estimated accuracy plots), it is recommended that you disable optimizing the **East** and **South** parameters, as the horizontal component of your position is likely not in need of optimization.&#x20;
{% endhint %}

If significant adjustment is required, consider disabling **Preserve Local Trajectory Shape**, as this parameter will restrict the optimizer from performing sudden adjustments, which may be required.&#x20;


# Mobile Trajectory Optimization (Intensive)

The mobile trajectory optimization (intensive) preset optimizes for all parameters (**south, east, up, roll, pitch, yaw**) using a 0.5 second **Trajectory Adjustment Rate**.&#x20;

<figure><img src="/files/siVtGcCWEEp1w5I0DpKI" alt=""><figcaption></figcaption></figure>

This preset is particularly useful for highway-speed data sets (greater than 45 mph or 70 km/h) as it uses a high frequency adjustment rate (0.5 seconds). This preset should be avoided with data sets where the vehicle speed is slower, or when the initial trajectory accuracy is high, as this would risk over-adjustment by LiDARSnap.&#x20;


# Ground Control with LiDARSnap

Ground control points (GCPs) can be used with LiDARSnap. LiDARSnap is able to apply variable adjustments to the trajectory to better match control points, which may be required in some cases. There are two ways GCPs can used with LiDARSnap:

## [Vertical Only (Automatic)](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4/ground-control-with-lidarsnap/vertical-only-adjustment)

In the **General** tab of LiDARSnap, GCP lists can be enabled. If GCPs are enabled here, **Control Points** will be used only as vertical observations, meaning that LiDARSnap will attempt to align the pointcloud vertically with the position of a GCP. Note that **Check Points** will be ignored.&#x20;

This method works well with mobile data sets, where the initial processed trajectory is relatively accurate, and horizontal adjustment to meet control is not necessary.&#x20;

## [Full Adjustment (Manual)](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4/ground-control-with-lidarsnap/full-adjustment)

Corrections can be created in the [Corrections window](/spatialexplorer-8-and-9/user-interface/windows/corrections). **Full Corrections** are used by LiDARSnap as 3D observations. LiDARSnap will attempt to align the selected point with the GCP, to reduce the correction residual. Pre and post-optimization GCP-to-point residuals are displayed in the LiDARSnap report.&#x20;

This method is required for many mobile data sets, where control must be used to accurately georeference the scan.&#x20;


# Vertical Only Adjustment

If GCPs are present in a project, they will, by default, be enabled for use in LiDARSnap:

<figure><img src="/files/uCxPXDhUTVoM96BpeFBH" alt=""><figcaption></figcaption></figure>

When performing trajectory optimization with GCPs enabled, LiDARSnap will consider the vertical position of control points when determining trajectory adjustments.&#x20;

{% hint style="info" %}
GCPs marked as **check points** are not used by LiDARSnap.
{% endhint %}

{% hint style="warning" %}
It's generally not advisable to enable GCPs when running LiDARSnap on aerial data sets, as the influence of the GCP on LiDARSnap and the adjustment made to match the GCP is not easily reportable. Only enable GCPs with LiDARSnap when data sets are particularly difficult to optimize, such as data sets where the processed trajectory quality is low.&#x20;
{% endhint %}


# Full Adjustment

It's particularly common with mobile lidar data sets to use control to georeference the scan. This is because the input trajectory is not accurate enough on it's own, and the user must leverage GCPs which are identifiable in the pointcloud.&#x20;

As discussed in the previous section, vertical adjustment to ground control can be performed automatically; however, if horizontal adjustment of the pointcloud is required to match GCP targets, the user must [create a Full Correction](/spatialexplorer-8-and-9/user-interface/windows/corrections). It may be necessary to create several corrections, depending on the data set. These corrections inform LiDARSnap on the direction and magnitude required to shift the scan at any given point along the trajectory

Full corrections (i.e. 3D corrections, with a horizontal and vertical component) can be enabled in the LiDARSnap **Misc** tab:

<figure><img src="/files/L8eVaAxUNE8G2sGXvINE" alt=""><figcaption></figcaption></figure>

The **Weight of Correction Residuals** depends on the data set. Cloud-to-cloud observations also influence LiDARSnap during optimization, so it may be necessary to increase the **Weight of Correction Residuals** when many cloud-to-cloud observations are present (dense urban areas). Start with a lower weight (e.g. 2 - 10), and increase the weight (e.g. 20-100), if necessary.&#x20;

3D correction residuals, pre and post-optimization, are displayed in the LiDARSnap trajectory report:

<figure><img src="/files/3k2oL3nQbTELdhzBKt1F" alt=""><figcaption></figcaption></figure>


# LiDARSnap Tuning and Parameters

Some commonly used LiDARSnap terminology is defined here.&#x20;

## Correspondences

Correspondences are LiDARSnap's primary source of input information. A correspondence is a pair of surfaces in the pointcloud that have a similar orientation and position. Correspondences occur where data recorded at different times overlap spatially. In the case of aerial data, correspondences are found in the overlap area between flightlines.

**Ex. 1**: A pointcloud is visualized by interval (flightline). Two intervals overlap on the same wall. LiDARSnap would likely identify at least two correspondences (one for the ground surface, and one for the wall surface):

<figure><img src="/files/1fp74XJwSvCrbbGfSZ4K" alt=""><figcaption><p>Two flightlines overlapping on a building wall. This data is uncalibrated. LiDARSnap would observe correspondences on the wall and ground surface, and then use the correspondences to solve for trajectory or sensor parameters. </p></figcaption></figure>

{% hint style="info" %}
Single pass data cannot be processed by LiDARSnap, because there is no spatial overlap to the lidar data and thus correspondences cannot be found.&#x20;
{% endhint %}

## Sampling Radius

LiDARSnap searches for correspondences at radius specified by this parameter. Reducing this parameter results in more detected correspondences, but slower processing times. Increasing this parameter may be necessary with large (> 10 km^2) data sets, to prevent from over-consuming computer temporary space (all correspondences must be stored in temp space, specified in **Local Settings->Processing->Temporary Storage**).&#x20;

## Normal Search Radius

As mentioned above, two surfaces are only considered a correspondence if they both face the same direction. The direction of the surface is determined by computing a surface normal. The surface normal is a vector that is orthogonal to the computed surface.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXepbG4WVZEM_INr8CyTpZLzTJg6tvYcF88RMkcdeHbXB_sxWQCvimOwFD-nf-nMzfhJJFm9m83hell1X69ru-lG67AI5hUT_nLOdpn6viLQBv0fcPbj4HNfZWGbnGhxWwf0ZT0j?key=S3NQ2iBHS6oNLq3S6khjs418" alt=""><figcaption><p>A two lane road is used to visualize surface normals. Normals on the road point up (90 degree elevation angle), whereas normals detected on tree trunks point out to the left or right (0 degree elevation angle). </p></figcaption></figure>

The normal search radius is the size of the area used to compute the surface normal. With large features, such as a road surface, the surface normal computed is the same whether a 0.10 m or 2.0 m normal search radius is used to compute the normal. With smaller features, such as a pole or tree trunk, it's important to compute the normal vector using an area that will accurately capture the surface. In the example above, a 0.10 m normal search radius was used, to ensure that normals were observed on tree trunks.&#x20;

If a group of points does not have a clear surface normal, this surface is discarded. A good example of this is in the tree canopy, where points in the tree canopy occur in a somewhat random fashion. When a normal is computed for this region of points, it's roughness is considered high.&#x20;

## Residuals

A residual is the distance between the two surfaces in a correspondence. LiDARSnap's goal is to reduce residuals. In the example above, where a correspondence is detected on a wall, the pre-optimization residual would be about 25 cm:

<figure><img src="/files/L2pA72vuGicCyk504Kuu" alt=""><figcaption></figcaption></figure>

After optimization, the residual is much less:

<figure><img src="/files/iYmDPer8JMcJUD1tyoVK" alt=""><figcaption></figcaption></figure>

The LiDARSnap report shows histogram distributions of residuals before (left) and after (right) optimization:

<figure><img src="/files/znmJox7ZKoP9Tm4zzdJf" alt=""><figcaption></figcaption></figure>

Whether residuals are positive or negative is somewhat arbitrary, as it depends on which direction is considered positive/negative. After optimization via LiDARSnap, the residuals should follow a gaussian distribution around a mean of zero. One of the most useful metrics of LiDARSnap's success is the standard deviation of the residuals (shown on the plot as StdDev). This conveys the typical magnitude of residuals after optimization, which in the plot about is about 0.018 m.&#x20;


# Control Point Clouds

Similar to using ground control with LiDARSnap, a control point cloud can be used as input for LiDARSnap. Below illustrates an example of resolving vertical offsets using a control point cloud:

<figure><img src="/files/7oNoUalneI9LAFqtjQha" alt=""><figcaption><p>Before Optimization - Red = Calibrated aerial dataset (Control cloud), Grey = Mobile point cloud from tightly coupled trajectory</p></figcaption></figure>

<figure><img src="/files/LOOJrn9obeDCqMVJAekv" alt=""><figcaption><p>After Optimization - Red = Calibrated aerial dataset (Control cloud), Grey = Mobile point cloud from LS4 optimized trajectory</p></figcaption></figure>

Control point clouds can be used in two different ways:

### Calibrating one dataset to another

Control point clouds can be particularly useful when one cloud is of a much higher accuracy and reliability than another cloud (e.g. using an aerial cloud as control when adjusting a mobile or SLAM cloud). This process uses the **Calibrate Dataset to Another Dataset** mode.

### Calibrating sensor to sensor within the same dataset

This mode is used for calibrating an auxiliary sensor, such as with multi-sensor mobile systems or systems that use a secondary sensor for SLAM navigation. *Within the same dataset* refers to the sensors' data both referencing the same trajectory.


# Example: Optimizing Data from Multiple Scans

LiDARSnap trajectory optimization can be used to merge multiple scans from multiple trajectories into one CLOUD file. A single CLOUD file can be built from multiple sets of raw data (multiple PLP files, each with associated lidar and trajectory data). However, relative accuracy between the individual scans may be poor, due to vertical drift or other trajectory errors, so running LiDARSnap trajectory optimization is recommended. An example below illustrates this process with two aerial data sets.

{% hint style="info" %}
Before combining multiple projects, process all of your trajectories independently using NavLab via LiDARMill, NavLab embedded, or InertialExplorer.&#x20;
{% endhint %}

To begin multi-mission processing, open all PLP files. You should then see that you have several sets of trajectories. In the example below, three projects are being processed together:

<figure><img src="/files/L459OwEPRAccRwvPViFd" alt=""><figcaption><p>Three project files opened in SpatialExplorer</p></figcaption></figure>

Note that you have multiple PLP files open. At this point, it's recommended to save this multi-PLP project as a new file so that you can easily re-open the group project again:

<figure><img src="/files/YceIn44sPiXa4GGHiSnu" alt=""><figcaption><p>Flights 1 through 3 are saved to a master project, containing all flights' data</p></figcaption></figure>

[Create Intervals](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/create-intervals). Intervals will be created from both mission's trajectories:

<figure><img src="/files/oe5p90lExyumOnLxRA7W" alt=""><figcaption></figcaption></figure>

Create a point cloud using the flightline intervals from both missions:

<figure><img src="/files/yNGEgHnOcx3O3xa8N2kS" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yx0nQkDItUFcshCUSLDM" alt=""><figcaption></figcaption></figure>

Next, to resolve any differences between trajectories, run LiDARSnap. In this example, we will use the **Aerial Trajectory Optimization** preset:

<figure><img src="/files/xAAeih7rl6G93SRDDsHQ" alt=""><figcaption></figcaption></figure>

&#x20;Upon completion of LiDARSnap, a new optimized trajectory for each mission is created and loaded into the project window under **Trajectories**:

<figure><img src="/files/K1xTLIp5g2FcRwplk3uI" alt=""><figcaption></figcaption></figure>

The pointcloud will be automatically recomputed in respect to these new, optimized trajectories. Note that the cloud now has unsaved changes, indicated by the asterisk and italicized font, as the cloud has been recomputed to the new, optimized trajectories:

<figure><img src="/files/X3MYvsHebCperfu4hphM" alt=""><figcaption></figcaption></figure>

&#x20;If you are satisfied with the LiDARSnap results, **File->Save** the project to make the changes to the cloud permanent.&#x20;


# CameraSnap

CameraSnap enables the user to precisely calibrate camera mounting rotations (IMU->Camera rotations), receptor intrinsics, lens distortions, and individual image poses.

<figure><img src="/files/UJkN8EOgxLJU4HlBuOfR" alt=""><figcaption></figcaption></figure>

The amount and types of calibration required depends on the dataset. Aerial datasets may not require calibrating camera mounting rotations, but may benefit from individual image pose correction. Mobile datasets, on the other hand, almost always require mounting rotations to be calibrated, as the camera is typically removed from the vehicle (and thus removed from the IMU) after each collection.

## Features and Matches

**CameraSnap** has 3 primary modes for handling feature matching, selectable from the topmost dropdown menu:

<figure><img src="/files/kqa6Nj4EYPIZQvXvOxy3" alt=""><figcaption></figcaption></figure>

The options are:

* [ **Auto-detected without review**](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/auto-detect-without-review): Use this for a fully-automatic calibration. This usually works well with aerial data sets.&#x20;
* [**Auto-detected with review**](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/auto-detect-with-manual-review): Use this to manually add, edit and remove feature matches when automatic calibration fails to produce good results. This is the best option for mobile/Ladybug5+ data sets.&#x20;
* [ **Manually-created**](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/manually-created-matches): This can be useful for troubleshooting and special datasets.&#x20;

Choose the mode that makes sense for your application. For aerial data sets, you can probably calibrated the camera using Auto-detect without review. For mobile data sets, it's best to review matches before calibrating, to prevent erroneous matches from affecting the calibration.&#x20;

## Intervals

Calibrating the camera does not require an entire data set worth of imagery. It's best to select a set of intervals specifically for calibrating the camera, to limit the number of images analyzed and ensure a proper calibration:

When making [intervals](/spatialexplorer-8-and-9/user-interface/windows/project/intervals) for camera calibration, create intervals that:

1. Include sections on the trajectory with opposing headings
2. Include areas that contain man-made features, if possible
3. Include areas where trajectory accuracy is high (good GNSS coverage)
4. Avoid areas with high vehicle or pedestrian traffic

Regarding consideration #1: To properly calibrate the camera, you need images recorded facing in opposite directions. This could be imagery recorded along a U-turn, imagery recorded in opposing lanes of traffic, or ideally imagery recorded in a hashtag pattern:

<figure><img src="/files/xsmULzTaAt3m1YthE4AX" alt=""><figcaption></figcaption></figure>


# Auto-detect without review

When using CameraSnap in the **Auto-detect without review** mode, **CameraSnap** finds matching features (generally referred to as keypoints), then uses these feature matches to calibrate the camera. No further user input is required. This method generally works well with aerial data sets. Review the [CameraSnap report](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/camerasnap-reports) to ensure a proper calibration was achieved.&#x20;


# Auto-detect with manual review

When using CameraSnap in the **Auto-detect with review** mode, **CameraSnap** finds matching features (generally referred to as keypoints), then displays these feature matches in the **CameraSnap** **Match Explorer**:

<figure><img src="/files/vn6WoCyn186QfAdeuVTX" alt=""><figcaption></figcaption></figure>

This allows the user to remove or add matches.  Matches shown in the table are a feature match between two images. The image numbers and receptor numbers associated with the match are displayed in the leftmost columns of the table. To manually add a match, so the [Manually-Created mode](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/manually-created-matches) (the process is the same).

**Approach Distance** is one of the most useful fields in the Match Explorer. Approach Distance is calculated by projecting a ray from each image to the keypoint (or feature), and computing the difference in position of the rays. Generally, the smaller approach distance, the better the match.&#x20;

{% hint style="info" %}
You can sort the matches by clicking on the column headers. A quick and easy way to filter out bad matches is to sort by **Approach Distance**, then select and remove all matches with an approach distance greater than approximately **0.10 m**.&#x20;
{% endhint %}

Try to retain at least 20 matches, however ideally you have much more. Once you have filtered the matches, you can click **Calibrate** and CameraSnap will proceed with Calibration using the available feature matches. Review the [CameraSnap report](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/camerasnap-reports) to ensure a proper calibration was achieved.&#x20;


# Manually-Created Matches

You can create your own matches from within the **Match Explorer:**

<figure><img src="/files/EwNYOy7yeaUcT0mg0mr7" alt=""><figcaption></figcaption></figure>

To do so, first select two images in the bottom right quadrant of the screen (you may need to zoom using the mouse wheel in to see the images well). In this window, **Left click**  to select the first image (green), and **right click** to select the second image (purple). By default the forward facing receptor will be displayed - you can alternate through the different  receptors by pressing the number keys **1, 2, 3, 4,** and **6**.

The two selected images will appear in the top left and right windows.&#x20;

Next, click **Add Match** in the bottom left window. With the match selected in the bottom left window,  identify the feature in both image windows by **Left Clicking**.&#x20;

Once you have created a sufficient number of matches (approximately 10-20), you can click **Calibrate** and CameraSnap will proceed with Calibration using the available feature matches. Review the [CameraSnap report ](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/camera-snap/camerasnap-reports)to ensure a proper calibration was achieved.&#x20;


# CameraSnap Reports

CameraSnap creates a report, which gives the user insight into how accurate the calibration is.&#x20;

The most comprehensive metric in the report is the **Average Pixel Offset**. This metric expresses the average of all approach distances in pixels (normally approach distance is expressed in meters). This is helpful for comparing calibrations between different data sets (with different GSDs) and different cameras.&#x20;

<figure><img src="/files/5ZKS3YO6hBpXHXr4wYL7" alt=""><figcaption><p>Average pixel offset is computed for each receptor of the Ladybug5+ camera, except for the upwards facing receptor 5. </p></figcaption></figure>

**Generally, you should try to achieve an Average Pixel Offset less than 1.00 pixels for all receptors.**

### **Match Web**

The match web displays which images shared a feature match.&#x20;

If you have issues with your calibration, apparent due to a high Average Pixel Offset or poor colorization, ensure that the match web displays ample matches between images with overlapping content:

<figure><img src="/files/yRmvEGqBbxGwou4chN5C" alt=""><figcaption></figcaption></figure>

In the case of a sparse match web, you may have an imagery offset issue. If imagery is stored on external storage (SD card or laptop, external to the lidar system), it's possible that indexing images with their time stamps may be offset, and images are incorrectly georeferenced in the project. Check that the imagery content generally matches the lidar content at that location.&#x20;


# Colorize Cloud

Point clouds can be colorized with aerial or mobile imagery.

<figure><img src="/files/qUnLEUqdrtcarJDIJMU5" alt=""><figcaption></figcaption></figure>

Typically, default settings work well for colorizing data sets. SpatialExplorer will load default colorization settings specific to the application/camera. With mobile data sets, it may improve colorization to apply a **Min photo distance**, which will help prevent colorizing the point cloud with shadows.

<figure><img src="/files/jakBCSK1ocMCmFzAOY1d" alt=""><figcaption></figcaption></figure>


# Align to GCPs

<figure><img src="/files/iCBx2Y3v6sihTyY8DPeY" alt=""><figcaption></figcaption></figure>

The Align to GCPs tool automatically compute vertical residuals between GCPs and the pointcloud. These residuals will appear in the corrections window. Residuals/Corrections can be computed solely for analysis purposes, however they can be applied to the pointcloud as a rigid adjustment if desired. For a variable adjustment ("rubber sheet") in respect to GCPs, see [LiDARSnap with Ground Control](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4/ground-control-with-lidarsnap).&#x20;

For information on importing ground control into the project, see [Project->Ground Control](/spatialexplorer-8-and-9/user-interface/windows/project/ground-control-points-gcps).


# Adjusting Automatically to GCPs (Vertical Only)

This section covers how to compute and apply a single vertical translation to the point cloud based on GCP elevations.&#x20;

{% hint style="info" %}
You can always choose not to apply the computed adjustment, so this workflow may also be useful to users who'd like to quickly check absolute accuracy.&#x20;
{% endhint %}

Point clouds can be automatically adjusted to fit control points vertically. Residuals between the GCP and the point cloud can be computed either **1) in respect to a mesh** (or surface) created from the point cloud around the GCP, or **2) in respect to the nearest single point**. &#x20;

Use the **Align to GCP** tool to auto assign vertical residuals to each GCP.

Users can specify the point classes that should be used when comparing GCP elevations to point cloud elevations. If ground points have already been classified, it may be sensible to compare GCPs only to ground points, however any and all classes can be used to determine GCP-to-cloud residuals:&#x20;

<figure><img src="/files/kJIhQegTktagnV7FvtxU" alt=""><figcaption></figcaption></figure>

Once the vertical residuals have been assigned, they will be visible in both the map and profile view. Residuals will always be displayed as a positive value. Note in the example below that points 3 and 4 have no residual listed, as they were set to **Check** - only points set to **Control** will be compared to the cloud when using the **Auto-Assign Residuals** tool.

<figure><img src="/files/ZOzoiuWyYIKLuCONVYFE" alt=""><figcaption><p>Points 2 and 5 are automatically assigned vertical residuals</p></figcaption></figure>

Residuals have been computed but no adjustment has been performed. To apply an adjustment based on the automatically computed residuals, click the **Apply** button located in the **corrections menu** (bottom right corner of SpatialExplorer by default):

<figure><img src="/files/3YdILfZ8J0uqp6mU6gxf" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Applying a single vertical shift to a dataset is an effective method for removing bias cause by a variety of potential issues that have a direct linear impact on geo-referencing, such as slight error in a reference station elevation.
{% endhint %}

A single vertical shift to the trajectory will be computed based on the average GCP-to-cloud residual. If instead you'd like to apply a variable adjustment, rather than a single global adjustment, you can use GCPs as part of a [LiDARSnap trajectory optimization](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4) routine. In the example below, a 1 cm vertical shift will be applied to the entire trajectory. Note that no horizontal shift has been computed as this must be computed manually (covered in next section).&#x20;

<figure><img src="/files/V8StqyWdaUWT2H3IAs3T" alt=""><figcaption></figcaption></figure>

After clicking **OK,** a new trajectory will be produced with the vertical adjustment applied. This trajectory will automatically be loaded into the project and set as the active trajectory. The point cloud will be recomputed based on this new, adjusted trajectory, and GCP-to-cloud residuals will then be recalculated.&#x20;


# Manual Adjustment (Horizontal and Vertical)

A rigid horizontal and vertical correction can be applied by [creating a manual correction](/spatialexplorer-8-and-9/user-interface/windows/corrections#creating-corrections-manually) in the correction window. If a variable horizontal adjustment is needed, such as in the case of a challenging mobile lidar data set, or any data set with a very poor initial trajectory, use [LiDARSnap with manual corrections enabled](/spatialexplorer-8-and-9/user-interface/toolbars/workflow/lidarsnap-v4).&#x20;


# Reports

Project and accuracy reports can be generated using the Create Reports tool.

<figure><img src="/files/gbMtMgx2KOVZH19V0Ock" alt=""><figcaption></figcaption></figure>

The user can export two primary reports: a Project Report and a Processing Report. The project report contains information regarding relative and absolute accuracy, whereas the processing report contains more in-depth information about sensor hardware and point cloud statistics (intensity of returns per laser, number of returns per waveform, etc.).  Both report contain several maps (raster images) and information about the files used within the project.&#x20;

<figure><img src="/files/TImoBTeqFK3poymYtOJy" alt=""><figcaption></figcaption></figure>

After configuring all parameters, click **OK** to generate the specified reports.


# Export

The export menu is used to export point clouds to LAS/LAZ format, as well as to save other raster and vector products.

<figure><img src="/files/krv6AnK0c3Fw25g2V7JX" alt=""><figcaption></figcaption></figure>

Select the data to export and desired export file format. Optionally, you can select a boundary (KMZ/KML) to crop the export:

<figure><img src="/files/m9HRvtUakuVdmuAPsdgM" alt=""><figcaption></figcaption></figure>

For point cloud exports, configure the LAS/LAZ file type, version, and the desired [**Output Coordinate System**](/spatialexplorer-8-and-9/user-interface/windows/project-setup). If you'd like to have interval (or "flightline") information stored in the Point Source ID field of the LAS file, select your desired interval list from the **Data To Export** dropdown menu, then select one of the **Index of Interval** choices from the **Point Source ID (0-65535)** dropdown menu:

<figure><img src="/files/mogFca8xXWq9WIXcNMZG" alt=""><figcaption></figcaption></figure>

**User Data (0-255)** can be used to store a variety of different types of metadata, such as beam index or waveform deviation (Riegl scanners only). If you plan to associate this cloud with a trajectory, ensure the **Time Format** field matches the time format of your trajectory. To exclude certain point classes from the exported LAS/LAZ, deselect them in the **Classes to Export** dropdown menu.&#x20;

The **Color** field can be filled with either RGB values (**As Colorized**) or XYZ vector normal values (for surface extraction/visualization).


# Analytics

The analytics toolbar contains tools for classifying pointclouds, creating pointcloud-derived products, and other analysis tools.


# Classify

The classification menu contains various classification routines used to algorithmically classify points.


# Classify By Class

**Classify By Class** moves all points contained in the list of **Input Classes** and reassigns them to the **Output Class**. In the example below, all points in class 02 (Ground), will be reassigned to the 01 (Unclassified) class:

<figure><img src="/files/C2FMBkYPZCWh4SXceLau" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If a selection is present, **Classify By Class** will only change the class of selected points. This can be useful, for instance, when assigning a [**Cloud Query Tool**](/spatialexplorer-8-and-9/user-interface/toolbars/data-visualization#cloud-script-tool) selection to a class.&#x20;
{% endhint %}


# Classify Noise

**Classify Noise** is an isolated point filter. This means that any points without a sufficient number of neighbors (**Neighbor Count**) within a given distance (**Search Radius**) will be assigned to the **Output Class**, in this case the Low Point (noise) class. This is ideal for classifying sparse noise points that occur mid-air or far below ground.&#x20;

In the example below, all point classes are analyzed and any points without at least 10 neighbors within 1 m (3D distance) will be assigned to the Low Point (noise) class:

<figure><img src="/files/hPDKDCd1vP7ZCGOj9dz7" alt=""><figcaption></figcaption></figure>


# Classify Statistical Outliers

**Classify Statistical Outlier** is another type of noise classifier. This routine first creates a surface from a neighborhood of points (**Neighbor Count**). Then, residuals in respect to this surface are computed for each point. Any points with residuals that fall outside of the sigma specified (**Sigma Multiplier**) are assigned to the **Output Class**.

In the example below, any points with a residual larger than sigma 1.0 are assigned to the Low Point (noise) class:

<figure><img src="/files/XFtDT3ATKARSEK3GiJZN" alt=""><figcaption></figcaption></figure>

This tool is ideal for cleaning high density data sets and for tightening up planar surfaces. In general, the **Sigma Multiplier** parameter controls how aggressively this tool classifies points as noise. Below are some example values:

| Sigma Multiplier Value | Use-case                                                                                                                         |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| 3.00                   | Will classify very few points as noise. Ideal for high-precision point clouds.                                                   |
| 1.00                   | Will classify a moderate amount of points as noise, and generally a good starting point when experimenting with outlier removal. |
| 0.5                    | Will classify about half of the data set as noise, and useful when attempting to drastically improve low precision data sets.    |




---

[Next Page](/llms-full.txt/1)

