Skip to main content

How is a dataset GSD calculated

Every processed dataset has an associated ground sample distance (pixel size). Here's how we calculate it.

Karen Joyce avatar
Written by Karen Joyce
Updated over a week ago

When you upload a dataset to GeoNadir, we calculate the Ground Sampling Distance (GSD) during the processing stage. GSD tells you the real-world size that each pixel in your image represents — for example, a GSD of 2 cm means each pixel is 2 cm × 2 cm on the ground.

How we calculate it

We estimate GSD using information from your drone images and flight metadata. Here's the simplified formula we use:

GSD = ((Flight Height * 100) / Image Width) / Focal Ratio

Where:

  • Flight Height is how high the drone was flying (in meters).

  • Image Width is the width of the photo (in pixels).

  • Focal Ratio = Focal Length / Sensor Width

    • Focal Length comes from the image metadata (in millimetres).

    • Sensor Width is retrieved from our internal camera database (in millimetres).

🔧 Example:
If your drone was flying at 100 m, your image width is 4000 pixels, your focal length is 8.8 mm, and your sensor width is 13.2 mm, then:
Focal Ratio = 8.8 / 13.2 = 0.6667
GSD = ((100 * 100) / 4000) / 0.6667 ≈ 3.75 cm

This article will help you change your GSD to a measurement in imperial units instead.

Multiple images, one GSD

Instead of calculating GSD from just one photo, we do this for each valid image in your dataset during the reconstruction stage (when we align the images and build your map). Then, we average all the GSDs to report a single representative value for your dataset.

Why GSD matters

GSD gives you a sense of how much detail your drone imagery captures. A smaller GSD means higher detail — great for mapping small features like vegetation patches or roof cracks. A larger GSD might be enough for broader landscape features.

Read on here to learn more about choosing your optimal flight altitude.

Why is the GSD different from my flight plan?

If you've used a mission planning app, it probably gave you an estimated GSD before you flew. But once your data is processed on GeoNadir, you might notice the actual GSD is slightly different — and that's totally normal! Here’s why:

Your drone didn’t fly exactly at the planned height

Wind, terrain, or internal flight adjustments might cause your drone to fly a bit higher or lower than the set altitude — even just a few metres can change the GSD.

Not all images are created equal

We calculate GSD from the actual images that were used in the reconstruction, and some might have better metadata or more accurate positions than others. Poor quality images or those with incomplete metadata may be excluded.

Real GSD uses real camera settings

The estimated GSD often assumes ideal values for your camera. But during the flight, the actual focal length or cropping might vary slightly depending on settings like zoom, sensor mode, or lens distortion corrections.

Terrain variation

If you're flying over uneven ground (e.g., hills, reefs, or cliffs), the distance from the drone to the ground changes throughout the flight. This affects the effective GSD in those areas — something your planning app might not fully account for.

Learn More: How this differs from trigonometry-based GSD

You might have seen other ways of calculating GSD using trigonometry — particularly if you're working with camera field of view (FOV) instead of sensor size and focal length. These methods are based on the same idea: working out how much ground area each pixel covers.

In GeoNadir, we use a camera geometry method that relies on:

  • The flight height

  • The image width (in pixels)

  • The focal length and sensor width, usually from metadata or an internal camera database

This is functionally equivalent to calculating GSD from similar triangles — a simplified optical model used in most photogrammetry software.

The trigonometric method, on the other hand, uses:

  • The flight height

  • The camera’s field of view (FOV), in degrees or radians

  • The image width (in pixels)

It looks like this:

GSD = 2 × H × tan(FOV / 2) / Image Width

Both approaches aim to estimate the same thing — just with different inputs. We use the camera geometry approach because it's more precise and reliable when actual camera specs are known (as they are for most drone sensors). It also avoids assumptions about angle distortions, which can vary across different camera types.

Did this answer your question?