diff --git a/.github/actions/run_tests/Dockerfile.run b/.github/actions/run_tests/Dockerfile.run index 133783e8a6..a780294208 100644 --- a/.github/actions/run_tests/Dockerfile.run +++ b/.github/actions/run_tests/Dockerfile.run @@ -1,4 +1,4 @@ -ARG METPLUS_ENV_TAG=metplus_base +ARG METPLUS_ENV_TAG=metplus_base.v5 ARG METPLUS_IMG_TAG=develop FROM dtcenter/metplus-envs:${METPLUS_ENV_TAG} as env diff --git a/.github/actions/run_tests/Dockerfile.run_cartopy b/.github/actions/run_tests/Dockerfile.run_cartopy index 58256ff2a6..196c4bd505 100644 --- a/.github/actions/run_tests/Dockerfile.run_cartopy +++ b/.github/actions/run_tests/Dockerfile.run_cartopy @@ -1,4 +1,4 @@ -ARG METPLUS_ENV_TAG=cycloneplotter +ARG METPLUS_ENV_TAG=cycloneplotter.v5 ARG METPLUS_IMG_TAG=develop FROM dtcenter/metplus-envs:${METPLUS_ENV_TAG} as env diff --git a/.github/jobs/docker_utils.py b/.github/jobs/docker_utils.py index a10f67f0c6..cf38091ad9 100644 --- a/.github/jobs/docker_utils.py +++ b/.github/jobs/docker_utils.py @@ -12,6 +12,9 @@ # repository used for storing input data for development branches DOCKERHUB_METPLUS_DATA_DEV = 'dtcenter/metplus-data-dev' +# extension to add to conda environments +VERSION_EXT = '.v5' + def get_data_repo(branch_name): """! Branch names that start with main_v or contain only digits and dots with out without a prefix 'v' will return diff --git a/.github/jobs/get_requirements.py b/.github/jobs/get_requirements.py index d0b91cd717..e4419e31d1 100755 --- a/.github/jobs/get_requirements.py +++ b/.github/jobs/get_requirements.py @@ -8,11 +8,11 @@ import get_use_case_commands -# add internal_tests/use_cases directory to path so the test suite can be found -USE_CASES_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), - os.pardir, - os.pardir)) -sys.path.insert(0, USE_CASES_DIR) +# add METplus directory to path so the test suite can be found +METPLUS_TOP_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), + os.pardir, + os.pardir)) +sys.path.insert(0, METPLUS_TOP_DIR) from internal_tests.use_cases.metplus_use_case_suite import METplusUseCaseSuite diff --git a/.github/jobs/get_use_case_commands.py b/.github/jobs/get_use_case_commands.py index debf7bc6bf..3d8956181b 100755 --- a/.github/jobs/get_use_case_commands.py +++ b/.github/jobs/get_use_case_commands.py @@ -8,17 +8,22 @@ import os # add METplus directory to sys path so the test suite can be found -USE_CASES_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), - os.pardir, - os.pardir)) -sys.path.insert(0, USE_CASES_DIR) +METPLUS_TOP_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), + os.pardir, + os.pardir)) +sys.path.insert(0, METPLUS_TOP_DIR) from internal_tests.use_cases.metplus_use_case_suite import METplusUseCaseSuite from metplus.util.met_util import expand_int_string_to_list +from docker_utils import VERSION_EXT -METPLUS_BASE_ENV = 'metplus_base' + +# path to METplus install location in Docker METPLUS_DOCKER_LOC = '/metplus/METplus' +# name of conda environment used for cases that don't need special env +METPLUS_BASE_ENV = 'metplus_base' + # keywords in requirements list that trigger obtaining METcalcpy and METplotpy PLOTCALC_KEYWORDS = [ 'metplotpy', @@ -27,6 +32,12 @@ 'weatherregime', ] +# Docker envs that do not use Python so they do not need print conda list +NOT_PYTHON_ENVS = [ + 'gfdl-tracker', + 'gempak', +] + def handle_automation_env(host_name, reqs, work_dir): # if no env is specified, use metplus base environment conda_env = METPLUS_BASE_ENV @@ -44,12 +55,15 @@ def handle_automation_env(host_name, reqs, work_dir): return '', 'user_env_vars.MET_PYTHON_EXE=python3' return '', '' + # add version extension to conda environment name + conda_env_w_ext = f'{conda_env}{VERSION_EXT}' + # start building commands to run before run_metplus.py in Docker setup_env = 'source /etc/bashrc;' # add conda bin to beginning of PATH python_dir = os.path.join('/usr', 'local', 'envs', - conda_env, 'bin') + conda_env_w_ext, 'bin') python_path = os.path.join(python_dir, 'python3') setup_env += f' export PATH={python_dir}:$PATH;' @@ -92,12 +106,12 @@ def handle_automation_env(host_name, reqs, work_dir): setup_env += f'export PYTHONPATH={METPLUS_DOCKER_LOC}:$PYTHONPATH;' # list packages in python environment that will be used - if conda_env != 'gempak': + if conda_env not in NOT_PYTHON_ENVS: setup_env += ( - f'echo Using environment: dtcenter/metplus-envs:{conda_env};' - f'echo cat /usr/local/envs/{conda_env}/environments.yml;' + f'echo Using environment: dtcenter/metplus-envs:{conda_env_w_ext};' + f'echo cat /usr/local/envs/{conda_env_w_ext}/environments.yml;' f'echo ----------------------------------------;' - f'cat /usr/local/envs/{conda_env}/environments.yml;' + f'cat /usr/local/envs/{conda_env_w_ext}/environments.yml;' 'echo ----------------------------------------;' ) @@ -108,7 +122,7 @@ def main(categories, subset_list, work_dir=None, all_commands = [] if work_dir is None: - work_dir = USE_CASES_DIR + work_dir = METPLUS_TOP_DIR test_suite = METplusUseCaseSuite() test_suite.add_use_case_groups(categories, subset_list) diff --git a/.github/jobs/setup_and_run_diff.py b/.github/jobs/setup_and_run_diff.py index ff7acfcfdf..9b3725c901 100755 --- a/.github/jobs/setup_and_run_diff.py +++ b/.github/jobs/setup_and_run_diff.py @@ -5,6 +5,8 @@ import subprocess import shlex +from docker_utils import VERSION_EXT + ci_dir = os.path.join(os.environ.get('GITHUB_WORKSPACE'), '.github') sys.path.insert(0, ci_dir) @@ -46,12 +48,12 @@ mount_args = ' '.join(volume_mounts) # command to run inside Docker -cmd = ('/usr/local/envs/diff/bin/python3 ' +cmd = (f'/usr/local/envs/diff{VERSION_EXT}/bin/python3 ' f'{GITHUB_WORKSPACE}/{CI_JOBS_DIR}/run_diff_docker.py') # run inside diff env: mount METplus code and output dir, volumes from output volumes docker_cmd = (f'docker run -e GITHUB_WORKSPACE {VOLUMES_FROM} ' - f'{mount_args} dtcenter/metplus-envs:diff ' + f'{mount_args} dtcenter/metplus-envs:diff{VERSION_EXT} ' f'bash -c "{cmd}"') print(f'RUNNING: {docker_cmd}') try: diff --git a/.github/jobs/setup_and_run_use_cases.py b/.github/jobs/setup_and_run_use_cases.py index ff1fa35e9c..00aa682092 100755 --- a/.github/jobs/setup_and_run_use_cases.py +++ b/.github/jobs/setup_and_run_use_cases.py @@ -16,7 +16,7 @@ import get_use_case_commands import get_data_volumes -from docker_utils import get_branch_name +from docker_utils import get_branch_name, VERSION_EXT runner_workspace = os.environ.get('RUNNER_WORKSPACE') github_workspace = os.environ.get('GITHUB_WORKSPACE') @@ -70,6 +70,8 @@ def main(): else: env_tag = 'metplus_base' + env_tag = f'{env_tag}{VERSION_EXT}' + # get Dockerfile to use dockerfile_name = 'Dockerfile.run' if 'gempak' in str(requirements).lower(): diff --git a/internal_tests/use_cases/all_use_cases.txt b/internal_tests/use_cases/all_use_cases.txt index e37b0466e5..0d20c7ce2b 100644 --- a/internal_tests/use_cases/all_use_cases.txt +++ b/internal_tests/use_cases/all_use_cases.txt @@ -139,6 +139,7 @@ Category: s2s_mid_lat 2::UserScript_obsERA_obsOnly_WeatherRegime:: model_applications/s2s_mid_lat/UserScript_obsERA_obsOnly_WeatherRegime.conf:: weatherregime_env,cartopy,metplus 3:: UserScript_fcstGFS_obsERA_WeatherRegime:: model_applications/s2s_mid_lat/UserScript_fcstGFS_obsERA_WeatherRegime.conf:: weatherregime_env,cartopy,metplus + Category: s2s_mjo 0:: UserScript_obsERA_obsOnly_PhaseDiagram:: model_applications/s2s_mjo/UserScript_obsERA_obsOnly_PhaseDiagram.conf:: spacetime_env 1:: UserScript_fcstGFS_obsERA_OMI:: model_applications/s2s_mjo/UserScript_fcstGFS_obsERA_OMI.conf:: spacetime_env, metdataio diff --git a/scripts/docker/docker_env/Dockerfile b/scripts/docker/docker_env/Dockerfile index a5f2549a66..21be7ae23d 100644 --- a/scripts/docker/docker_env/Dockerfile +++ b/scripts/docker/docker_env/Dockerfile @@ -1,13 +1,14 @@ # Dockerfile to create conda environments used for use case tests -ARG BASE_ENV=metplus_base +ARG BASE_ENV=metplus_base.v5 FROM dtcenter/metplus-envs:${BASE_ENV} ARG ENV_NAME WORKDIR /scripts COPY scripts/${ENV_NAME}_env.sh . -ARG BASE_ENV=metplus_base -RUN ./${ENV_NAME}_env.sh ${BASE_ENV} +ARG BASE_ENV=metplus_base.v5 +RUN conda update -y -n base -c defaults conda \ + && ./${ENV_NAME}_env.sh ${BASE_ENV} -RUN conda list --name ${ENV_NAME} > /usr/local/envs/${ENV_NAME}/environments.yml +RUN conda list --name ${ENV_NAME}.v5 > /usr/local/envs/${ENV_NAME}.v5/environments.yml diff --git a/scripts/docker/docker_env/Dockerfile.metplus_base b/scripts/docker/docker_env/Dockerfile.metplus_base index cb63fc13f1..87e2dfbc10 100644 --- a/scripts/docker/docker_env/Dockerfile.metplus_base +++ b/scripts/docker/docker_env/Dockerfile.metplus_base @@ -9,4 +9,4 @@ COPY scripts/metplus_base_env.sh . RUN conda update -y -n base -c defaults conda \ && ./metplus_base_env.sh -RUN conda list --name metplus_base > /usr/local/envs/metplus_base/environments.yml +RUN conda list --name metplus_base.v5 > /usr/local/envs/metplus_base.v5/environments.yml diff --git a/scripts/docker/docker_env/Dockerfile.py_embed_base b/scripts/docker/docker_env/Dockerfile.py_embed_base index 90db08b030..4499570d48 100644 --- a/scripts/docker/docker_env/Dockerfile.py_embed_base +++ b/scripts/docker/docker_env/Dockerfile.py_embed_base @@ -10,4 +10,4 @@ COPY scripts/py_embed_base_env.sh . RUN conda update -y -n base -c defaults conda \ && ./py_embed_base_env.sh -RUN conda list --name py_embed_base > /usr/local/envs/py_embed_base/environments.yml +RUN conda list --name py_embed_base.v5 > /usr/local/envs/py_embed_base.v5/environments.yml diff --git a/scripts/docker/docker_env/README.md b/scripts/docker/docker_env/README.md index e393513608..521d071846 100644 --- a/scripts/docker/docker_env/README.md +++ b/scripts/docker/docker_env/README.md @@ -5,7 +5,13 @@ Instructions include how to create Docker images in dtcenter/metplus-envs so environments are available for the automated tests. Instructions to create these Conda environments on a local machine are also provided. -## metplus_base +**IMPORTANT NOTE:** If all of the Docker Conda Environment images need to be +rebuilt again, consider adding logic to update the OS packages first to +prevent potential issues with wget commands used to download the cartopy +shapefiles. Without this, the wget commands may fail because the +certificate trust store is out of date. + +## metplus_base.v5 This environment includes the minimum requirements to run the METplus wrappers. @@ -13,8 +19,8 @@ This environment includes the minimum requirements to run the METplus wrappers. ### Docker ``` -docker build -t dtcenter/metplus-envs:metplus_base -f Dockerfile.metplus_base . -docker push dtcenter/metplus-envs:metplus_base +docker build -t dtcenter/metplus-envs:metplus_base.v5 -f Dockerfile.metplus_base . +docker push dtcenter/metplus-envs:metplus_base.v5 ``` ### Local @@ -23,15 +29,16 @@ docker push dtcenter/metplus-envs:metplus_base ./scripts/metplus_base_env.sh ``` -## py_embed_base + +## py_embed_base.v5 This environment includes all python embedding requirements (xarray and netcdf). ### Docker ``` -docker build -t dtcenter/metplus-envs:py_embed_base -f Dockerfile.py_embed_base . -docker push dtcenter/metplus-envs:py_embed_base +docker build -t dtcenter/metplus-envs:py_embed_base.v5 -f Dockerfile.py_embed_base . +docker push dtcenter/metplus-envs:py_embed_base.v5 ``` ### Local @@ -40,58 +47,62 @@ docker push dtcenter/metplus-envs:py_embed_base ./scripts/py_embed_base_env.sh ``` -## h5py (from py_embed_base) + +## h5py.v5 (from py_embed_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:h5py --build-arg BASE_ENV=py_embed_base --build-arg ENV_NAME=h5py . -docker push dtcenter/metplus-envs:h5py +docker build -t dtcenter/metplus-envs:h5py.v5 --build-arg BASE_ENV=py_embed_base.v5 --build-arg ENV_NAME=h5py . +docker push dtcenter/metplus-envs:h5py.v5 ``` ### Local ``` -./scripts/h5py_env.sh py_embed_base +./scripts/h5py_env.sh ``` -## metdataio (from metplus_base) + +## metdataio.v5 (from metplus_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:metdataio --build-arg ENV_NAME=metdataio . -docker push dtcenter/metplus-envs:metdataio +docker build -t dtcenter/metplus-envs:metdataio.v5 --build-arg ENV_NAME=metdataio . +docker push dtcenter/metplus-envs:metdataio.v5 ``` ### Local ``` -./scripts/metdatadb_env.sh metplus_base +./scripts/metdataio_env.sh ``` -## pygrib (from py_embed_base) + +## pygrib.v5 (from py_embed_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:pygrib --build-arg BASE_ENV=py_embed_base --build-arg ENV_NAME=pygrib . -docker push dtcenter/metplus-envs:pygrib +docker build -t dtcenter/metplus-envs:pygrib.v5 --build-arg BASE_ENV=py_embed_base.v5 --build-arg ENV_NAME=pygrib . +docker push dtcenter/metplus-envs:pygrib.v5 ``` ### Local ``` -./scripts/pygrib_env.sh py_embed_base +./scripts/pygrib_env.sh ``` -## cfgrib (from fresh Python 3.6.8 environment) + +## cfgrib.v5 (from fresh Python 3.8.6 environment) ### Docker ``` -docker build -t dtcenter/metplus-envs:cfgrib --build-arg ENV_NAME=cfgrib . -docker push dtcenter/metplus-envs:cfgrib +docker build -t dtcenter/metplus-envs:cfgrib.v5 --build-arg ENV_NAME=cfgrib . +docker push dtcenter/metplus-envs:cfgrib.v5 ``` ### Local @@ -100,76 +111,76 @@ docker push dtcenter/metplus-envs:cfgrib ./scripts/cfgrib_env.sh ``` -## netcdf4 (from metplus_base) + +## netcdf4.v5 (from metplus_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:netcdf4 --build-arg ENV_NAME=netcdf4 . -docker push dtcenter/metplus-envs:netcdf4 +docker build -t dtcenter/metplus-envs:netcdf4.v5 --build-arg ENV_NAME=netcdf4 . +docker push dtcenter/metplus-envs:netcdf4.v5 ``` ### Local ``` -./scripts/netcdf4_env.sh metplus_base +./scripts/netcdf4_env.sh ``` -## xesmf (from metplus_base) + +## xesmf.v5 (from metplus_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:xesmf --build-arg ENV_NAME=xesmf . -docker push dtcenter/metplus-envs:xesmf +docker build -t dtcenter/metplus-envs:xesmf.v5 --build-arg ENV_NAME=xesmf . +docker push dtcenter/metplus-envs:xesmf.v5 ``` ### Local ``` -./scripts/xesmf_env.sh metplus_base +./scripts/xesmf_env.sh ``` -## spacetime (from metplus_base) + +## spacetime.v5 ### Docker ``` -docker build -t dtcenter/metplus-envs:spacetime --build-arg ENV_NAME=spacetime . -docker push dtcenter/metplus-envs:spacetime +docker build -t dtcenter/metplus-envs:spacetime.v5 --build-arg ENV_NAME=spacetime . +docker push dtcenter/metplus-envs:spacetime.v5 ``` ### Local ``` -./scripts/spacetime_env.sh metplus_base +./scripts/spacetime_env.sh ``` -## metplotpy (from metplus_base) + +## metplotpy.v5 (from metplus_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:metplotpy --build-arg ENV_NAME=metplotpy . -docker push dtcenter/metplus-envs:metplotpy +docker build -t dtcenter/metplus-envs:metplotpy.v5 --build-arg ENV_NAME=metplotpy . +docker push dtcenter/metplus-envs:metplotpy.v5 ``` ### Local -NOTE: Environment cannot be created fully using conda commands because there is a conflict -with the python-kaleido package and the version of glibc. The kaleido package installation -will fail through the script, but it should be installed using pip3 afterwards. - ``` -./scripts/metplotpy_env.sh metplus_base -/home/met_test/.conda/envs/metplotpy/bin/pip3 install kaleido==0.2.1 -/home/met_test/.conda/envs/metplotpy/bin/python3 cartopy_feature_download.py cultural physical +./scripts/metplotpy_env.sh +/home/met_test/.conda/envs/metplotpy.v5/bin/python3 cartopy_feature_download.py cultural physical rm cartopy_feature_download.py ``` #### To install METplotpy and METcalcpy packages in environment ``` +runas met_test cd /home/met_test # git clone not necessary if repo is already available @@ -178,33 +189,37 @@ git clone https://github.com/dtcenter/METcalcpy cd /home/met_test/METplotpy git checkout develop -/home/met_test/.conda/envs/metplotpy/bin/pip3 install . +/home/met_test/.conda/envs/metplotpy.v5/bin/pip3 install . cd /home/met_test/METcalcpy git checkout develop -/home/met_test/.conda/envs/metplotpy/bin/pip3 install . +/home/met_test/.conda/envs/metplotpy.v5/bin/pip3 install . + +exit ``` -## weatherregime (from metplotpy_env) + +## weatherregime.v5 (from metplotpy.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:weatherregime --build-arg BASE_ENV=metplotpy --build-arg ENV_NAME=weatherregime . -docker push dtcenter/metplus-envs:weatherregime +docker build -t dtcenter/metplus-envs:weatherregime.v5 --build-arg BASE_ENV=metplotpy.v5 --build-arg ENV_NAME=weatherregime . +docker push dtcenter/metplus-envs:weatherregime.v5 ``` ### Local ``` -./scripts/weatherregime_env.sh metplotpy -/home/met_test/.conda/envs/weatherregime/bin/python3 cartopy_feature_download.py cultural physical +./scripts/weatherregime_env.sh +/home/met_test/.conda/envs/weatherregime.v5/bin/python3 cartopy_feature_download.py cultural physical rm cartopy_feature_download.py ``` #### To install METplotpy and METcalcpy packages in environment ``` +runas met_test cd /home/met_test # git clone not necessary if repo is already available @@ -213,50 +228,57 @@ git clone https://github.com/dtcenter/METcalcpy cd /home/met_test/METplotpy git checkout develop -/home/met_test/.conda/envs/weatherregime/bin/pip3 install . +/home/met_test/.conda/envs/weatherregime.v5/bin/pip3 install . cd /home/met_test/METcalcpy git checkout develop -/home/met_test/.conda/envs/weatherregime/bin/pip3 install . +/home/met_test/.conda/envs/weatherregime.v5/bin/pip3 install . + +exit ``` -## cycloneplotter (from metplus_base) + +## cycloneplotter.v5 (from metplus_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:cycloneplotter --build-arg ENV_NAME=cycloneplotter . -docker push dtcenter/metplus-envs:cycloneplotter +docker build -t dtcenter/metplus-envs:cycloneplotter.v5 --build-arg ENV_NAME=cycloneplotter . +docker push dtcenter/metplus-envs:cycloneplotter.v5 ``` ### Local ``` -./scripts/cycloneplotter_env.sh metplus_base +./scripts/cycloneplotter_env.sh +/home/met_test/.conda/envs/cycloneplotter.v5/bin/python3 cartopy_feature_download.py cultural physical +rm cartopy_feature_download.py ``` -## icecover (from py_embed_base) + +## icecover.v5 (from py_embed_base.v5) ### Docker ``` -docker build -t dtcenter/metplus-envs:icecover --build-arg BASE_ENV=py_embed_base --build-arg ENV_NAME=icecover . -docker push dtcenter/metplus-envs:icecover +docker build -t dtcenter/metplus-envs:icecover.v5 --build-arg BASE_ENV=py_embed_base.v5 --build-arg ENV_NAME=icecover . +docker push dtcenter/metplus-envs:icecover.v5 ``` ### Local ``` -./scripts/icecover_env.sh py_embed_base +./scripts/icecover_env.sh ``` -## gempak (from metplus_base using Dockerfile.gempak_env) + +## gempak.v5 (from metplus_base.v5 using Dockerfile.gempak_env) ### Docker ``` -docker build -t dtcenter/metplus-envs:gempak --build-arg ENV_NAME=gempak -f ./Dockerfile.gempak_env . -docker push dtcenter/metplus-envs:gempak +docker build -t dtcenter/metplus-envs:gempak.v5 --build-arg ENV_NAME=gempak -f ./Dockerfile.gempak_env . +docker push dtcenter/metplus-envs:gempak.v5 ``` ### Local @@ -266,13 +288,14 @@ GempakToCF.jar file that is required to run use cases that read GEMPAK data. If this environment locally, Java should be available on the system you are running and the JAR file should be downloaded from the DTC website. -## gfdl-tracker (using Dockerfile.gfdl-tracker) + +## gfdl-tracker.v5 (using Dockerfile.gfdl-tracker) ### Docker ``` -docker build -t dtcenter/metplus-envs:gfdl-tracker -f ./Dockerfile.gfdl-tracker . -docker push dtcenter/metplus-envs:gfdl-tracker +docker build -t dtcenter/metplus-envs:gfdl-tracker.v5 -f ./Dockerfile.gfdl-tracker . +docker push dtcenter/metplus-envs:gfdl-tracker.v5 ``` ### Local @@ -284,7 +307,7 @@ to install the GFDL Tracker using these steps. Please consult the documentation for the tool for installation instructions. -## pytest (from metplus_base) +## pytest.v5 (from metplus_base.v5) This environment is used in automation to run the pytests. It requires all of the packages needed to run all of the METplus wrappers, the pytest package and the pytest @@ -293,11 +316,12 @@ code coverage package. ### Docker ``` -docker build -t dtcenter/metplus-envs:pytest --build-arg ENV_NAME=pytest . -docker push dtcenter/metplus-envs:pytest +docker build -t dtcenter/metplus-envs:pytest.v5 --build-arg ENV_NAME=pytest . +docker push dtcenter/metplus-envs:pytest.v5 ``` -## diff (from netcdf4) + +## diff.v5 (from netcdf4.v5) This environment is used to run the difference tests to compare output data to output generated in previous runs to ensure that changes to the code base do not break or change @@ -306,6 +330,6 @@ the results. ### Docker ``` -docker build -t dtcenter/metplus-envs:diff --build-arg BASE_ENV=netcdf4 --build-arg ENV_NAME=diff . -docker push dtcenter/metplus-envs:diff +docker build -t dtcenter/metplus-envs:diff.v5 --build-arg BASE_ENV=netcdf4.v5 --build-arg ENV_NAME=diff . +docker push dtcenter/metplus-envs:diff.v5 ``` diff --git a/scripts/docker/docker_env/scripts/cfgrib_env.sh b/scripts/docker/docker_env/scripts/cfgrib_env.sh index e8d836e9b6..7d8687ba26 100755 --- a/scripts/docker/docker_env/scripts/cfgrib_env.sh +++ b/scripts/docker/docker_env/scripts/cfgrib_env.sh @@ -1,24 +1,24 @@ #! /bin/sh ################################################################################ -# Environment: cfgrib -# Last Updated: 2021-07-20 (mccabe@ucar.edu) +# Environment: cfgrib.v5 +# Last Updated: 2022-06-16 (mccabe@ucar.edu) # Notes: Adds Python packages needed to read GRIB data into Xarray and # so it can easily be processed with MetPy # Python Packages: -# metpy==1.0.1 -# netcdf4==1.5.6 -# cfgrib==0.9.9.0 -# pygrib==2.1.3 +# metpy==1.3.0 +# netcdf4==1.5.8 +# cfgrib==0.9.10.1 +# pygrib==2.1.4 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=cfgrib +ENV_NAME=cfgrib.v5 -conda create -y --name ${ENV_NAME} python=3.8.8 -conda install -y --name ${ENV_NAME} -c conda-forge metpy==1.0.1 -conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.6 -conda install -y --name ${ENV_NAME} -c conda-forge cfgrib==0.9.9.0 -conda install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.3 +conda create -y --name ${ENV_NAME} -c conda-forge python=3.8.6 +conda install -y --name ${ENV_NAME} -c conda-forge metpy==1.3.0 +conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.8 +conda install -y --name ${ENV_NAME} -c conda-forge cfgrib==0.9.10.1 +conda install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.4 diff --git a/scripts/docker/docker_env/scripts/cycloneplotter_env.sh b/scripts/docker/docker_env/scripts/cycloneplotter_env.sh index 17706c39d0..01ee3e7d43 100755 --- a/scripts/docker/docker_env/scripts/cycloneplotter_env.sh +++ b/scripts/docker/docker_env/scripts/cycloneplotter_env.sh @@ -2,27 +2,27 @@ ################################################################################ # Environment: cycloneplotter -# Last Updated: 2021-06-09 (mccabe@ucar.edu) +# Last Updated: 2022-07-08 (mccabe@ucar.edu) # Notes: Adds packages needed to run CyclonePlotter wrapper # Added pandas because it is used by tc_and_extra_tc use case # Python Packages: -# cartopy==0.17.0 -# matplotlib==3.3.0 -# pandas==? +# cartopy==0.20.3 +# matplotlib==3.5.2 +# pandas==1.4.3 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=cycloneplotter +ENV_NAME=cycloneplotter.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplus_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge cartopy==0.17.0 -conda install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.3.0 -conda install -y --name ${ENV_NAME} -c conda-forge pandas +conda install -y --name ${ENV_NAME} -c conda-forge cartopy==0.20.3 +conda install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.5.2 +conda install -y --name ${ENV_NAME} -c conda-forge pandas==1.4.3 yum -y install wget wget https://raw.githubusercontent.com/SciTools/cartopy/master/tools/cartopy_feature_download.py diff --git a/scripts/docker/docker_env/scripts/diff_env.sh b/scripts/docker/docker_env/scripts/diff_env.sh index f74f430872..bc019f39d2 100755 --- a/scripts/docker/docker_env/scripts/diff_env.sh +++ b/scripts/docker/docker_env/scripts/diff_env.sh @@ -1,27 +1,27 @@ #! /bin/sh ################################################################################ -# Environment: diff -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Environment: diff.v5 +# Last Updated: 2022-07-08 (mccabe@ucar.edu) # Notes: Adds packages needed to run differences tests to compare output to # truth data. # Python Packages: -# pillow==? -# pdf2image==? +# pillow==9.2.0 +# pdf2image==1.16.0 # # Other Content: # poppler-utils ################################################################################ # Conda environment to create -ENV_NAME=diff +ENV_NAME=diff.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=netcdf4.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge pillow +conda install -y --name ${ENV_NAME} -c conda-forge pillow==9.2.0 yum -y install poppler-utils -conda install -y --name ${ENV_NAME} -c conda-forge pdf2image +conda install -y --name ${ENV_NAME} -c conda-forge pdf2image==1.16.0 diff --git a/scripts/docker/docker_env/scripts/gempak_env.sh b/scripts/docker/docker_env/scripts/gempak_env.sh index ceaa6e20a3..cd75f53e3b 100755 --- a/scripts/docker/docker_env/scripts/gempak_env.sh +++ b/scripts/docker/docker_env/scripts/gempak_env.sh @@ -1,8 +1,8 @@ #! /bin/sh ################################################################################ -# Environment: gempak -# Last Updated: 2021-06-22 (mccabe@ucar.edu) +# Environment: gempak.v5 +# Last Updated: 2021-07-08 (mccabe@ucar.edu) # Notes: Installs Java and obtains GempakToCF.jar to convert GEMPAK # files to NetCDF format. # Python Packages: None diff --git a/scripts/docker/docker_env/scripts/h5py_env.sh b/scripts/docker/docker_env/scripts/h5py_env.sh index 54c220c9b8..15f67b994a 100755 --- a/scripts/docker/docker_env/scripts/h5py_env.sh +++ b/scripts/docker/docker_env/scripts/h5py_env.sh @@ -1,20 +1,20 @@ #! /bin/sh ################################################################################ -# Environment: h5py -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Environment: h5py.v5 +# Last Updated: 2022-06-15 (mccabe@ucar.edu) # Notes: Adds Python interface to the HDF5 binary format # Python Packages: -# h5py==2.10.0 +# h5py==3.6.0 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=h5py +ENV_NAME=h5py.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=py_embed_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge h5py==2.10.0 +conda install -y --name ${ENV_NAME} -c conda-forge h5py==3.6.0 diff --git a/scripts/docker/docker_env/scripts/icecover_env.sh b/scripts/docker/docker_env/scripts/icecover_env.sh index eeeaff193a..60c48faf47 100755 --- a/scripts/docker/docker_env/scripts/icecover_env.sh +++ b/scripts/docker/docker_env/scripts/icecover_env.sh @@ -2,25 +2,25 @@ ################################################################################ # Environment: icecover -# Last Updated: 2021-06-29 (mccabe@ucar.edu) +# Last Updated: 2022-07-08 (mccabe@ucar.edu) # Notes: Adds Python packages required for ice cover use case # Python Packages: -# pyproj==3.0.1 -# pyresample==1.20.0 -# scikit-learn==0.24.2 +# xarray==2022.3.0 +# pyresample==1.24.1 +# scikit-learn==1.1.1 +# pyproj==3.3.1 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=icecover +ENV_NAME=icecover.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=py_embed_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge xarray==0.18.2 -conda install -y --name ${ENV_NAME} -c conda-forge pyresample==1.16.0 -conda install -y --name ${ENV_NAME} -c conda-forge scikit-learn==0.23.2 -#conda install -y --name ${ENV_NAME} -c conda-forge pyproj==3.0.1 -conda install -y --name ${ENV_NAME} -c conda-forge pyproj +conda install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 +conda install -y --name ${ENV_NAME} -c conda-forge pyresample==1.24.1 +conda install -y --name ${ENV_NAME} -c conda-forge scikit-learn==1.1.1 +conda install -y --name ${ENV_NAME} -c conda-forge pyproj==3.3.1 diff --git a/scripts/docker/docker_env/scripts/metdataio_env.sh b/scripts/docker/docker_env/scripts/metdataio_env.sh index b0808167e2..4ebd3c4b0b 100755 --- a/scripts/docker/docker_env/scripts/metdataio_env.sh +++ b/scripts/docker/docker_env/scripts/metdataio_env.sh @@ -1,25 +1,25 @@ #! /bin/sh ################################################################################ -# Environment: metdataio +# Environment: metdataio.v5 # Last Updated: 2022-07-13 (mccabe@ucar.edu) # Notes: Adds Python packages needed to run METdbLoad from METdataio # Python Packages: -# lxml==3.8.0 +# lxml==4.9.1 # pymysql==1.0.2 -# pandas==1.1.4 +# pandas==1.4.3 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=metdataio +ENV_NAME=metdataio.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplus_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge lxml==3.8.0 +conda install -y --name ${ENV_NAME} -c conda-forge lxml==4.9.1 conda install -y --name ${ENV_NAME} -c conda-forge pymysql==1.0.2 -conda install -y --name ${ENV_NAME} -c conda-forge pandas==1.1.4 +conda install -y --name ${ENV_NAME} -c conda-forge pandas==1.4.3 diff --git a/scripts/docker/docker_env/scripts/metplotpy_env.sh b/scripts/docker/docker_env/scripts/metplotpy_env.sh index f48da6c936..abe8d85b4b 100755 --- a/scripts/docker/docker_env/scripts/metplotpy_env.sh +++ b/scripts/docker/docker_env/scripts/metplotpy_env.sh @@ -2,45 +2,48 @@ ################################################################################ # Environment: metplotpy -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Last Updated: 2022-06-14 (mccabe@ucar.edu) # Notes: Adds Python packages needed to run METplotpy and METcalcpy -# Uses pip to install kaleido because -# could not install via Conda (glibc conflict) # Python Packages: -# matplotlib==3.3.0 -# scipy==1.5.1 -# plotly==4.9.0 -# cartopy==0.18.0 -# eofs==1.3.0 -# cmocean==2.0 -# xarray==0.17 -# netcdf4==1.5.6 -# pyyaml==? +# matplotlib==3.5.2 +# scipy==1.8.1 +# plotly==5.9.0 +# xarray==2022.3.0 +# netcdf4==1.6.0 +# pyyaml==6.0 +# statsmodels==0.13.2 # python-kaleido==0.2.1 +# imageio==2.19.3 +# imutils==0.5.4 +# scikit-image==0.19.3 +# pint==0.19.2 +# metpy=1.3.1 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=metplotpy +ENV_NAME=metplotpy.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplus_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.3.0 -conda install -y --name ${ENV_NAME} -c conda-forge scipy==1.5.1 -conda install -y --name ${ENV_NAME} -c conda-forge plotly==4.9.0 -conda install -y --name ${ENV_NAME} -c conda-forge cartopy==0.18.0 -conda install -y --name ${ENV_NAME} -c conda-forge eofs==1.3.0 -conda install -y --name ${ENV_NAME} -c conda-forge cmocean==2.0 -conda install -y --name ${ENV_NAME} -c conda-forge xarray==0.17 -conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.6 -conda install -y --name ${ENV_NAME} -c conda-forge pyyaml -conda install -y --name ${ENV_NAME} -c conda-forge statsmodels==0.11.1 -/usr/local/envs/${ENV_NAME}/bin/pip3 install kaleido==0.2.1 +conda install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.5.2 +conda install -y --name ${ENV_NAME} -c conda-forge scipy==1.8.1 +conda install -y --name ${ENV_NAME} -c conda-forge plotly==5.9.0 +conda install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 +conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.6.0 +conda install -y --name ${ENV_NAME} -c conda-forge pyyaml==6.0 +conda install -y --name ${ENV_NAME} -c conda-forge statsmodels==0.13.2 +conda install -y --name ${ENV_NAME} -c conda-forge python-kaleido==0.2.1 +conda install -y --name ${ENV_NAME} -c conda-forge imageio==2.19.3 +conda install -y --name ${ENV_NAME} -c conda-forge imutils==0.5.4 +conda install -y --name ${ENV_NAME} -c conda-forge scikit-image==0.19.3 +conda install -y --name ${ENV_NAME} -c conda-forge pint==0.19.2 +conda install -y --name ${ENV_NAME} -c conda-forge metpy=1.3.1 yum -y install wget wget https://raw.githubusercontent.com/SciTools/cartopy/master/tools/cartopy_feature_download.py diff --git a/scripts/docker/docker_env/scripts/metplus_base_env.sh b/scripts/docker/docker_env/scripts/metplus_base_env.sh index 3c07a20ce7..ad89bc1e5f 100755 --- a/scripts/docker/docker_env/scripts/metplus_base_env.sh +++ b/scripts/docker/docker_env/scripts/metplus_base_env.sh @@ -1,18 +1,18 @@ #! /bin/sh ################################################################################ -# Environment: metplus_base -# Last Updated: 2021-07-06 (mccabe@ucar.edu) +# Environment: metplus_base (v5) +# Last Updated: 2022-05-12 (mccabe@ucar.edu) # Notes: Move logic to create METplus base env to script so it can be called # on a local machine to create the environment # Python Packages: -# python-dateutil==2.8.1 +# python-dateutil==2.8.2 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=metplus_base +ENV_NAME=metplus_base.v5 -conda create -y --name ${ENV_NAME} python=3.6.8 -conda install -y --name ${ENV_NAME} -c conda-forge python-dateutil==2.8.1 +conda create -y --name ${ENV_NAME} -c conda-forge python=3.8.6 +conda install -y --name ${ENV_NAME} -c conda-forge python-dateutil==2.8.2 diff --git a/scripts/docker/docker_env/scripts/netcdf4_env.sh b/scripts/docker/docker_env/scripts/netcdf4_env.sh index 43e4a98f48..e04e783a35 100755 --- a/scripts/docker/docker_env/scripts/netcdf4_env.sh +++ b/scripts/docker/docker_env/scripts/netcdf4_env.sh @@ -2,19 +2,19 @@ ################################################################################ # Environment: netcdf4 -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Last Updated: 2022-06-16 (mccabe@ucar.edu) # Notes: Adds NetCDF4 Python package # Python Packages: -# netcdf4==1.5.6 +# netcdf4==1.5.8 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=netcdf4 +ENV_NAME=netcdf4.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplus_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.6 +conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.8 diff --git a/scripts/docker/docker_env/scripts/py_embed_base_env.sh b/scripts/docker/docker_env/scripts/py_embed_base_env.sh index e415da8588..10bbfc8533 100755 --- a/scripts/docker/docker_env/scripts/py_embed_base_env.sh +++ b/scripts/docker/docker_env/scripts/py_embed_base_env.sh @@ -1,19 +1,20 @@ #! /bin/sh ################################################################################ -# Environment: metplus_base -# Last Updated: 2021-07-06 (mccabe@ucar.edu) +# Environment: metplus_base.v5 +# Last Updated: 2022-06-15 (mccabe@ucar.edu) # Notes: Move logic to create METplus base env to script so it can be called # on a local machine to create the environment # Python Packages: -# python-dateutil==2.8.1 +# xarray==2022.3.0 +# netcdf4==1.5.8 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=py_embed_base +ENV_NAME=py_embed_base.v5 -conda create -y --name ${ENV_NAME} python=3.6.8 -conda install -y --name ${ENV_NAME} -c conda-forge xarray==0.16.2 -conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.6 +conda create -y --name ${ENV_NAME} -c conda-forge python=3.8.6 +conda install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 +conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.8 diff --git a/scripts/docker/docker_env/scripts/pygrib_env.sh b/scripts/docker/docker_env/scripts/pygrib_env.sh index 7a74287b86..8fe55adf39 100755 --- a/scripts/docker/docker_env/scripts/pygrib_env.sh +++ b/scripts/docker/docker_env/scripts/pygrib_env.sh @@ -1,24 +1,24 @@ #! /bin/sh ################################################################################ -# Environment: pygrib -# Last Updated: 2021-06-18 (mccabe@ucar.edu) +# Environment: pygrib.v5 +# Last Updated: 2022-06-16 (mccabe@ucar.edu) # Notes: Adds Python packages needed to read GRIB data # Python Packages: -# pygrib==2.0.2 -# metpy==1.0.1 +# pygrib==2.1.4 +# metpy==1.3.0 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=pygrib +ENV_NAME=pygrib.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=py_embed_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge pygrib==2.0.2 -conda install -y --name ${ENV_NAME} -c conda-forge metpy==1.0.1 +conda install -y --name ${ENV_NAME} -c conda-forge pygrib==2.1.4 +conda install -y --name ${ENV_NAME} -c conda-forge metpy==1.3.0 diff --git a/scripts/docker/docker_env/scripts/pytest_env.sh b/scripts/docker/docker_env/scripts/pytest_env.sh index e549f9f94d..fd66bfc5fc 100755 --- a/scripts/docker/docker_env/scripts/pytest_env.sh +++ b/scripts/docker/docker_env/scripts/pytest_env.sh @@ -1,12 +1,13 @@ #! /bin/sh ################################################################################ -# Environment: pytest -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Environment: pytest.v5 +# Last Updated: 2022-07-08 (mccabe@ucar.edu) # Notes: Adds pytest and pytest coverage packages to run unit tests # Added pandas because plot_util test needs it # Added netcdf4 because SeriesAnalysis test needs it # Python Packages: +# TODO: update version numbers # pytest==? # pytest-cov==? # pandas==? @@ -15,10 +16,10 @@ ################################################################################ # Conda environment to create -ENV_NAME=pytest +ENV_NAME=pytest.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplus_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} conda install -y --name ${ENV_NAME} -c conda-forge pytest diff --git a/scripts/docker/docker_env/scripts/spacetime_env.sh b/scripts/docker/docker_env/scripts/spacetime_env.sh index d1da9ef93b..e0ec221c36 100755 --- a/scripts/docker/docker_env/scripts/spacetime_env.sh +++ b/scripts/docker/docker_env/scripts/spacetime_env.sh @@ -2,35 +2,27 @@ ################################################################################ # Environment: spacetime -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Last Updated: 2022-06-16 (mccabe@ucar.edu) # Notes: Adds Python packages needed to generate coherence spectra (METplotpy) # Python Packages: -# netCDF4==1.5.4 -# xarray==0.18.2 -# scipy==1.5.3 -# matplotlib==3.2.2 +# netCDF4==1.5.8 +# xarray==2022.3.0 +# scipy==1.8.1 +# matplotlib==3.5.2 # pyngl==1.6.1 -# pyyaml==5.3.1 +# pyyaml==6.0 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=spacetime +ENV_NAME=spacetime.v5 -# Conda environment to use as base for new environment -# Not used in this script because Python version differs from base version -BASE_ENV=$1 +conda create -y --name ${ENV_NAME} -c conda-forge python=3.8.6 - -conda create -y --name ${ENV_NAME} python=3.8 - -conda install -y --name ${ENV_NAME} -c conda-forge netCDF4==1.5.4 -conda install -y --name ${ENV_NAME} -c conda-forge xarray==0.18.2 -conda install -y --name ${ENV_NAME} -c conda-forge scipy==1.5.3 -conda install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.2.2 +conda install -y --name ${ENV_NAME} -c conda-forge netCDF4==1.5.8 +conda install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 +conda install -y --name ${ENV_NAME} -c conda-forge scipy==1.8.1 +conda install -y --name ${ENV_NAME} -c conda-forge matplotlib==3.5.2 conda install -y --name ${ENV_NAME} -c conda-forge pyngl==1.6.1 -conda install -y --name ${ENV_NAME} -c conda-forge pyyaml==5.3.1 - -# tested using anaconda channel but changed to using conda-forge -#conda install -y --name ${ENV_NAME} -c anaconda pyyaml +conda install -y --name ${ENV_NAME} -c conda-forge pyyaml==6.0 diff --git a/scripts/docker/docker_env/scripts/weatherregime_env.sh b/scripts/docker/docker_env/scripts/weatherregime_env.sh index 0f3a2b842d..92c70a6981 100755 --- a/scripts/docker/docker_env/scripts/weatherregime_env.sh +++ b/scripts/docker/docker_env/scripts/weatherregime_env.sh @@ -1,28 +1,30 @@ #! /bin/sh ################################################################################ -# Environment: weatherregime -# Last Updated: 2021-09-16 (mccabe@ucar.edu) +# Environment: weatherregime.v5 +# Last Updated: 2022-07-19 (mccabe@ucar.edu) # Notes: Adds Python packages needed to run weather regime use case # METplotpy and METcalcpy # Python Packages: -# All packages from metplotpy_env -# scikit-learn==0.24.2 +# All packages from metplotpy.v5 +# scikit-learn==1.1.1 # eofs==1.4.0 +# cmocean==2.0 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=weatherregime +ENV_NAME=weatherregime.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplotpy.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge scikit-learn==0.24.2 +conda install -y --name ${ENV_NAME} -c conda-forge scikit-learn==1.1.1 conda install -y --name ${ENV_NAME} -c conda-forge eofs==1.4.0 +conda install -y --name ${ENV_NAME} -c conda-forge cmocean==2.0 rm cartopy_feature_download.py yum -y install wget diff --git a/scripts/docker/docker_env/scripts/xesmf_env.sh b/scripts/docker/docker_env/scripts/xesmf_env.sh index 44e5a084f9..fc1c7807c1 100755 --- a/scripts/docker/docker_env/scripts/xesmf_env.sh +++ b/scripts/docker/docker_env/scripts/xesmf_env.sh @@ -2,21 +2,23 @@ ################################################################################ # Environment: xesmf -# Last Updated: 2021-06-08 (mccabe@ucar.edu) +# Last Updated: 2022-06-16 (mccabe@ucar.edu) # Notes: Adds Python package to read Tripolar grids # Python Packages: +# netcdf4==1.5.8 +# xarray==2022.3.0 # xesmf==0.3.0 # # Other Content: None ################################################################################ # Conda environment to create -ENV_NAME=xesmf +ENV_NAME=xesmf.v5 # Conda environment to use as base for new environment -BASE_ENV=$1 +BASE_ENV=metplus_base.v5 conda create -y --clone ${BASE_ENV} --name ${ENV_NAME} -conda install -y --name ${ENV_NAME} -c conda-forge netcdf4 -conda install -y --name ${ENV_NAME} -c conda-forge xarray -conda install -y --name ${ENV_NAME} -c conda-forge xesmf +conda install -y --name ${ENV_NAME} -c conda-forge netcdf4==1.5.8 +conda install -y --name ${ENV_NAME} -c conda-forge xarray==2022.3.0 +conda install -y --name ${ENV_NAME} -c conda-forge xesmf==0.3.0