How to correct for wrong image altitude without GCP - PIX4Dmapper


It can happen that the model is not accurately geolocalized because its vertical coordinate is shifted. The planar georeference is, however, correct.


The model and exported outputs show a wrong altitude. The error is introduced by the vertical coordinates of the images written in the geotags. Using Ground Control Points (GCPs) would precisely adjust the model altitude, but alternative solutions exist when no GCPs are available.


In most cases, the GPS inaccuracy of the drone or the camera explains the vertical shift. Depending on the brand and model, it can reach up to a 100-meter difference.


There are two ways to approximately place the model at the correct altitude if no GCP was measured on the field:

  • Method A: Editing the image coordinates directly in the software. It is straightforward and rapid but less accurate. However, it requires to (re-)run step 1. Initial Processing from scratch.
  • Method B: Importing points from a Web Map Service. It is more accurate and more advanced. No need to re-run step 1, Reoptimize is sufficient.

Method A

Once the project is created, before or after 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.

Tip: The value should be estimated as H image corrected = H pilot + H flight above ground level where H is averaged elevations in the same coordinate system. H pilot is the altitude of the pilot or drone operator during the flight. It also corresponds to the altitude of the drone's home point, i.e., where it took off.

5. Click OK.
6. On the menu bar, click View > Processing.
7. In the processing bar, check only step 1. Initial Processing.
8. Click Start.

Method B

This solution works in any case. It is suggested to get, for instance, 5 points from a Web Map Service server over the area (e.g., Daft Logic). These points will be used as GCPs. For more information: How to obtain the georeference using 2D or 3D GCPs taken from a Web Map Service .

1. Run step 1. Initial Processing.
2. Define the appropriate GCP Coordinate System. For more information: How to select / change the Image / GCP / Output Coordinate System.

Information: The Daft Logic website takes the coordinates from Google Maps (WGS 84 ellipsoid) and refers to the mean sea level (MSL) egm96 to estimate the vertical coordinate.

2.1. On the menu bar, click Project > GCP/MTP Manager...
2.2. In the section GCP Coordinate System, click Edit...
2.3. In the section Coordinate System Definition, select Know Coordinate System [m] and WGS 84 from the list (ellipsoid icon).
2.4. Check the box Advanced Coordinate Options.
2.5. In the section Vertical Coordinate System, select MSL and egm96 from the drop-down list.

3. Import the points using the rayCloud and mark them on some images. For more information: How to import and mark Manual Tie Points (MTPs).

3.1. On the right sidebar, in the field Type, select 3D GCP from the drop-down list.
3.2. On the right sidebar, manually enter the coordinates taken from the website.

4. On the menu bar, click Process > Reoptimize.