**Issue**

How to use the accuracy check tool.

**Answer**

Please refer to the explanations below.

**Explanation**

The accuracy check tool is an **automated verification** of the computed point cloud in Smart Construction Edge. The verification is done by **comparing** some **calculated x, y and z coordinates** in the resulting point cloud to the **corresponding predefined locations** on the jobsite that have a verified x, y and z coordinate. These verified coordinates are measured beforehand by means of survey equipment, like a GNSS rover.

This accuracy check can be executed within the Smart Construction Edge (data processing screen in the projects tab): after the point cloud is rendered, there is the option to run the check, as shown in the following image:

**Be aware that if the Edge does not recognize the file format, it will display the following message:**

If this last image is displayed, you can either click on 'instructions' to view it within the app or follow the steps below to create an appropriate accuracy check file.

### Accuracy check file

The accuracy check requires a reference checkpoint file. This file is a CSV (comma separated values) file containing checkpoint names and coordinates. Recommended is a minimum of 5 checkpoints for a single battery mission to ensure a thorough accuracy check.

- The checkpoint file should be called ‘checkpoints.CSV’ and be in the root directory (main folder) of the SD card or USB drive.
- Checkpoints must be in the same coordinate system and same units as the point cloud.

a. Edge supports global coordinate systems and local coordinate systems (EPSG/Geoid, or custom using localization features)

b. Edge support meters, feet, and US feet - Checkpoints will be imported in following level of precision:

a. 3 decimal digits for meter, feet and US feet

b. 8 decimal digits for degrees

c. The system will get rid of any additional decimal digits compared to the above. This will not affect centimetre level precision of the accuracy check.

#### Example files

__CSV format (ENZ)__ --> Easting (x coordinate), Northing (y coordinate), Z (height)

Name | E(m) | N(m) | Z(m) |
---|---|---|---|

GPS001 | 335881.904 | 440457.002 | 11.498 |

GPS002 | 335882.867 | 440484.491 | 10.498 |

GPS003 | 335934.134 | 440455.286 | 11.723 |

GPS004 | 336844.283 | 439396.335 | 9.246 |

GPS005 | 336881.626 | 439400.588 | 9.858 |

GPS006 | 336838.404 | 439448.905 | 6.359 |

GPS007 | 336888.652 | 439348.810 | 7.050 |

GPS008 | 337626.177 | 439125.584 | 20.687 |

GPS009 | 337545.164 | 439138.801 | 19.187 |

GPS010 | 335503.020 | 440594.849 | 6.484 |

For the height, Edge supports meters (m), feet (ft) and us feet (us-ft).

__CSV format (degrees, minutes, seconds)__

Name | lat(dms) | lon(dms) | z(m) |
---|---|---|---|

cp1 | N52 3 37.046533 | E10 11 34.936252 | 199.83 |

cp2 | N52 3 32.608942 | E10 11 37.885621 | 205.787 |

cp3 | N52 3 30.428706 | E10 11 36.720154 | 205.415 |

cp4 | N52 3 31.875640 | E10 11 35.686721 | 202.431 |

cp5 | N52 3 28.766756 | E10 11 31.653096 | 197.927 |

cp6 | N52 3 32.911782 | E10 11 33.455756 | 199.652 |

In order to provide latitude and longitude in DMS format, the header should include (DMS) as shown above. The direction is specified by letter (N, E, S, W). There must be spaces between degrees, minutes and seconds. For the height, Edge supports meters (m), feet (ft) and us feet (us-ft).

__CSV format (decimal degrees)__

Name | lat(dd) | lon(dd) | z(m) |
---|---|---|---|

ch1 | 50.9443603 | 4.4424267 | 13.300 |

ch2 | 50.9441110 | 4.4456740 | 14.031 |

ch3 | 50.9425193 | 4.4453612 | 13.978 |

ch4 | 50.9416111 | 4.4445197 | 14.257 |

ch5 | 50.9415229 | 4.4424393 | 13.764 |

ch6 | 50.9429743 | 4.4419483 | 13.256 |

In order to provide latitude and longitude in decimal degree format, the header should include “(dd)” as shown above. In Europe we only have positive values, in the parts of the world underneath the equator there would be negative values. Values in decimal degrees format** must have 8 digits** beyond the decimal place as shown above. For the height, Edge supports meters (m), feet (ft) and us feet (us-ft).

*Each of the columns should be separated by a comma, you do this by exporting CSV through excel.*

#### Validating checkpoint file

After the import, Edge will validate the checkpoint file and highlight if there is any issues with it. If there is any issue, an error message will be displayed.

