Geodepot helps to organize data into test cases, share them and provide integration to some of the test frameworks for ease of use. It was born from our own requirement from writing spatial data processing tools over the past years.
https://innovation.3dbag.nl/geodepot
The release installer downloads the correct bundle for the current platform, verifies the published checksum, and installs a small wrapper on PATH.
Linux and macOS:
curl -fsSL https://github.com/3DBAG/geodepot/releases/latest/download/geodepot-install.sh | shWindows PowerShell:
Invoke-RestMethod https://github.com/3DBAG/geodepot/releases/latest/download/geodepot-install.ps1 | Invoke-ExpressionThe installers also support --version for installing a specific tag.
Download a release bundle from the latest release, extract it, and keep the extracted directory intact.
The release bundle contains a relocatable runtime environment in env/ plus a small launcher at the top level.
Linux and macOS:
geodepot/
├── geodepot
└── env/
Windows:
geodepot/
├── geodepot.cmd
├── geodepot.ps1
└── env/
Run the top-level launcher, not the nested executable in env/.
The launcher activates the bundled GDAL, PROJ, and PDAL runtime before starting Geodepot.
- Linux and macOS:
./geodepot - Windows:
.\geodepot.cmd
If you want to use Geodepot from anywhere, add the extracted geodepot directory itself to PATH.
Do not symlink or copy the launcher out of that directory, because it locates the bundled runtime relative to its own path.
Geodepot has complex native dependencies, so do not pip install it unless you are developing Geodepot itself.
Use pixi to set up the development environment and run tools.
Use just as the local entry point. The recipes below all delegate to pixi so the toolchain stays in one place.
just lintjust formatjust format-checkjust testjust docs-buildjust docs-deployjust download-datajust upload-datajust upjust down
The main interface, it supports all operations.
Repository (the current repo): https://github.com/3DBAG/geodepot
The API is meant for passing data paths to tests, nothing else. The rest of the operations are done through the CLI.
The API is available in:
- C++ (implementation)
- Python (binding)
- CMake (binding)
Repository: https://github.com/3DBAG/geodepot-api
The minimal example below gives and idea of how Geodepot works.
Initialize an empty repository in the current working directory.
geodepot initAdd some data to this repository.
The GeoPackage file path/to/local/wippolder.gpkg is added to the case wippolder with the name wippolder.gpkg, and the provided license and description are attached to the data entry.
geodepot add \
--license CC0 \
--description "A couple of buildings and a church in Delft for minimal testing." \
wippolder \
path/to/local/wippolder.gpkgWhen writing a test, use one of the API functions to get the full path to the data.
Alternatively, you can also use the CLI to get the data path.
geodepot get wippolder/wippolder.gpkgGeodepot is not a version control system, neither for data nor for code. It is assumed that the data that you store in a Geodepot repository is already available, and will stay available in some other form. Thus, if the repository is accidentally overwritten with unwanted changes, the desired state can be recreated with some effort. That is, because the history of the repository is not retained, only the latest version is available at any time.
Geodepot is licensed under the Apache License 2.0 (see LICENSE file).
The release bundles include third-party open source software with the following licenses:
- GDAL (MIT), PROJ (MIT), PDAL (BSD 3-Clause)
- Python (PSF License), Click (BSD 3-Clause), Requests (Apache 2.0), Fabric (BSD 3-Clause)
A complete list of bundled dependencies and their licenses is included in THIRD_PARTY_LICENSES.md in the release bundle and in this repository.
The current version (1) is considered to be feature complete, and there are no major enhancements planned.
This does not mean however, that the current version is bug free.
The ongoing development focuses on fixing bugs reported by users or discovered during testing.
This software is part of the 3DBAG project. For more information visit the 3DBAG organisation.