# Spatial Fuser Pipeline

LiDARMill’s Spatial Fuser Pipeline uses the trajectory data generated by NavLab, combined with LiDAR and imagery data from your system, to generate a calibrated, classified and colorized point cloud. Spatial Fuser can also produce data products in the form of DTM/DSM, Contours, decimated pointclouds and more.&#x20;

{% hint style="info" %}
It is possible to initiate a Spatial Fuser pipeline before the NavLab pipeline finishes processing. Select your "processing" trajectory when creating your pipeline, and LiDARMill will automatically start the Spatial Fuser pipeline when the NavLab pipeline is complete.&#x20;
{% endhint %}

## Select Spatial Fuser Postprocessing

To begin processing your LiDAR data, create a Spatial Fuser Pipeline by navigating to the Pipelines tab. Under Select Processing, choose "Spatial Fuser". LiDARMill indicates the types of input files required, and the type of output file that it will create. Click "Next" to move forward.&#x20;

![Start a Spatial Fuser Pipeline](/files/-M8ITQZO2-x4c3TZGvwU)

## Select Input Files/Artifacts

Spatial Fuser requires a trajectory and LiDAR data. It can also utilize Camera data, and ground control points if present. Once you've selected all the files you'd like to use in processing, click "Next".

![Spatial Fuser Pipeline Inputs](/files/-M8WZ3Okje_LSb-RpMqv)

## Configure Parameters&#x20;

![](/files/-McFSnKbL1U4yH1U7Fz_)

### Calibration

Used to override the system calibration configured at the time of data acquisition, if needed.&#x20;

![Override System Calibration](/files/-McFd5aiFLtHUEkbWkMb)

### LiDAR Settings

Select the desired Downward Field-of-View in degrees (90 recommended for aerial acquisitions), as well as the desired LiDAR Range from sensor (Min/Max in meters), to be included in the generated pointcloud.&#x20;

![LiDAR Settings Configuration](/files/-McFe-tCl9iCefXZmztR)

### Flightlines

LiDARMill automatically splits your trajectory into multiple intervals each containing LiDAR data that was captured during a straight flightline of a certain duration that the user specifies.

![Minimum Flightline Duration ](/files/-McFeirwkuLGM27Z4nyp)

### Optimization

* **Trajectory optimization**: Performs feature matching within overlapping swaths of LiDAR data to determine correction offsets that are applied to the mission's trajectory to improve point cloud relative accuracy.
  * In general, **it IS recommended to enable trajectory optimization on most datasets** to improve the relative accuracy of the resulting pointcloud.&#x20;
  * Optimization may not produce desirable results in cases where the dataset is exceptionally noisy, a large portion of the scanned area contains water bodies, or if the majority of the scanned area contains vegetation so thick that only an extremely low number of ground returns are present.&#x20;
