A server to manage and share aerial data assets (aerial images, orthophotos, elevation models, point clouds, textured models, panoramas, etc.).
You can run DroneDB Server to organize aerial data, share it with others or even build custom applications on top of its API.
You provide the files, DroneDB Server handles the rest: on-demand dynamic tiling, creating thumbnails, parsing geolocation data, streaming meshes, handling metadata, geoprojecting images and many other functions.
DroneDB Server organizes your data in a straightforward filesystem structure. There's no databases, unique identifiers or other complex layers. You can always access your data from the filesystem.
Backing up your DroneDB Server is as simple as copying the entire storage folder. You can even toss away DroneDB server and you will still be able to access your data in an organized manner.
- First install docker. It's the only requirement.
Download ddb-server.sh and run from a command prompt:
chmod +x ddb-server.sh
- Open a browser to http://localhost:5000 and login with the default credentials:
- You can change the default password by visiting http://localhost:5000/account
Set Storage Path
By default DroneDB Server will store all data in a
storage/ folder. You can change that by passing a path:
./ddb-server.sh --help for other options.
Run in SingleDB mode
DroneDB Server can operate in two modes:
- Full: organizations and datasets will be saved in the storage path. This is the default.
- Single: if storage path is a directory containing existing files, the directory will be indexed and published by the server. A single
projectsorganization will exist and a single dataset will be available. This can be useful to quickly share folders with others, or to manage your aerial data locally.
For example, if you have a folder with results from ODM, you can run:
DroneDB Server will automatically index/sync the specified folder and serve it on http://localhost:5000/r/projects/sunset-park
You can access the server's public STAC Catalog from the
/stac endpoint (e.g. http://localhost:5000/stac ). All public datasets will be included in the STAC Catalog.
Each dataset also exposes a STAC collection at
You can browse the Catalog using the STAC Browser.
Under the Hood
We mentioned earlier that DroneDB Server organizes your data in a straightforward filesystem structure. What happens when we launch the server on an existing folder, or create a new dataset?
A DroneDB dataset is simply a folder, plus a
.ddb subfolder. The
.ddb subfolder is created for you by DroneDB Server if it doesn't exist already. You can download the ddb command line client to manually manage DroneDB datasets. In fact, DroneDB Server is simply a RESTful API that exposes the functions of the command line client (plus a nice GUI).
Taking as an example our
/data/drone/sunset-park folder, we can make changes or queries to our dataset directly from the command line:
ddb info . --format json
If we want to remove a directory from the index, for example, we can run:
ddb rm opensfm
Note the folder has been removed from the index only (it still exists in the filesystem). This is on purpose.
The GUI in DroneDB Server knows to look for a "name" metadata field when assigning a friendly name to a dataset. Let's set one:
ddb meta set name "A cool name"
Data: A cool name
Refreshing the GUI now shows:
During the process of indexing the files, DroneDB Server has taken care of generating special
build files whenever appropriate:
Each folder is named after the SHA256 of the file that was built.
For example, the point cloud
odm_georeferenced_model.laz file has a SHA256 of
b13d44e180f010cc33154afbe837f0bed3985be76555efd0fc149a091709c9a0 and an EPT tileset has automatically been generated:
This allows efficient streaming of point clouds over the GUI (and other programs such as QGIS):
DroneDB Server can build Cloud Optimized GeoTIFFs (for orthophotos, elevation models), EPT (for point clouds), Nexus (for streaming meshes). It does the heavy-lifting, so you don't have to.
See other commands.
What if you want to remove any trace of DroneDB from your data? Simply delete all
.ddb folders. That's it! DroneDB never mutates the input data and keeps the same filesystem structure you choose.
To update the software run:
Commercial support is available. Get in touch.