7 Example child images
+7.1 py-rocket-geospatial
+This has many geospatial R and Python packages along with QGIS, Panoply and CoastWatch utils.
+Dockerfile
+FROM ghcr.io/nmfs-opensci/py-rocket-base/test:latest
+
+LABEL org.opencontainers.image.maintainers="eli.holmes@noaa.gov"
+LABEL org.opencontainers.image.author="eli.holmes@noaa.gov"
+LABEL org.opencontainers.image.source=https://github.com/nmfs-opensci/container-images/py-rocket-2
+LABEL org.opencontainers.image.description="Geospatial Python (3.11) and R (4.4) image with Desktop (QGIS, Panoply, CWUtils)"
+LABEL org.opencontainers.image.licenses=Apache2.0
+LABEL org.opencontainers.image.version=2024.11.06
+
+USER root
+COPY . /tmp2/
+RUN /pyrocket_scripts/install-conda-packages.sh /tmp2/environment.yml || echo "install-conda-packages.sh failed" || true
+RUN /pyrocket_scripts/install-r-packages.sh /tmp2/install.R || echo "install-r-package.sh failed" || true
+RUN /pyrocket_scripts/install-apt-packages.sh /tmp2/apt.txt || echo "install-apt-packages.sh failed" || true
+RUN /pyrocket_scripts/install-desktop.sh /tmp2/Desktop|| echo "setup-desktop.sh failed" || true
+RUN rm -rf /tmp2
+USER ${NB_USER}
+
+USER root
+# install the geospatial libraries and R spatial; the rocket script are part of py-rocket-base
+RUN PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin && \
+ /rocker_scripts/install_geospatial.sh
+
+# Install cwutils
+RUN cd /tmp && \
+ wget https://www.star.nesdis.noaa.gov/socd/coastwatch/cwf/cwutils-4_0_0_198-linux-x86_64.tar.gz && \
+ tar -zxf cwutils-4_0_0_198-linux-x86_64.tar.gz && \
+ rm -rf cwutils-4_0_0_198-linux-x86_64.tar.gz
+ENV PATH=${PATH}:/tmp/cwutils_4.0.0.198/bin
+ENV MANPATH=${MANPATH}:/tmp/cwutils_4.0.0.198/doc/man
+ENV INSTALL4J ADD VM PARAMS=-Dsun.java2d.uiScale=2.0
+
+# Install panoply
+RUN cd /tmp && \
+ wget --user-agent="Mozilla/5.0" https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-5.5.5.tgz && \
+ tar -zxf PanoplyJ-5.5.5.tgz && \
+ rm -rf PanoplyJ-5.5.5.tgz
+ENV PATH=${PATH}:/tmp/PanoplyJ
+
+USER ${NB_USER}
+WORKDIR ${HOME}
+environment.yml
+name: py-rocket-geospatial
+# 2024-11-01
+channels:
+ - conda-forge
+ - nodefaults
+
+dependencies:
+ # Core scientific python stack
+ - cython # optimization, C API access
+ - flox # optimization, xarray operations
+ - hypothesis # needed by numpy testing tools
+ - networkx
+ - numba # high-performance numerics
+ - numpy
+ - pandas
+ - scikit-image
+ - scikit-learn
+ - scipy
+ - statsmodels
+ - pymannkendall # non-parametric Mann-Kendall trend analysis
+ - sympy
+ - xarray>=2024.05.0
+
+ # Visualization packages
+ - bokeh
+ - cartopy # geospatial plotting with matplotlib
+ - geemap
+ - geoviews
+ - hvplot
+ - ipyleaflet
+ - ipympl # This enables matplotlib interaction with jupyter widgets
+ - leafmap
+ - lonboard
+ - matplotlib
+ - plotly
+ - seaborn # statistical plotting with matplotlib
+ - cmocean # colormaps for ocean
+ - imageio # helps writing image files
+ - apng # create animation from multiple png
+ - holoviews
+ - graphviz
+ - bqplot # 2-D visualization system
+ - regionmask # create masks of (geo)spatial regions
+
+ # Machine Learning packages
+ - py-xgboost~=2.1.1=cpu*
+
+ # Geospatial data packages
+ - geopandas>=0.14.4
+ - pygmt
+ - rasterio
+ - rioxarray
+ - rasterstats # summarize geospatial raster datasets based on vector geometries
+ - pyresample # resampling geospatial image data
+ - shapely # manipulation and analysis of planar geometric objects
+ - pyproj
+ - datashader
+
+ # File formats and file management, download, dataset caching
+ - h5py
+ - h5netcdf
+ - nco
+ - pooch
+ - zarr
+ - kerchunk
+ - rechunker
+ - cftime # for decoding time units and variable values in a netCDF file
+ - h5coro # reading HDF5 data stored in S3
+ - hdf5plugin # provides HDF5 compression filters
+ - lxml # processing XML and HTML
+ - pynco # python style access to the NetCDF Operators (NCO)
+
+ # Cloud access tools and libraries
+ - awscli
+ - awscliv2
+ - boto3
+ - s3fs>=2023.6.0
+ # handle login and similar details for accessing earthdata protected data
+ # Access datasets exposed via STAC
+ - pystac-client
+ - stackstac
+ # Access datasets exposed via intake catalogs
+ - intake
+ - intake-esm>=2023.7.7
+ - intake-stac==0.4.0
+ - intake-xarray==0.6.1
+ - gcsfs>=2023.5.0
+ - certifi # Root Certificates for validating the trustworthiness of SSL certificates.
+
+ # Specific cloud access libraries
+ - copernicusmarine # get data from copernicus
+ - earthaccess>=0.11.0 # get data from nasa earth access
+ - pydap # OPeNDAP implementation
+ - erddapy # connect to erddap servers
+ - ecmwflibs # wraps some of European Centre for Medium-Range Weather Forecasts libraries
+ - harmony-py
+
+ # Distributed computing
+ - dask>=2023.12.1
+ - dask-labextension
+ - dask-geopandas
+ - coiled
+
+ # Other useful generic python packages
+ - pillow # Python imaging library, useful for many image-related tasks
+ - pytest
+ - pytest-cov
+ - pep8
+ - flake8
+ - tqdm # progress bars, with notebook support
+ - joblib # lightweight pipelining in Python
+
+ # Packages specific to climate and ocean data work
+ - esmpy
+ - xmip
+ - spectral # pure Python module for processing hyperspectral image data
+
+ # Desktop tools
+ - qgis
+ - pyopencl # Maybe needed for qgis? https://github.com/conda-forge/qgis-feedstock/issues/263
+ # Resolves warning "No ICDs were found": https://github.com/CryoInTheCloud/hub-image/issues/50
+ - ocl-icd-system
+
+ # Quarto
+ - quarto
+ - pip:
+ - xq # Apply XPath expressions to XML
+ - jupyterlab-quarto
+install.R
+#! /usr/local/bin/Rscript
+# install R dependencies
+
+# to match rocker/verse:4.4 used in py-rocker-base
+# look up the date that the Rocker image was created and put that
+repo <- "https://p3m.dev/cran/__linux__/jammy/2024-05-13"
+
+install.packages(c("rstac", "quarto", "aws.s3", "reticulate", "gdalcubes", "rnaturalearth"), repos=repo)
+install.packages("rnaturalearthdata", repos=repo)
+
+remotes::install_github('r-tmap/tmap', upgrade=FALSE)
+# CRAN version is out of date
+devtools::install_github("boettiger-lab/earthdatalogin")
+
+# CoastWatch required
+list.of.packages <- c("parsedate", "reshape2", "gridGraphics", "PBSmapping",
+ "date", "openair", "cmocean", "plotdap", "rerddapXtracto")
+install.packages(list.of.packages, repos=repo)
+apt.txt
+# for qgis
+libgl1-mesa-glx
+
+
+