Project Awesome project awesome

DroneDB

Store and archive drone shots and aerial imagery.

Package 270 stars GitHub

ddb-logo-banner

License: MPL 2.0 GitHub commits C/C++ CI Discord

DroneDB is a free, open-source platform for modern geospatial data management. Store, visualize and share your geospatial data in the cloud. Orthophotos, point clouds, 3D models, geotagged files: all in one place.

DroneDB Screenshot

See it in action: hub.dronedb.app/r/odm/waterbury


Key Features

  • Smart Indexing - Automatic metadata extraction from images (EXIF), raster data (GDAL), point clouds (PDAL), and vector files
  • Interactive Visualization - Web-based viewers for orthophotos, 3D point clouds, textured models, and 360° panoramas
  • Geospatial Analysis - Flight path visualization, EXIF metadata extraction, dataset partitioning, and STAC catalog support
  • Multiple Sharing Options - Direct links, embed codes, TMS tiles, Cloud-Optimized GeoTIFFs (COG), and Entwine Point Tiles (EPT)
  • Cloud Sync - Push and pull datasets to/from DroneDB Hub for collaboration
  • Format Support - Orthophotos (GeoTIFF, COG), point clouds (LAZ/LAS, PLY), 3D models (OBJ, glTF/GLB), vector files (GeoJSON, SHP, KML, DWG, GPKG), and 360° panoramas
  • Cross-Platform - Works on Windows and Linux

💬 Community

Join our Discord server to get help, share feedback, discuss features, and connect with other DroneDB users:

Join the DroneDB Discord

Quick Start

Installation

Linux (Debian/Ubuntu)

# Download and install from the latest release
sudo apt install ./ddb_X.Y.Z_amd64.deb

Windows

Download the latest release from GitHub Releases and run the installer.

Basic Usage

# Initialize a new DroneDB repository
ddb init

# Add files to the repository
ddb add *.jpg orthophoto.tif

# List indexed files with metadata
ddb list

# Get detailed information about files
ddb info image.jpg

# Generate thumbnails
ddb thumbs *.jpg

# Search for files
ddb search --type image

# Build COG (Cloud-Optimized GeoTIFF) from raster
ddb cog input.tif output.tif

# Share your dataset to DroneDB Hub
ddb share . --tag myproject/dataset

Available Commands

Command Description
init Initialize a new DroneDB repository
add Add files to the index
remove Remove files from the index
list List indexed files
info Display file information and metadata
search Search files by criteria
build Build derivative products (tiles, previews)
thumbs Generate thumbnails
tile Generate map tiles
cog Create Cloud-Optimized GeoTIFFs
ept Create Entwine Point Tiles from point clouds
nxs Create Nexus 3D mesh format
stac Export as STAC catalog
clone Clone a remote repository
push / pull Sync with DroneDB Hub
share Share datasets online
meta Manage metadata
password Set/manage repository password

Run ddb <command> --help for detailed usage of each command.


Documentation

Full documentation is available at docs.dronedb.app


Architecture

DroneDB consists of:

  • Core Library - C++ library for file processing, metadata extraction, and SQLite/SpatiaLite database operations
  • CLI Tool (ddb) - Command-line interface for all operations

Building from Source

DroneDB uses vcpkg for dependency management and CMake for building.

Prerequisites

  • C++17 compiler (GCC 9+, Clang 9+, MSVC 2019+)
  • CMake 3.21+
  • Python 3.x
  • Git
  • Visual Studio 2019+ (Windows only, with C++ desktop development workload)

Quick Build

Windows (PowerShell):

git clone https://github.com/microsoft/vcpkg.git; cd vcpkg; .\bootstrap-vcpkg.bat
$env:VCPKG_ROOT = $(Get-Location).Path
cd ..; git clone https://github.com/DroneDB/DroneDB.git; cd DroneDB
.\full-build-win.ps1

Linux:

git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && ./bootstrap-vcpkg.sh
export VCPKG_ROOT=$(pwd)
cd .. && git clone https://github.com/DroneDB/DroneDB.git && cd DroneDB
./full-build-linux.sh

Windows Build Script

DroneDB provides a robust PowerShell build script that automatically detects Visual Studio, configures CMake, and builds using Ninja.

Basic Usage

# Debug build (default)
.\full-build-win.ps1

# Release build
.\full-build-win.ps1 -BuildType Release

# Clean build
.\full-build-win.ps1 -Clean

# Custom configuration
.\full-build-win.ps1 -BuildType Release -Clean -Jobs 8

Script Parameters

Parameter Type Default Description
-BuildType String Debug Build configuration: Debug, Release, RelWithDebInfo, or MinSizeRel
-Clean Switch false Remove CMake cache and build artifacts before building
-SkipTests Switch false Disable test compilation
-Jobs Int CPU cores Number of parallel build jobs

Build Output

After successful build, find executables in the build/ directory:

  • ddbcmd.exe - Command-line tool
  • ddb.dll - Core library
  • ddbtest.exe - Test suite

Troubleshooting

Visual Studio Not Found

  • The script automatically searches for VS 2019-2025 using vswhere.exe
  • Install Visual Studio with "Desktop development with C++" workload
  • Or set VSINSTALLDIR environment variable

CMake Not Found

  • Install from cmake.org/download
  • Or via Visual Studio Installer (Individual Components → CMake)

Build Failures

  • Try a clean build: .\full-build-win.ps1 -Clean
  • Manually bootstrap vcpkg: cd vcpkg; .\bootstrap-vcpkg.bat
  • Check prerequisites are installed and in PATH

Docker Build

./build-docker.sh
docker run --rm -it -v $(pwd):/data ddb/app:latest

Manual Build Steps

Click to expand manual build instructions

Set VCPKG_ROOT

# Linux/macOS
export VCPKG_ROOT=/path/to/vcpkg

# Windows PowerShell
$env:VCPKG_ROOT = "C:\path\to\vcpkg"

Build Commands

git clone https://github.com/DroneDB/DroneDB.git
cd DroneDB
git submodule update --init --recursive

# Configure
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"

# Build
cmake --build build --config Release -j$(nproc)  # Linux
cmake --build build --config Release -- /maxcpucount:14  # Windows

Windows Manual Build (Visual Studio Developer Command Prompt)

mkdir build && cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="..\vcpkg\scripts\buildsystems\vcpkg.cmake"
cmake --build . -- -j16

Run Tests

# Linux
cd build && ./ddbtest --gtest_shuffle

# Windows
cd build && .\ddbtest.exe --gtest_shuffle

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines on how to submit pull requests.

License

This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).


Made with ❤️ by Digipa

Back to Flying FPV