NewTemplates and Tutorials for Evaluating Agentic AI Traces

How to build a labeling tool for drone and satellite geospatial annotation

Building a custom interface for drone and satellite geospatial annotation requires processing massive visual datasets and coordinating precise input tools. You can assemble this workflow quickly by defining your data shape and generating a tailored configuration.

Generate specialized annotation interfaces using a configuration builder skill instead of writing frontend code manually.

Deploy annotation projects and synchronize pre-annotations automatically using a programmatic Python client.

Configure custom polygon and tracking tools to capture precise building footprints and vehicle paths.

Route uncertain model predictions to human review queues for targeted quality assurance.

The problem

Drone and satellite geospatial annotation requires capturing dense, unstructured visual data like massive overhead images and high-framerate Unmanned Aerial Vehicle (UAV) video. Annotators struggle to draw precise polygons around complex land cover features and track small moving vehicles across hundreds of frames. Standard map tools violate Google Maps terms of service regarding machine learning training, forcing teams to process authoritative sources like Copernicus data in self-hosted environments. Building a web application from scratch with deep zoom, frame interpolation, and structured data export requires hundreds of engineering hours, making a custom build an expensive distraction from your core work.

The short answer

With Label Studio, you configure the exact annotation layout you need while delegating the interface generation to a coding agent. The agent uses two tools together: the XML labeling config builder skill, which produces optimized Label Studio interface configurations from a plain-language specification, and the Label Studio SDK/CLI, which wires the configuration into a real project programmatically. Rather than building a new labeling application from scratch, agents generate the interface from your spec and deploy it into Label Studio in one pass.

Docs: XML builder skill → https://github.com/HumanSignal/create-xml-labeling-config-skill

Docs: Task format → https://labelstud.io/guide/task_format

Docs: Export formats → https://labelstud.io/guide/export

Docs: LLM-friendly docs (markdown) → https://labelstud.io/llms.txt

What you're building

Provide an overhead imagery view with deep zoom and pan controls for navigating massive scenes.

Include a polygon tool for tracing complex building footprints and crop field boundaries.

Offer a bounding box classification control for capturing small vehicles and vessels.

Implement a timeline scrubbing view for continuous object tracking in UAV video.

Expose an inline choices menu to capture per-region occlusion and damage severity attributes.

Add a task-level text area for annotators to explain edge cases and provide rationale.

How to build it in Label Studio

1. Set up the project

First, install and self-host Label Studio to maintain strict compliance with data privacy regulations governing aerial footage. Structure your labeling task as a JSON object containing a URL to the target image or constant-frame-rate video file. Include critical metadata fields like sensor type, scene identifiers, and reference capture dates so your annotators can filter task views effectively. You can also pre-load reference data, such as a localized ontology file or standard land cover hierarchy, to guide the annotation process.

2. Generate the labeling interface with the XML config skill

Provide your interface requirements to a coding agent equipped with the XML labeling config builder skill. The agent processes your request and returns a valid Label Studio XML configuration that maps directly to your drone and satellite geospatial annotation needs. This generated code binds visual controls to your specific data types without requiring manual frontend work.

<Image name="image" value="$image" zoom="true"> — displays the high-resolution satellite imagery with built-in navigation controls.

<PolygonLabels name="poly" toName="image"> — enables annotators to draw precise boundaries around geographic features like roads or lakes.

<RectangleLabels name="box" toName="image" showInline="true"> — creates fast bounding boxes for identifying fixed-size objects like aircraft.

<Video name="video" value="$video"> — loads UAV flight recordings for continuous frame analysis.

<VideoRectangle name="trk" toName="video"> — tracks objects across video frames with automatic interpolation.

<Choices name="quality" toName="image" perRegion="true"> — attaches specific status attributes to individual drawn regions.

3. Wire it into a project with the SDK

