How do Pix4D calculate the GSD value without GPS?

I was recently analyzing a set of UAV images. Due to the abnormality of the GPS module, some of the images were missing the GPS recorded. For comparison, I processed those images by retaining GPS information and removing GPS information, respectively.
I expect that in images where the GPS information is removed, it should be impossible to calculate the GSD value due to the lack of altitude information. Although part of the GSD in the Summary is displayed as undefined, I can still see a GSD value in the subsequent tables. This value is much higher than the theoretically calculated value and the value calculated with GPS coordinates.
Therefore, I’m so curious about how this GSD value be calculated without flying high and how I should interpret it.

Hi @d10621201 ,

Welcome to Pix4D Community!

The Ground Sampling Distance (GSD) is the distance between two consecutive pixel centers measured on the ground. The bigger the value of the image GSD, the lower the spatial resolution of the image and the less visible details.

The GSD is calculated based on:

  • The flight height / the distance from the terrain or object (H).
  • The camera specifications:
    • Image width (ImW).
    • Sensor width (SW).
    • Focal length (F)

If the information about the height of the flight is not reflected in the geotags of the images, then PIX4Dmapper will not be able to estimate the GSD of your project.

You can get more information on how to interpret and calculate the GSD in the following article: Ground sampling distance (GSD) in photogrammetry

I hope this information was helpful to you.

Have a nice day!

Best regards

I understand that when the flight height information was missing, the system could not estimate GSD and showed undefined. However, in the image above, which is two sections of the same report, the “DSM, Orthomosaic, and Index Details” section can still show 6.48 cm/pixel even though the GSD value in the “Summary” section is an undefined value.

What I’m curious about is that theoretically, this value should not be estimated, and it is indeed initially displayed as undefined, so how is the 6.48cm/pixel in this report estimated?

If the information is missing in the geotagged images, then the GSD is calculated by taking as reference the camera’s internal parameters. These values are registered in the internal database of PIX4Dmapper.

I hope this information was helpful for you.

Have a very nice day!

best regards

Did you use GCPs to constrain the point cloud? If so, that’s where you’re are completing the third side of the triangle, which pix then uses to determine the height of the cameras. The GSD is then calculated based on that height, and the camera parameters.

Hi @Chris_Putnam,

First of all, happy birthday :birthday: !

Yes, GCPs can help, but as @Heydi_Contreras mentioned in her post above, PIX4Dmapper can estimate the GSD considering the internal camera parameters. Of course, estimating the GSD from the focal length and other small values is not ideal and any error or inaccuracy is propagated. However, the order of magnitude will be comparable with the real value.

I hope this helps.

Hi @Daniele_Lecci ,

Thank you!

Wouldn’t there have to be some type of altitude data in order for pix to understand how to generate values for what each pixel represents on the ground? From what I understand from reading the OP, @d10621201 processed a dataset of images, all of which had no GPS metadata. Is that your understanding as well?

Hi @Chris_Putnam,

Altitude values can help, but otherwise, the sizes are estimated using known data such as focal length, pixel size, sensor size, the position of the pixel on the sensor (X, Y), and so on.
Of course, if PIX4Dmapper is limited to these values, the accuracy in output will not be satisfactory, but the order of magnitude will be comparable with the real value.

I hope this helps.

Kind regards,
Daniele