Checkpoints that are outside the point clouds' horizontal bounds will be excluded from the accuracy check.

**Results**

Edge will display a summary of accuracy check results along with a recommended vertical offset to reduce the error between the point cloud and the checkpoints. The suggested offset will always be the same value as the mean Z error but in the opposite direction.

**Positive Z error (mean)**

If the mean Z error is positive then the point cloud is above the checkpoints and the suggested offset will move the point cloud down towards the checkpoints.

**Negative Z error (mean)**

If the mean Z error is negative, then the point cloud is below the checkpoints and the suggested offset will move the point cloud up towards the checkpoints.

By tapping 'apply suggested offset', the vertical offset tool will automatically shift the point cloud to reduce the error.

### Outliers

Checkpoints that exceed the tolerance of 2 sigma from average Z error are considered outliers.

Outliers are highlighted in the results and an error message will be shown.

The outliers are excluded from the calculation of all values in the mean row at the bottom of the result screen.

If there are outliers, the CSV will contain two sets of aggregates.

- Aggregates including outliers
- Aggregates excluding outliers

#### CSV Headers

Checkpoint Name | User provided checkpoint name |

Nearby points found | Number of points in point cloud that were found near the checkpoint coordinate (within search radius XY, at any Z value) |

Checkpoint X | Checkpoint coordinate X value |

Checkpoint Y | Checkpoint coordinate Y value |

Checkpoint Z | Checkpoint coordinate Z value |

Nearest X | X value of point in point cloud that is closest (in terms of X axis only) to the checkpoint |

Nearest Y | Y value of point in point cloud that is closest (in terms of Y axis only) to the checkpoint |

Nearest Z | Z value of point in point cloud that is closest (in terms of Z axis only) to the checkpoint |

Min distance | Absolute value of the distance (in 3D space) between checkpoint and nearest point in point cloud |

Z error (mean) | Mean value of error measured in Z direction between checkpoints and points found in point cloud |

Z error (median) | Median of all Z error values. In case of an even number of error values, the average of the two middle error values is returned. |

Z error (Min) | Smallest error measured in Z direction between checkpoint and and points found in point cloud |

Z error (lower bound) | Lower bound (most negative) error measured in Z direction between checkpoint and points found in point cloud |

Z error (upper bound) | Upper bound (most positive) error measured in Z direction between checkpoint and points found in point cloud |

Std dev Z | Standard deviation based on all Z error values. Always a positive value |

Mean +3S | This is the right side of the confidence interval resulting from adding the Z error Mean plus 3 times the std dev Z |

Mean -3S | This is the left side of the confidence interval resulting from subtracting the Z error Mean plus 3 times the std dev Z |

#### CSV Aggregates

RMSE | root mean square error |

std dev | standard deviation of the mean Z error of all checkpoints |

nearby points found | number of points in point cloud that were found near the checkpoint coordinate (within search radius XY, at any Z value) |

mean Z error | mean of the Z error value that was found for each checkpoint |

mean Z error lower bound | mean of the Z error (lower bound) value that was found for each checkpoint |

mean Z error upper bound | mean of the Z error (upper bound) value that was found for each checkpoint |

mean +3S | Confidence interval. Total mean Z error +3S times total Z error std dev |

#### Search radius

The search radius is the radius used around the checkpoint coordinate to find points in the point cloud that are used to determine the accuracy.

If the search radius is too high, the algorithm will use points that are far from the checkpoint and report worse accuracy which is misleading.

If the search radius is too low, the algorithm will not find enough points.

**To avoid these issues, the accuracy check feature automatically sets the search radius based on the points cloud density so that an average of 8-13 points can be found.**

Low | Medium | High |
---|---|---|

0,95 m | 0,425 m | 0,2125 m |

#### Vertical offset tool

**Automatic**

The suggested offset from the accuracy check can be automatically applied by simply tapping 'apply offset' from the results screen on the accuracy check.

**Manual**

The vertical offset tool can also be opened at any time from the processing details screen.

**Total offset**

The processing details screen will always display the total offset that has been applied (compared to the original point cloud).

A positive offset means the points cloud is now __above__ the original.

A negative offset means the points cloud is now __below__ the original.

To apply an offset manually, the user enters the amount they would like to shift the point cloud. The units will match the units of the point cloud.

A positive value (f.e. 0,02m) will move the point cloud __up__ from its current position.

A negative value (f.e. -0,02m) will move the point cloud __down__ from its current position.

The screen will always display the current offset from the original in case the user would like to revert.

To revert to the original, enter the current offset with the opposite sign. The screen will indicate that the final offset is 0.

## Comments

0 comments

Please sign in to leave a comment.