USGS Integrated Software for Imagers and Spectrometers v3 (ISIS3) Docker container.
This (docker) container recipes we provide here is based on
the official ISIS install document (at Github).
ISIS is installed with Conda in its own environment (isis
) under /opt/conda
).
The containers are based on osgeo/gdal
images (by default, the gdal-ubuntu-small-*
), though you can use the
build-argument (--build-arg BASE_IMAGE=...
) to specify any other (ubuntu) base image.
To not conflict with other common commands (e.g.,
pip
), conda binary path is positioned at last in$PATH
environment variables. This note is to mind you about paying attention when installing new packages: ISIS environment should be managed byconda
while python packages should be managed by OS'pip
/pip3
.
The following ISIS3 environment variables:
ISISROOT=/opt/conda
ISISDATA=/isis/data
ISIS3DATA="${ISISDATA}"
ISISTESTDATA=/isis/data_test
The Jupyter-enabled container uses (by default) jupyter/base-notebook
as
base image (which, by default) uses ubuntu:focal
as base image.
If you want a jupyter/base-notebook based on osgeo/gdal you can do so by
building a base-notebook image based on that just like we do for the other containers.
Here is an example of how I do that.
- https://isis.astrogeology.usgs.gov/
- https://github.com/USGS-Astrogeology/ISIS3
- https://astrodiscuss.usgs.gov/
If you are familiar with ISIS3 you know that ISIS needs its kernels/ancillary data -- the famous ISISDATA
-- to do virtually anything.
By default, in isis3
containers expect to find ISIS3DATA
mounted at /isis/data
directory.
Since "ISISDATA" is not included in the container the user must mount a local copy of "ISISDATA" as container's
/isis/data
. The examples below show how to do it.
In this example, the location for ISIS3DATA
in the local/host filesystem is /path/to/isis3data
.
Running a isis3
container with the ancillary data (at /isis/data
):
$ docker run -it --rm --name isis3 \
-v "/path/to/isis3data":"/isis/data" \
my_isis3_container
Let's run the container with GDAL as in osgeo/gdal
.
ISIS is installed in its own conda environment, separated from the system.
Let's also bind (mount) our current directory ($PWD
) to container's /mnt/data
:
$ docker run -it --rm --name isis3_gdal \
-v "$PWD":"/mnt/data" \
-v "/path/to/isis3data":"/isis/data" \
my_isis3_container:gdal
If you would like a graphical interface to use ISIS, GDAL and many Python GIS libraries you should use
the jupyterhub
tag.
It is based on chbrandt/gispy:gdal
(which uses apt
/pip
as package managers) with Jupyter-Hub
on top. ISIS is installed (as always) in its own conda environment.
$ docker run -it --rm --name isis3_jupyter \
-p 8888:8888 \
-v "$PWD":"/mnt/data" \
-v "/path/to/isis3data":"/isis/data" \
my_isis3_container:jupyterhub
ISIS3 environment variables are defined in container's /etc/profile.d/isis.sh.
- If you want to customize ISIS3 variables, overwrite the default bash-profile:
$ docker run -it --name isis3 \
-v "$PWD/dockerfile/etc/isis.sh":"/etc/profile.d/isis.sh" \
chbrandt/isis3