- SAGA GIS 9.3.2
- GRASS GIS 8.4.2
- WhiteboxTools 2.4.0
- Orfeo ToolBox 9.1.1
- Core geospatial libraries: GDAL 3.12.2, PROJ 9.7.1, GEOS 3.14.1, Shapely, Fiona, Rasterio, GeoPandas
- Scientific computing: NumPy, SciPy, Pandas, Xarray
- Terrain and hydrology: RichDEM, pysheds, Landlab, TopoToolbox, xarray-spatial
- Machine learning: PyTorch, TensorFlow, scikit-learn, scikit-image
- GPU computing: CuPy, CUDA-enabled PyTorch and TensorFlow
- Visualization: Matplotlib, Plotly, Folium, Holoviews, Seaborn
- Image processing: OpenCV, scikit-image
- Web mapping: Leafmap, Geemap, ipyleaflet, localtileserver
- Cloud and remote sensing tools: Earth Engine API, STAC tools, odc-stac, Planetary Computer
- Point clouds: laspy, PDAL
- Documentation tools: Sphinx, Jupyter Book
- Jupyter Lab
- Headless operation
- Preconfigured environment
- Version-pinned and reproducible: every package is fixed to an exact version, and a build manifest is written into the image
- CLI and Python access to supported tools
- Docker and Apptainer workflows
- GPU-capable machine learning stack, subject to host driver compatibility
docker pull dockagile/pygile-plusgit 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-plusdocker run -it --name pygile-plus \
--gpus all \
-p 8888:8888 \
-v $(pwd)/data:/workspace/data \
dockagile/pygile-plusGPU 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 pygilepython -c "import grass.script as g; print('GRASS OK')"
grass --version
saga_cmd --version
whitebox_tools --version
otbcli_BandMath -helppython -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.txtAlso 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-verifyDeterministic 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- OTB Python bindings (
otbApplication) target Python 3.8 and are unavailable in this Python 3.11 environment. The OTB CLI is fully functional. saga_cmdreturns exit code 134 on teardown despite writing correct output. When scripting SAGA, check for output files rather than return codes.- SAGA links the system GDAL 3.0.4 while the Python stack uses GDAL 3.12.2. Raster read and write are bit-identical between the two, so values are unaffected.
- PyTorch is present as both a conda build and a CUDA wheel; the wheel
takes precedence in
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"- Remote sensing analysis and classification
- Raster and vector processing
- Terrain and hydrological analysis across multiple engines
- Spatial statistics and geostatistics
- Machine learning on geospatial data
- Educational and research workflows
- Web mapping and interactive visualization
- Cloud-based geospatial analysis
- HPC workflows through Apptainer
- Docker
- Recommended memory: 8 GB minimum, more for large workloads
- Recommended storage: about 25 GB or more for the image and data
- Network access for initial pull or build
- For GPU use: NVIDIA GPU and compatible host setup
- For HPC: Apptainer or Singularity with
--nvsupport when GPU passthrough is needed
apptainer pull docker://dockagile/pygile-plus
apptainer run --nv pygile-plus_latest.sifAll 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
