All Collections
Drone mapping tutorials
Ground Control Points- Tutorial
Ground Control Points- Tutorial

How to properly distribute, mark and measure your GCPs

Cezary Woźniak avatar
Written by Cezary Woźniak
Updated over a week ago

This tutorial is for drone operators specializing in drone mapping.

After reading this article, also watch the YT tutorials:

Sometimes the RTK/PPK drone manufacturers are trying to convince us that only 1 GCP is enough or that you don’t need GCPs at all. Field tests however will quickly show you that that is not the truth.

GCPs are essential to properly georeference the project and to validate the photogrammetry outputs.

Planning GCPs

Every project that requires GCPs starts with the planning phase. Good planning will save you a lot of time in the field and it can let you avoid mistakes and in extreme cases - a refly of the whole area.

  1. The First thing that you should do is to search for at least two benchmarks, as described here:

Benchmarks are used by our processing team to verify the GCP measurement quality.

GCP measurement quality directly impacts the end product. Verifying your GNSS receiver on a known benchmark gives you and your clients the confidence that the measurements you will base your whole mapping project on are correct.

2. The Second thing that you should plan is the amount of GCPs. This is based on the drone used and the flight plan.

For Inflights mapping projects we always use RTK/PPK drones as well as GCPs.

Our team developed an algorithm that automatically calculates the bare minimum amount of needed GCPs for each project. You can check it in your Flight view at the Inflights platform.

The bare minimum amount of Ground Control Points needed are given in this section:

Ground Control Point information on Inflights platform.

3. Third thing that you should plan is the GCP layout across the area of interest.

The area of flight can be downloaded with the Download KML button in the Flight page.

To plan the GCP layout we recommend using Google My Maps:

In Google My Maps - click Create New Map and press the Import button. Then select the KML file that you downloaded from Inflights webapp.

Now select the Satellite map as a basemap.

Click on the Add Marker button on the top menu.

Follow the guidelines below to place the GCPs:

  • Start at the corners of the area of interest. Don’t place the GCPs too close to the edges.

  • Spread GCPs evenly across the entire area of interest

  • Avoid placing the GCPs in a straight line. Even with an RTK drone this is not an optimal pattern.

  • Avoid placing GCPs closer than 30 meters to the flight boundary. Downloaded KML is the Area of Flight. Not Area of Interest.

  • Maintain an open sky view. Place the GCP away from tall obstacles like trees and buildings

  • Placing GCPs near the road will provide a fast access

Example of a good GCP distribution layout.

This map can be shared via a link and opened on a smartphone to navigate you to a specific location.

Marking GCPs

There are a multitude of GCP marking patterns.

Cross marking pattern on the left, dot marking pattern in the center image, chess-board marking pattern on the right.

The center point of the GCP should be clearly visible to a pixel level on the drone mapping images.

After some testing, we found that a chessboard or triangles pattern works best.

Chessboard or triangles pattern pre-made GCPs from vinyl flooring

We don’t recommend GCP marking with other patterns.

For example we see lot’s of datasets with GCPs marked with a cross pattern. In photogrammetry software it is hard to find the exact pixel that represents the spot that was measured. This introduces errors in GCP marking.

Cross pattern GCP. We can’t precisely pinpoint the exact center of the GCP that was marked this way.

The GCPs can be marked with a spray paint on permanent objects like concrete or asphalt. Just make sure that they won’t be covered during the drone flight.

The GCPs can be also marked with pre-made GCP plates. This works best for soft surfaces like sand or grass.

There are multiple ways to create pre-made GCPs.

One is to cut some vinyl flooring and glue it to a thin plywood.

Pre-made GCPs from a soft surface like the cloth require nails to secure the GCP to the ground.

Make sure that your GCPs won't be covered or moved.

Your GCPs should have a matte finish. Reflective materials will cause additional errors in photogrammetry software.

Your GCP markings should have high contrast. For example, use black and white paint instead of two bright or two dark colors.

The size of your GCPs for photogrammetry should be at least 10x your Ground Sampling Distance (GSD).
For example: if your GSD is 3cm/pixel then use a GCP size of 30cm x 30cm.

For DJI L1 LIDAR sensor we recommend GCP size of at least 70cm x 70cm.

Permanent GCPs should be used for areas that will be flown repeatedly. For example an ongoing construction site.

Pay special attention that the GCPs won’t move throughout the entire project.

