OXTS Georeferencer combines data from an OxTS inertial navigation system (INS) with LiDAR scans to produce georeferenced 3D pointclouds of your survey environment. By fusing precise position and orientation data from the INS with the spatial measurements of the LiDAR, Georeferencer places every scanned point in an accurate real-world coordinate frame — giving you a survey-grade 3D map you can view, analyse, and export in standard formats including LAS, LAZ, and PCD.
File Inputs
Required Files
| File | What it is | How to get it |
|---|---|---|
| NCOM | Vehicle trajectory | Process raw INS data using NAVsolve. Enable local coordinates first. |
| PCAP/CSV* | The LiDAR scan data | Logged on the INS or external device (e.g. laptop using Wireshark. Must be time-synchronised with INS data via PTP or NMEA & PPS. |
| LIP | XYZ position offset from INS to LiDAR | Create and edit in Georeferencer's Hardware Configuration tab. |
| LIR | Angular offset (yaw, pitch, roll) from INS to LiDAR | Create in Hardware tab; refine with boresight calibration. Always use the boresighted version. |
*Using a CSV file for LIDAR data
Georeferencer can accept LiDAR data as a CSV file instead of a PCAP or LCOM. To use this, you also need a config file that tells Georeferencer how to interpret the CSV columns.
The config file has the same name and location as the CSV file, but with a .cfg extension instead of .csv. For example:
survey_data.csv survey_data.cfg
The config file defines which column in the CSV corresponds to each data field:
| Parameter | Required | Description |
|---|---|---|
| time_column | Yes | Column index for timestamp values |
| range_x_column | Yes | Column index for X range values |
| range_y_column | Yes | Column index for Y range values |
| range_z_column | Yes | Column index for Z range values |
| reflectivity_column | Yes | Column index for reflectivity values |
| reflectivity_min | No | Minimum reflectivity value in the data |
| reflectivity_max | No | Maximum reflectivity value in the data |
| time_scaling_factor | No | Scale factor to convert time values to seconds |
| range_scaling_factor | No | Scale factor to convert range values to metres |
All parameters after reflectivity_column are optional.
Example Config file:
time_column=0 range_x_column=1 range_y_column=2 range_z_column=3 reflectivity_column=4 reflectivity_min=0 reflectivity_max=255 time_scaling_factor=1 range_scaling_factor=1
Scaling factors: The scaling factors are used to normalise values in the CSV to the units Georeferencer expects — seconds for time, and metres for range. If your CSV already uses seconds and metres, set both factors to 1 or omit them entirely.
| CSV unit | Required factor |
|---|---|
| Milliseconds | time_scaling_factor=0.001 |
| Microseconds | time_scaling_factor=0.000001 |
| Centimetres | range_scaling_factor=0.01 |
| Millimetres | range_scaling_factor=0.001 |
For example, if your CSV records time in milliseconds, set time_scaling_factor=0.001 so that Georeferencer correctly interprets those values as seconds.
Optional Files
| File | What it is | How to get it |
|---|---|---|
| JSON (Ouster only) | Beam intrinsics | Export from OusterStudio. Place in the same folder as the PCAP with the same filename. In v2.0+ load it directly under Processing Options. |
| Calibration file (Hesai only) | Elevation/azimuth calibration | Supplied on USB stick with the unit. Load under Processing Options > Calibration file. |
Setting up LIP and LIR
Measure the XYZ offsets from the INS measurement point (marked on the unit exterior) to the LiDAR centre and enter them into the LIP file.
For the LIR, check your LiDAR manual for its axis orientation. In Georeferencer's Hardware tab, rotate the 3D model — yaw first, then pitch, then roll — until the displayed axes match the physical setup. Aim for angles that are multiples of 90 degrees as a starting point, then refine using boresight calibration.
Always use the boresighted LIP and LIR files for surveys, not your original manual measurements. A boresighted file has a 1 flag on its fourth line.
Boresight Calibration
Boresighting refines your LIR and LIP values beyond what can be measured by eye. Do this once per hardware setup before carrying out surveys. A 0.1 degree angular error translates to roughly 10 cm of positional error at 15 m range, so this step is essential for survey-grade output.
Steps:
- Set up retroreflective targets in a controlled environment and complete a survey run.
- In Processing Options > Boresight Options, select LIR optimisation first. Only add LIP optimisation afterwards if further refinement is needed.
- Set the reflectivity threshold to approximately 100. Raise to 150 if non-target points appear. Livox LiDAR always requires 150.
- Increase iterations if boresighting only converges on one or two axes.
Key Processing Options
| Option | Notes |
|---|---|
| Input Coordinate System | Choose the coordinate system that the data has been collected in. By deafult NCOM data is output by NAVsolve in WGS 84 LLA (EPSG 4326). |
| Output Coordinate system | Choose from a range of Local, ECEF, or LLA coordinates. LLA and ECEF require viewing software that supports global coordinates, such as Global Mapper. |
| Error threshold | Default is 10 cm. Without RTK corrections, raise to 1000 to avoid filtering all points. Error values are stored in the UserData scalar field. |
| Speed filter | Removes points captured while stationary, where INS accuracy is around 50% lower. Set minimum to 0.1 m/s. Does not work with limited survey NCOM. |
| Range | Set min/max point distances. Use a minimum of 2 m to exclude vehicle bodywork. |
| Voxel filter | Keeps only the most accurate point per grid cell. Reduces file size and noise, but uses significant RAM at small cell sizes. |
| Output trajectory cloud | Outputs a pointcloud of the trajectory file. Useful for identifying if there are any discontinuities in the trajectory that could cause errors in the pointcloud. |
| Time cropping | Drag the start/end bars in the Files tab to restrict processing to the overlap period of your NCOM and LiDAR data. |
| PTP time offset | Apply if your INS and LiDAR are on different time epochs. Ouster (Unix to GPS): 3159648180000000000. Hesai (Unix to GPS): 315964804000000000. Configurable in the GUI from v2.0+. |
Processing and Output
Once all files are loaded, click Run Georeferencing. Output is saved to the folder containing the NCOM file, or a custom path set in the Files tab. Each run produces a pointcloud file (LAS, LAZ, or PCD), the LIP, LIR, and VAT files used, and two processing logs. The default output format is LAZ.
| Viewing software | Supported coordinate systems |
|---|---|
| CloudCompare | Local only |
| Global Mapper | LLA |
| QT Reader | Local, ECEF |
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Empty or 1 kB output file | Error threshold filtering all points | Raise error threshold to 1000 if not using RTK. Set speed filter minimum to 0 if using survey NCOM. Ensure processing has fully completed before opening the file. |
| Smearing in pointcloud or boresight | Incorrect LIR or PTP time-epoch mismatch | Re-check LiDAR axis orientation against the manufacturer's manual. Verify the correct PTP time offset is applied (e.g. Ouster typically needs a −18 s offset). |
| Double vision | Poor boresight, inaccurate lever-arm measurement, or poor initialisation | Re-run boresight calibration. Check lever-arm tolerances in NAVconfig > Advanced > Accuracies. Initialise in open-sky conditions on a straight-line trajectory. |
| No time overlap / "Reached end of PCAP stream" | Files from different sessions, or PTP epoch mismatch | Confirm files are from the same survey run. Check PTP settings. |
| Boresight targets not isolated | Reflectivity threshold too low | Raise threshold to 150. Add a minimum range to exclude vehicle bodywork. Run georeferencing at reflectivity 100 as a diagnostic to see only high-return points. |
Tips for Best Results
| Area | Recommendation |
|---|---|
| Warmup | Allow 5 minutes for RT3000 v4 / WayFinder v1 / xNAV650 v1 and 15 mins for Survey+ v3 / RT3000 v3. Check heading accuracy is below 0.1 degrees and pitch below 0.05 degrees in NAVdisplay before starting a survey. |
| Antennas | Mount as far apart and as rigidly as possible. Use higher-grade antennas in urban or wooded environments. |
| Rigidity | INS and LiDAR must not move relative to each other. Keep them as close together as practical to minimise lever-arm error. |
| Vibration | Ensure that the INS/LiDAR payload is not subject to any significant vibrations that cause errors in the trajectory data. Use damping where necessary to reduce vibrations. |
| RTK corrections | Use a base station for absolute accuracy below 10 cm. Without corrections, accuracy is approximately 35 cm. |
| PCAP recording | Save as PCAP, not PCAPNG, if logging on an external device. Filter to the LiDAR IP address only. Start recording within the same clock hour as the NCOM log. |
Comments
0 comments
Please sign in to leave a comment.