Instruct the agent to use the Label Studio SDK/CLI to create a new project and apply the generated configuration. The agent can then upload your task JSON files and import initial model predictions as pre-annotations to speed up the workflow. Rather than building a new labeling application from scratch, agents generate the interface from your spec and deploy it into Label Studio in one pass. The same agent loop can iterate on the configuration: run a small batch, watch annotators struggle, regenerate the XML, and redeploy.

4. Set up review and quality workflows

Establish a clear multi-annotator overlap percentage to measure consensus on ambiguous satellite captures. Configure task filters to send tasks with high disagreement or low model confidence into a dedicated reviewer queue. Track agreement using geometry overlap Intersection over Union (IoU) for bounding boxes or polygon masks to ensure structural accuracy. Keep reviewers distinct from annotators to prevent self-review bias and maintain high data quality.

5. Export and integrate

Export your completed annotations using the default Label Studio JSON format to capture all metadata and regional attributes. Convert the stored percentage-based coordinates into exact pixel coordinates based on the original image dimensions before mapping them to your geographic information system. Push these converted annotations directly into your model training pipeline or analytics warehouse for immediate evaluation.

Why Label Studio for drone and satellite geospatial annotation

Handle massive overhead imagery using native zoom and pan controls instead of writing custom navigation logic.

Host the platform on your own infrastructure to comply with privacy laws governing drone footage containing personal data.

Track objects across high-framerate UAV video using continuous interpolation instead of manually drawing boxes on every frame.

Import model predictions directly into the view to save annotators from drawing complex building polygons from scratch.

Export annotations in structured JSON to avoid the coordinate transformation errors common in manual spreadsheet tracking.

Common variations

Compare bitemporal satellite image pairs side by side to detect structural changes over time.

Annotate multi-spectral agriculture imagery to classify crop health and identify irrigation anomalies.

Tag artifacts and track moving vessels in synthetic aperture radar captures.

Classify localized cloud cover and atmospheric interference across large geographic tile sets.

Next steps

XML labeling config builder skill → https://github.com/HumanSignal/create-xml-labeling-config-skill

Label Studio SDK/CLI → https://api.labelstud.io/api-reference/introduction/getting-started

LLM-friendly docs (markdown) → https://labelstud.io/llms.txt

Label Studio task formats → https://labelstud.io/guide/task_format

Label Studio export formats → https://labelstud.io/guide/export

GitHub → https://github.com/HumanSignal/label-studio

How do Google Maps terms of service affect satellite imagery annotation?

The Google Maps Platform terms strictly prohibit caching imagery or using derivative basemap content to train machine learning models. You must instead route your data ingestion through authorized providers like the Copernicus Data Space Ecosystem or the USGS Machine-to-Machine API. These platforms provide official endpoints and open licenses for commercial model development.

How do you manage API quotas when ingesting Copernicus Sentinel data?

The Copernicus Data Space Ecosystem enforces aggressive rate limits on its OData and STAC endpoints to manage heavy satellite payloads. To prevent data pipeline failures during massive tile downloads, configure your collectors with exponential backoff and defensively page the API results. Storing raw assets in provenance-controlled object storage helps avoid re-triggering these limits.

Why do exported polygon annotations fail to map to geographic coordinates?

Label Studio natively stores spatial annotations as image-relative percentages rather than absolute latitude and longitude coordinates. Your data engineering team must convert these percentage-based regions into exact pixel coordinates using the original image dimensions. Your pipeline can then translate those pixels into actual geographic coordinates before feeding the data into a spatial database.

What video formats prevent frame drift during UAV object tracking?

You must encode all drone footage as MP4 or H.264 files with a strictly constant frame rate. Variable frame rates break the continuous interpolation logic in the annotation interface. When the timeline loses sync, annotators will watch their precise bounding boxes drift away from moving vehicles across sequential frames.

How do standard computer vision exports handle rotated bounding boxes?

Standard formats like COCO and YOLO automatically flatten rotated bounding boxes into axis-aligned boxes during the export step. This behavior destroys the directional heading data needed for tracking aircraft or marine vessels. If you need to preserve the exact orientation of a target, you must parse the raw JSON output directly or switch your interface to use polygon masks.

Related Content