Permanent GCP. A concrete tile marked with road paint. However we recommend using black and white paint for better contrast.

GCP marking guidelines:

  • Use spray paint or road paint for marking GCPs

  • Use pre-made GCPs on soft surfaces like sand or grass

  • Use high contrast colors

  • Use chessboard or triangles pattern

  • Using paint mark GCPs only on solid areas like concrete or asphalt

  • Place GCPs on flat surfaces. At least 1m x 1m flat surface is required

  • Make sure that GCP is matte finish. Non-reflective

  • Use permanent GCPs for repeated photogrammetry projects

  • Make sure that the GCPs won’t move after the measurement

  • Make sure that the GCPs won’t be covered during drone flight

  • Make sure that the GCP center is clearly visible in drone images to a pixel level!

Measuring GCPs

Ground Control Measurement requires a survey-grade GNSS rover.

Therefore we try to avoid the DJI D-RTK2 rover or similar because it doesn’t provide reliable measurements.


Here is a list of GNSS receivers that we worked with and can recommend:

  • Leica GS series

  • Trimble R series (not-Catalyst)

  • Topcon HiPer series

  • Emlid Reach RS2

  • Stonex S series

First thing you should do is to set the correct Coordinate Reference System (CRS).

Create a job file in your GNSS receiver with the requested CRS.

You can find the requested CRS on the flight page.

Next measure 2 local benchmarks that you found in the previous step (mentioned in the planning phase).

Additionally use your smartphone to take some pictures of the benchmark.

Measuring benchmarks is essential to verify your GNSS measurements accuracy.

After that proceed to mark and measure GCPs in the area of interest using Google Maps to navigate to a planned GCP location.

Use the marking patterns listed above and measure the exact center of the GCP.

Make sure that each time you measure the GNSS receiver has a FIXED solution. Not FLOAT.

GNSS receiver in FIXED solution with precise estimated measurement accuracy

GCP measuring guidelines:

  • Make sure to choose the right Coordinate Reference System

  • Measure at least 2 benchmarks first

  • Measure the exact center of your GCP

  • Make sure that the GNSS rover is in a FIX solution and estimates error below 3 centimeters

  • Make sure that the pole is perfectly straight - the bubble should be in the center of the circular vial

  • Make sure that the antenna height is measured correctly and the correct height is entered in the GNSS rover

  • Make sure that the antenna pole doesn’t change the height after it is set

  • Don’t push the tip of the pole into the GCP center. Especially on the dirt or pre-made GCPs that are flexible

  • Set the adequate observation time for measurement - at least 5 seconds

Uploading to Inflights

After you get back to the office, export the GCP coordinates in the requested Coordinate Reference System.

GCP coordinates exported in CSV format

Export the GNSS measurement report file as well. This information will help our processing team to improve the dataset quality.

GNSS measurement report file with estimated accuracies.

In the Other category upload the GNSS measurement report file and Benchmark PDFs with photos.

GCPs for DJI L1

DJI had to make compromises building an affordable LIDAR sensor like the L1.
Due to the lower precision IMU a special procedures must be observed for GCPs.

With every drone battery swap a new mission should be created.

1 battery pack = 1 flight mission.
Overlap of around 30 meters should be created between those two missions.

The GCPs should be placed evenly across the area of interest, near the boundary, at every corner and in the middle.

In the overlapping sections additional GCPs should be placed. This will prevent the shift in data between missions.

In the forested areas the GCPs should be placed in the forest cleanings and additional GCPs between flight rows.
This is important for maintaining good alignment between rows.

Make sure that your flight lines (rows) are shorter than 800 meters.
Flight lines longer than that are heavily affected by low-accuracy IMU sensor.
In case of linear flight divide the area into 800 meters sections.

GCP size for DJI L1

For DJI L1 LIDAR sensor we recommend GCP size of at least 70cm x 70cm.

Below image shows 1m x 1m GCP

GCP 1x1m - RGB point cloud from L1

GCP 1x1m - Intensity point cloud from L1

GCP 0.5x0.5m - RGB point cloud from L1

GCP 0.5x0.5m - Intensity point cloud from L1

Common mistakes

Along the years we noticed some common mistakes.

GCPs placed in a straight line, too few GCPs:

GCPs outside of area of interest, no GCPs in the middle of the project:

No GCPs on the west (left) side of the project:

The center point of the GCP is not clearly visible:

Did this answer your question?