Troubleshooting

Vertical shift between the model and the GCPs / Cannot mark the GCPs in the rayCloud - PIX4Dmapper

This article explains the process of how to mark the GCPs in the rayCloud, when the GCPs and the rayCloud model do not align.

Error

The rayCloud displays the Ground Control Points (GCPs), in blue, far above or below the model. The GCPs do not align with the images and the model.

shift_model_gcps.png


Description

After running step 1. Initial Processing and importing the GCP coordinates, the points are displayed way above or way below the model. The vertical shift between the images (wrong location) and the GCPs (correct location) is too great for the points to be linked to the model. Therefore, the software cannot estimate a reliable projection of the points on the images where the image marks are supposed to be. It can then happen that no thumbnail is displayed in the right sidebar when clicking a GCP. As a consequence, marking is not possible in the rayCloud.


Cause

The elevation of the images written in the EXIF data (geotags) is measured by the drone's GPS. These coordinates may be inaccurate and depending on the drone and the project's location. The inaccurate elevation measurements can result in a vertical shift that exceeds 100 meters or even more. To address the error the project must include GCPs. Follow the procedure below to use the rayCloud to incorporate GCPs.

Information: The error related to the elevation measurements collected by the drone's GPS only introduces a vertical offset, meaning that project's relative accuracy is not affected.

Solution

There are three possible options.

  • Method A: Editing the altitude of the images before running Step1. This is straightforward but the precision of the vertical coordinates is lost which means that all of the geotags will have the same altitude. It is not a problem though, because the GCPs will accurately georeference the model. This does not overwrite the geotags of the EXIF.
  • Method B: Creating three MTPs before importing the GCPs and match them based on their names. It is a bit more complex but the original image coordinates are preserved. This method is faster than Method A because step 1. Initial Processing does not need to be re-run (only reoptimizing the results is necessary).
  • Method C: Editing the geotags in a third party software and importing them into Pix4D. It is similar to method A but it allows for keeping the relative altitude variation between the images, for example when a flight follwing the terrain is made and each strip has a different altitude.

Method A

Once the project is created and before running step 1. Initial Processing:

1. On the menu bar, click Project > Image Properties Editor...
2. Left click anywhere in the first line, scroll down to the bottom of the list, hit and hold the Control and Shift keys together, and click the last line to select all images.
3. Right click in the column Altitude anywhere and click Edit Altitude in Selected Rows.
4. Enter an average corrected value and hit the Enter key. By doing this, all of the images will have the same altitude. In case the flight was done following the terrain and the different strips have different altitudes, it would not work. If that is the case, use Method C.

Tip: The value should be estimated as H image corrected = H GCP + H flight above ground level where H are averaged elevations in the same coordinate system.

5. Click OK.
6. Run Step1.
7. Mark the GCPs in the rayCloud following: How to import and mark ground control points (GCPs).

Note: If Step1 has already been processed, the same workflow can be followed but there is no need to run Step1 again, Process > Reoptimize would be enough and faster.

Method B

Once the project is created and after running step 1. Initial Processing:

1. Create and mark at least three new Manual Tie Points (MTPs) using the right sidebar of the rayCloud. Each new MTP must be named as the GCPs. For example, MTP1 must be named the same as GCP1, MTP2 the same as GCP2 and so on. These MTPs will be converted to GCPs later. For more information: How to import and mark ground control points (GCPs).

Important: For each MTP:
  • In the Label field, write the name of the GCP and make sure it is identical to the GCP name stored in the GCP coordinate file.
  • Do NOT edit or manually enter the GCP coordinates The coordinates will be updated when importing the file with GCPs.

2. Import the GCP coordinates using the GCP/MTP Manager. For more information: How to import and mark ground control points (GCPs).
3. Click Yes to All, so that the MTPs are converted to GCPs and the coordinate values are overwritten with the correct values. The software will overwrite the coordinates of the measured MTP/GCP to the correct one.



4. On the menu bar, click Process > Reoptimize. The model should adjust to the three GCPs.
5. Mark the other GCPs (if any) in the rayCloud following: How to import and mark ground control points (GCPs).

Method C

Once the project is created and before running step 1. Initial Processing:

1. On the menu bar, click Project > Image Properties Editor...
2. Left click on To file. The software will ask for a folder and file name to write the geotags in .csv format.

snapshot.png

3. Open the .csv format in any software package able to edit a spreadsheet and edit the altitude by adding or subtracting a constant value

4. Right click on From Exif and import the file you just edited.

5. Run Step1 (or Reoptimize in case that Step1 was already run)