English | Français
Extract drone image metadata from the command line.
dm_extract is a CLI tool for extracting EXIF, XMP and GPS metadata from drone JPG images.
It produces structured, ready-to-use output in multiple formats — designed for integration into geomatics and photogrammetry workflows.
- 📷 Parses EXIF / XMP metadata from drone JPEG images (single file or batch)
- 📍 Extracts GPS coordinates, altitude, gimbal angles and calibrated focal length
- 📤 Exports to CSV and GeoJSON
- ⚡ Fast, scriptable, pipeline-friendly
- 100% written in C
- Runs on Windows, Linux and macOS
- Bonus: Python GUI tool
dm_extract [options] FILE [FILE ...]At least one file must be provided. Wildcards are accepted.
| Option | Forme longue | Description |
|---|---|---|
-o FILE |
--output FILE |
Output file. Default: stdout |
-g |
--geojson |
GeoJSON output format. Default : CSV |
-n |
--no-header |
Omit the header line CSV |
-r |
--raw |
Diagnostic mode: raw EXIF/XMP dump + structured summary |
-q |
--quiet |
Delete progress messages on stderr |
-j N |
--jobs N |
Number of threads (2, 4, 6 or 8). |
-V |
--version |
Show version and exit |
-h |
--help |
Show help and exit |
Multithread options:
- Default: automatic selection based on available RAM.
- Use -j 1 to force sequential mode.
- Ignored with --raw (always sequential).
| Code | Meaning |
|---|---|
0 |
Success — all files have been processed |
1 |
At least one file in error (read, format not recognized) |
2 |
Arguments error (unknown option, inaccessible output file) |
# Linux / macOS
./dm_extract DJI_0001.JPG
# Windows
dm_extract.exe DJI_0001.JPGSee binaries for more details
Quick python tool to graphically test dm_extract.
The static binary use is preferred to be able to make scripts or to be integrate into an exernal workflow.
The GUI does not allow it.
dm_extract
- Only JPEG files (
.jpg,.JPG) are supported. RAW formats (DNG, CR2, NEF) are not yet supported. - The processing is sequential (one file at a time) only with -- raw
- In GeoJSON mode, images without valid GPS are excluded without warning message (use '--raw` to diagnose).
- The parser reads only the first 512 KB of each JPEG file to locate the EXIF and XMP blocks — not the entire file (which can be 20–50 MB for a drone photo). In practice, these metadata blocks are always found within the first 128 KB; the 512 KB limit is a conservative safety margin.
- Build flight logs from a set of drone images
- Feed coordinates directly into QGIS, GDAL, or any GIS tool
- Pre-process image sets before photogrammetry pipelines (Metashape, ODM...)
- Quality-check GPS coverage before processing
7 brands detected automatically: DJI, Parrot, senseFly, Skydio, Autel Robotics, Yuneec, Xiaomi.
dm_extract is an open-source tool maintained under the Aeroforger project — a collection of tools for drone data processing, photogrammetry and geomatics.
Support the project on Patreon.
LGPL v3