* **Sensor Calibration** (boresight optimization tool): Applies an angular correction to LiDAR sensor (pitch, yaw, roll correction) to resolve misalignments from IMU to sensor. Depending on the LiDAR model, an additional ranging scale correction, tilt angle offset, or encoder calibration correction may be calculated and applied.&#x20;
  * In general, **it IS NOT recommended to enable sensor calibration**, unless a [specific boresight calibration pattern](https://docs.phoenixlidar.com/rover/theory-and-workflow/boresighting-flight-strategy) was flown as part of the mission.&#x20;
* **Enable Photos in Turns**: Option to enable/disable photos acquired during turns

![Optimization Parameters](/files/-McFf4WYSSpEa9f7q29w)

### Ground Classification

The iteration parameters of the ground classification routine determine how close a point must be to a triangle plane to be accepted as a ground classified point

![Ground Classification](/files/-McFfxMRtWfcoseml4mb)

* **Iteration Angle**: Iteration angle (degrees) is the maximum angle between a point, its projection on the triangle plane, and the closest triangle vertex. It is the main parameter controlling how many points are classified into the ground class. The larger the iteration angle, the denser the resulting ground classification. The smaller the angle, the less eager the routine is to follow variation in the ground level, such as small undulations in terrain. Use a smaller angle in flat terrain and a bigger value in mountainous terrain (Recommended value range: 4 - 12).
* **Iteration Distance**: Iteration distance (meters) ensures that the iteration does not make big jumps upward if triangles are large. This value is expressed in meters with a larger iteration distance including more low vegetation points within the ground model (Recommended value range: 0.1 - 0.5).
* **Max length of building**: The max length of building (meters) parameter defines the search area for initial ground points. The input value should be close to the longest edge length for the largest building in your scanned area (Recommended value range: Typically 20 - 100 meters).
* **Ground Thickness** - How much algorithm should thicken the final ground. Should reflect expected ground thickness.
* **AI Classification (Beta)**: AI classification leverages a neural network to infer point classification. Classification accuracy depends on the type of terrain/geometry and cloud accuracy, but usually classifies around 98% of points correctly. Classifications currently include:
  * Unclassified
  * Ground
  * High vegetation
  * Building
  * Low point (noise)
  * Shield wire
  * Transmission Wire
  * Transmission Tower
  * Wire Structure Connector (insulator)
  * Car
  * Guy wire
  * Fence
  * Lamp post

![AI Classification](https://lh6.googleusercontent.com/nNflJd89twdQPCcDvhLzUGs0ivwvYGnA_2XA25_fWivS1mg-ISOUQHcOBfEZMjvCYIPzWvbmMjbW3dDKrdZa_7QWAzVendYAgqJP3Wj2Nitkc0n6OUHgWK5UISu-WLCeve0F-iGzzxg)

* **Alternative Classification** : Uses an alternative classification algorithm to extract ground classified points from the rest of the point cloud. With ground points classified, the advanced classifier can determine and store other attributes such as "normalized height" and "Height above ground" within the output file

![Iteration angle and iteration distance parameters in the ground classification routine](/files/-MTI9MMLXwZarA3Hj6o3)

![Illustrating how a smaller iteration distance value avoids classification of ground points on low objects](/files/-MTI9YEenYZw3-QHbOgE)

### LiDAR X

It is recommended to use the default parameters populated here. If you acquired data in the incorrect rover profile, however, you could correct for that by editing the parameters here.&#x20;

![LiDAR X Parameters](/files/-McFi8mI1Qc4Vw6_pb1Q)

Note: Lever arm offsets are now measured along the IMU axis. For the "Rotation" section, rotate the sensor frame into the IMU frame by rotating around the sensor axes in ZXY order (rotate around rotated axes for the 2nd and 3rd rotation). Refer to the "[Orientations and Offsets](https://docs.phoenixlidar.com/rover/theory-and-workflow/orientation-and-offsets)" section of the user manual for more information

### *Camera X*

It is recommended to use the default parameters populated here. If you acquired data in the incorrect rover profile, however, you could correct for that by editing the parameters here.&#x20;

![Camera X Parameters](/files/-McFiKM3CLL3dnifR6SU)

Note: Lever arm offsets are now measured along the IMU axis. For the "Rotation" section, rotate the sensor frame into the IMU frame by rotating around the sensor axes in ZXY order (rotate around rotated axes for the 2nd and 3rd rotation). Refer to the "[Orientations and Offsets](https://docs.phoenixlidar.com/rover/theory-and-workflow/orientation-and-offsets)" section of the user manual for more information

#### **Calibrate camera**

Camera calibration requires correctly setting initial focal length, as well as mostly manmade structures and little vegetation within the acquired data. If collected imagery has sufficient overlap and sidelap (50% or more) **it is recommended to enable "Calibrate Camera".**

### Coordinate Reference Systems

The processing CRS automatically defaults to the configured project CRS.

![Coordinate Reference System Configuration](/files/-McFjRrIKFwmlVqtmLdo)

### Products

Use this section to select and configure desired output data products.&#x20;

![](/files/-McFjsj8_M7atEZ1tl9o)

#### Tile the point cloud

When enabled, this tool will automatically tile the output dataset into squares with a user specified edge length (Tile size). This is beneficial for large datasets. You can view and download tiled data by clicking on "Select Tiles" next to the Spatial Fuser pipeline.

![Select Tiles Button](/files/-McFmwY2G8Z4Txo6iZlu)

![Tile Selection](/files/-McFn98eCKT515Xvcaku)

#### Downsample the pointcloud

When enabled, this option decimates the output pointcloud. The decimation extent is based on the user specified grid stride.&#x20;

#### Export data from curves&#x20;

When enabled, this option includes data from turns within the generated pointcloud. The turn data point source ID is set to 0. &#x20;

#### Create compressed Pointclouds

When enabled, this option outputs the generated pointcloud to a compressed LAZ 1.4 file instead of an uncompressed LAS 1.4 file.&#x20;

#### GeoTiff DTM/DSM/CHM

Option to output various products such as Digital Terrain Model (ground classified points only), Digitial Surface Model (Highest hit returns), and Canopy Height Model (Vertical distance offsets from ground model to highest hit returns). The output Geotiff files are georeferenced to the configured LM project CRS.

![DSM](/files/-McFvRrcE3pkMkrbgGKK)

![DTM](/files/-McFvcscPJhxFZfMfNgr)

#### Contours

SHP/SHX/DBF/PRJ

![Contours Overlayed on DTM](/files/-McFwWkmhTu7MB3WITso)

#### Subsampled Pointcloud DTM

This option creates a downsampled pointcloud Digital Terrain Model (Based on ground classified points only, and based on the user specified grid stride)

Click "Finish" to initiate the pipeline.

Once created, view files and artifacts associated with the created pipeline under its "General" tab. When completed, the LAS/LAZ as well as the [Project](https://docs.phoenixlidar.com/reports/project-report) and [Processing](https://docs.phoenixlidar.com/reports/processing-report) Reports can be located here.  Under "Job Runs" check the progress of the Spatial Fuser pipeline.

{% tabs %}
{% tab title="General tab" %}
![Download the SpatialFuser pipeline's resulting files](/files/-M9JkI1qLpvLrrX04VOz)
{% endtab %}

{% tab title="Job Runs tab" %}
![Check the pipeline's progress](/files/-M9JkMT6PgQcb96ukt5U)
{% endtab %}
{% endtabs %}

{% hint style="info" %}
LiDARMill processes your data in the cloud, so you can navigate to another screen within the application, visit another website, or close your browser, and post-processing will continue in the background. LiDARMill will automatically send you an email when processing is complete, if you selected that option when initiating the pipeline.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-6.phoenixlidar.com/lidarmill-cloud/workflow/processing-tools/spatial-fuser-pipeline.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
