A headless Docker environment combining SAGA GIS, GRASS GIS, WhiteboxTools, and OTB.
186
|
Python GeoInformatics Lab Environment-PlusA headless Docker environment combining SAGA GIS, GRASS GIS, WhiteboxTools, and OTB with a complete Python geospatial stack for spatial analysis, remote sensing, and machine learning — with GPU acceleration support. |
docker pull dockagile/pygile-plus
git clone https://github.com/Geoinformatics-Lab/PyGILE-Plus.git
cd PyGILE-Plus/docker
docker build -t pygile-plus .
The Dockerfile is self-contained; no additional files are required.
docker run -it --name pygile-plus \
-p 8888:8888 \
-v $(pwd)/data:/workspace/data \
dockagile/pygile-plus
docker run -it --name pygile-plus \
--gpus all \
-p 8888:8888 \
-v $(pwd)/data:/workspace/data \
dockagile/pygile-plus
GPU use requires: - NVIDIA GPU - compatible NVIDIA driver - NVIDIA Container Toolkit on the host
Jupyter Lab starts automatically at http://localhost:8888.
Only /workspace/data is mounted in the examples above. Files written
elsewhere in the container are lost when it is removed. Mount the whole
/workspace directory to persist notebooks and outputs as well.
For more detailed Docker usage, see docker/README.md.
conda activate pygile
python -c "import grass.script as g; print('GRASS OK')"
grass --version
saga_cmd --version
whitebox_tools --version
otbcli_BandMath -help
python -c "import torch; print(torch.cuda.is_available())"
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
python -c "import cupy; print(cupy.cuda.runtime.getDeviceCount())"
If GPU is not detected, verify host driver compatibility.
Every package is pinned to an exact version, and source tarballs are checksum-verified during the build. A manifest recording engine versions, compiler, checksums, library linkage, and the full resolved package list is written into the image:
docker run --rm dockagile/pygile-plus \
cat /opt/manifest/build_manifest.txt
Also in /opt/manifest/: conda_explicit.txt (exact conda package URLs
and build hashes) and pip_freeze.txt.
The environment can be verified at any time:
docker run --rm dockagile/pygile-plus pygile-verify
Deterministic numerics are enabled by default (OMP_NUM_THREADS=1 and
equivalents) so floating-point results are reproducible across runs.
Override at run time if throughput matters more than bit-identical
output.
For citation, record the image digest:
docker inspect --format='{{index .RepoDigests 0}}' \
dockagile/pygile-plus
otbApplication) target Python 3.8 and are
unavailable in this Python 3.11 environment. The OTB CLI is fully
functional.saga_cmd returns exit code 134 on teardown despite writing correct
output. When scripting SAGA, check for output files rather than
return codes.site-packages.conda_env_path = "/opt/conda/envs/pygile"
saga_cmd = "/opt/saga/bin/saga_cmd"
grass_command = "grass"
otb_bin = "/opt/otb/bin"
whitebox_tools = "/opt/conda/envs/pygile/bin/whitebox_tools"
build_manifest = "/opt/manifest/build_manifest.txt"
--nv support when GPU
passthrough is neededapptainer pull docker://dockagile/pygile-plus
apptainer run --nv pygile-plus_latest.sif
All included software remains under its respective upstream license. Refer to the original project documentation for specific license terms.
Awasthi, B., Ninsawat, S., Raghavan, V., & Nemoto, T. (2026). Geoinformatics-Lab/PyGILE-Plus: PyGILE-Plus v1.1.0 (v1.1.0). Zenodo. https://doi.org/10.5281/zenodo.18512474
Awasthi, B., Ninsawat, S., Raghavan, V., & Nemoto, T. (2025). PyGILE-Plus: Python GeoInformatics Lab Environment-Plus (1.0.0). Zenodo. https://doi.org/10.5281/zenodo.16146572
Content type
Image
Digest
sha256:9f8bac3bc…
Size
7.9 GB
Last updated
about 2 months ago
docker pull dockagile/pygile-plus