====== CDAT 8.0 installation notes ====== [ [[.:index|Back to all versions]] ] UV-CDAT is now the "Community Data Analysis Tools" (CDAT) Follow the instructions about the [[other:python:starting#conda-based_versions_of_uv-cdat|conda-based versions of UV-CDAT initialization]] for actually using an installed version of ''8.0'' ===== What's New? ===== * [[https://github.com/cdat/cdat/releases/tag/v8.0|8.0 announcement]] and features summary ([[https://github.com/UV-CDAT/uvcdat/releases|all versions]]) * Full [[https://uvcdat.llnl.gov/changelog.html#8.0|Change log]] ===== Installation with Miniconda3 ===== ==== Installing Miniconda3 ==== * You don't need to be (and **you should not be**) //root// when you install Miniconda3. You just need enough disk space where you have write access * If you are installing Miniconda3 in a Linux environment on a [[other:win10wsl|Windows 10 computer using Windows Subsystem for Linux (WSL)]], pay special attention to the instructions on the **WSL** lines The steps below are adapted from the older (but with lots of extra and possibly useful details) [[other:uvcdat:conda_notes#installing_miniconda|installing miniconda]] instructions * Get the [[https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh|Python 3.8 Linux 64-bit (bash installer)]] (unless there is a [[https://conda.io/miniconda.html|more recent version?]]) * Find some temporary space on Linux (or Windows, if you are using WSL) * e.g. Linux at LSCE:\\ ''cd /home/scratch01/'' * e.g. WSL, assuming that there is a ''C:\Scratch\'' directory:\\ ''cd /mnt/c/Scratch/'' * Use ''wget'' to download the installer:\\ ''wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh'' (90 Mb, 26 Feb 2021) * Execute the installer * ''bash Miniconda3-latest-Linux-x86_64.sh'' * Accept the license * Note: at the end of the installation (next step), **answer //no// to the following question**, so that the installer does not change your existing shell initialization files!\\ ''Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no]'' => **NO** * Specify an explicit installation path **outside of your //home// directory**, with enough disk space (more than 3 Gb if you are going to install CDAT and some extra packages), preferably on a disk that is not backed up: * Installations by //JYP//: * Linux at LSCE: ''/home/share/unix_files/cdat/miniconda3'', or another subdirectory of ''/home/share/unix_files/cdat/'' * Linux on ciclad: ''/data/jypmce/cdat/miniconda3'', or another sub-directory of ''/data/jypmce/cdat/'' * WSL: installing to a directory that is not in ''/home/'' does not work (e.g. ''/mnt/h/CDAT/miniconda3'',assuming there is a ''H:\CDAT\'' directory, does not work)\\ You need to accept the installation in the default location: ''/home//miniconda3'' * The resulting ''miniconda3'' directory size is 342M\\ > du -sh miniconda3 342M miniconda3 > cd miniconda3 > du -sh * 20M bin 0 compiler_compat 4.0K condabin 684K conda-meta 0 envs 16K etc 5.5M include 4.0K info 198M lib 12K LICENSE.txt 114M pkgs 604K share 4.0K shell 0 ssl 0 x86_64-conda_cos6-linux-gnu * Initialize the newly installed conda environment: * bash shell: ''source /miniconda3/etc/profile.d/conda.sh'' * tcsh shell: ''source /miniconda3/etc/profile.d/conda.csh'' * Check if you can use the ''conda'' command, and use it to initialize the //base// environment * $ which conda /miniconda3/condabin/conda $ which python /usr/bin/python $ conda activate (base) $ which python /miniconda3/bin/python * Update the new installation * $ conda update --all [...] * During the update, the ''miniconda3'' directory size goes from 432 Mb to 581 Mb. This directory will keep on growing, which is the reason why you should put it on a (preferably non backed up) disk where you have //enough// space * Make sure we have the latest ''conda'' (just in case we did not get it with the //update//)\\ ''conda update -n base -c defaults conda'' * Remove the installer:\\ ''rm Miniconda3-latest-Linux-x86_64.sh'' ==== Post-Miniconda3 installation ==== The idea is to remove the miniconda3 initialization lines that were automatically added at the end of ''.bashrc'' and put them (and other useful commands) in a special initialization file, that can be sourced only when we actually want to use conda and CDAT (in order to avoid potentiel side effects) === New style initialization === Note: this is the **new** ''conda activate some_version'' style See the ''~jypeter/.conda3_jyp.sh'' file below, and how to use it, **in a bash shell**. In a **tcsh shell**, see the ''~jypeter/.conda3_jyp.csh'' further down. In both shell cases, if you are installing your own version of python, you need to use your own location of the initialization files in the ''source'' lines, and you can use another file name than ''conda3_jyp'' $ which python /usr/bin/python $ cat ~jypeter/.conda3_jyp.sh # Conda initialization by JYP, NEW style # # Use this for working with conda and CDAT centrally managed by JYP # # Execute this file in a BASH shell with # source path/this_file # Then get the list of available python distributions with # conda env list # Then activate a specific distribution with # conda activate version_name # # More details in: # https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:starting#conda-based_versions_of_uv-cdat # https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:uvcdat:conda_notes # # Jean-Yves Peterschmitt - LSCE - 11/2018 source /home/share/unix_files/cdat/miniconda3/etc/profile.d/conda.sh # Use the alias below to easily determine where your python # interpreter is located alias wp="which python" # Where are ALL the python interpreters in the search path alias wpa="which -a python" # The end $ source ~jypeter/.conda3_jyp.sh $ conda activate (base) $ which python /home/share/unix_files/cdat/miniconda3/bin/python **tcsh shell** usage example >which python /usr/bin/python >cat ~jypeter/.conda3_jyp.csh # Conda initialization by JYP, NEW style # # Use this for working with conda and CDAT centrally managed by JYP # # Execute this file in a TCSH shell with # source path/this_file # Then get the list of available python distributions with # conda env list # Then activate a specific distribution with # conda activate version_name # # More details in: # https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:starting#conda-based_versions_of_uv-cdat # https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:uvcdat:conda_notes # # Jean-Yves Peterschmitt - LSCE - 11/2018 source /home/share/unix_files/cdat/miniconda3/etc/profile.d/conda.csh # Use the alias below to easily determine where your python # interpreter is located alias wp "which python" # The end >source ~jypeter/.conda3_jyp.csh >conda activate (base) >which python /home/share/unix_files/cdat/miniconda3/bin/python You probably don't want to type the //source// line each time you need to use your conda based python, so you can add a ''source ~jypeter/.conda3_jyp.sh'' line in your ''~/.bashrc'' file, and ''source ~jypeter/.conda3_jyp.csh'' line in your ''~/.cshrc'' file. Then, when you need a specific python environment, just type ''conda activate name_of_the_specific_environment'' === Old style initialization === The //old style// notes below are just for reference sake and you can skip them Note: this is the **old** ''source activate some_version'' style See the ''~jypeter/.conda3old_jyp.sh'' file below, and how to use it, **in a bash shell** bash-4.2$ which python /usr/bin/python $ cat .conda3old_jyp.sh # Conda initialization by JYP, OLD style # # Use this for working with conda and CDAT centrally managed by JYP # # Execute this file in a BASH shell with # source path/this_file # Then get the list of available python distributions with # conda env list # Then activate a specific distribution with # source activate version_name # # More details in: # https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:starting#conda-based_versions_of_uv-cdat # https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:uvcdat:conda_notes # # Jean-Yves Peterschmitt - LSCE - 11/2018 export PATH="/home/share/unix_files/cdat/miniconda3/bin:$PATH" # Use the alias below to easily determine where your python # interpreter is located alias wp="which python" # Where are ALL the python interpreters in the search path alias wpa="which -a python" # The end $ source ~jypeter/.conda3old_jyp.sh $ wp /home/share/unix_files/cdat/miniconda3/bin/python ==== Installing CDAT 8.0 ==== === Python 2.7 version === $ conda create -n cdat-8.0_py2 -c cdat/label/v80 -c conda-forge -c cdat python=2.7 cdat # Generate the list of installed packages $ conda list -n cdat-8.0_py2 > /home/scratch01/jypeter/cdat-8.0_py2_list_181108.txt List of installed packages: {{:other:uvcdat:cdat_conda:cdat-8.0_py2_list_181108.txt}} Disk space after 8.0 installation $ du -sh /home/share/unix_files/cdat/miniconda3 4.3G /home/share/unix_files/cdat/miniconda3 $ du -sh /home/share/unix_files/cdat/miniconda3/* 15M /home/share/unix_files/cdat/miniconda3/bin 2.4M /home/share/unix_files/cdat/miniconda3/compiler_compat 4.0K /home/share/unix_files/cdat/miniconda3/conda-bld 3.7M /home/share/unix_files/cdat/miniconda3/conda-meta 2.8G /home/share/unix_files/cdat/miniconda3/envs 28K /home/share/unix_files/cdat/miniconda3/etc 4.9M /home/share/unix_files/cdat/miniconda3/include 156M /home/share/unix_files/cdat/miniconda3/lib 8.0K /home/share/unix_files/cdat/miniconda3/LICENSE.txt 1.4G /home/share/unix_files/cdat/miniconda3/pkgs 1.3M /home/share/unix_files/cdat/miniconda3/share 24K /home/share/unix_files/cdat/miniconda3/ssl 12K /home/share/unix_files/cdat/miniconda3/x86_64-conda_cos6-linux-gnu $ du -sh /home/share/unix_files/cdat/miniconda3/envs/* 2.8G /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 === Python 3.6 version === $ conda create -n cdat-8.0_py3 -c cdat/label/v80 -c conda-forge -c cdat python=3.6 cdat ==== Installing CDAT nightly ==== Notes: * This page is about CDAT 8.0, but we have added a short nightly section here as a convenient shortcut. This should probably be moved to a stand-alone nightly page later * [[https://github.com/CDAT/cdat/wiki/Obtain-CDAT-nightly-packages|Official nightly page]] === Python 2.7 version === $ conda create -n cdat-nightly_py2 -c cdat/label/nightly -c conda-forge -c cdat python=2.7 cdat Not tested! Can this be updated with ''conda update -n cdat-nightly_py2 -c cdat/label/nightly -c conda-forge -c cdat --all'' ??? === Python 3.6 version === $ conda create -n cdat-nightly_py3 -c cdat/label/nightly -c conda-forge -c cdat python=3.6 cdat ===== Cloning cdat to add specific packages for LSCE ===== This section is about the creation of the **cdatm17** environment Notes about [[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:starting#conda-based_versions_of_uv-cdat|actually using the cdatm17 conda-based python]] Note: using hard links, cloning a full environment //only// adds an extra 582M of disk space $ conda create -n cdatm17_py2 --clone cdat-8.0_py2 Source: /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 Destination: /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2 Packages: 226 Files: 3 [...] $ du -sh /home/share/unix_files/cdat/miniconda3/envs/* 2.5G /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 392M /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2 839M /home/share/unix_files/cdat/miniconda3/envs/cdat-nightly_py2 ==== cdat nightly case ==== ''conda create -n cdatm-nightly_py2 %%--%%clone cdat-nightly_py2'' ===== Getting ready for a moving default CDAT ===== This step should probably be listed at the **end**, especially in a multi-user environment! If there is already a ''cdatm'' link, make sure that the new version is stable and working correctly before updating the ''cdatm'' link We create a **//cdatm// symbolic link** in the ''envs'' directory, that has a //stable name// but can be moved to point to the latest default CDAT. In that case, most users can just activate this //cdatm// version and always get the latest stable version $ cd /home/share/unix_files/cdat/miniconda3/envs $ conda env list base * /home/share/unix_files/cdat/miniconda3 cdat-8.0_py2 /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 cdatm17_py2 /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2 $ ln -s cdatm17_py2 cdatm $ conda env list base * /home/share/unix_files/cdat/miniconda3 cdat-8.0_py2 /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 cdatm /home/share/unix_files/cdat/miniconda3/envs/cdatm cdatm17_py2 /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2 $ source activate cdatm (cdatm) bash-4.2$ conda env list base /home/share/unix_files/cdat/miniconda3 cdat-8.0_py2 /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 cdatm * /home/share/unix_files/cdat/miniconda3/envs/cdatm cdatm17_py2 /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2 ===== Customizing UV-CDAT for LSCE ===== ==== Downloading cdms2/vcs test data ==== You should download the test data (174M of data...) and use it in the example scripts that you want to distribute, and scripts you write for reporting the errors you find (if any...) $ source activate cdatm17_py2 (cdatm17_py2) $ python -c 'import vcs; vcs.download_sample_data_files(); print "\nFinished downloading sample data to", vcs.sample_data' [...] Finished downloading sample data to /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2/share/uvcdat/sample_data (cdatm17_py2) $ du -sh /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2/share/uvcdat/sample_data 174M /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2/share/uvcdat/sample_data ==== Packages that have no dependency problems ==== After cloning, we are ready to install some extra packages that may be requested by LSCE users * We first try to install together as many packages as possible that don't require other channels than //conda-forge//, and that don't request a downgrade of what is already installed * We then install individual extra packages with ''conda install'' or ''pip install'' # Keep a trace of what will be installed $ conda install --dry-run -n cdatm17_py2 -c conda-forge pillow pandas statsmodels seaborn scikit-image seawater gsw netcdf4 pyferret basemap-data-hires xlsxwriter cmocean rpy2 gdal windspharm > /home/scratch01/jypeter/lsce-extra_01_install_190304.txt # Install... $ conda install -n cdatm17_py2 -c conda-forge pillow pandas statsmodels seaborn scikit-image seawater gsw netcdf4 pyferret basemap-data-hires xlsxwriter cmocean rpy2 gdal windspharm [...] # Install extra packages in the nightly version (if you need 'nightly') $ conda install -n cdatm-nightly_py2 -c conda-forge pillow pandas statsmodels seaborn scikit-image seawater gsw netcdf4 pyferret basemap-data-hires xlsxwriter cmocean rpy2 gdal windspharm # Check the disk space after installation $ du -sh /home/share/unix_files/cdat/miniconda3 7.5G /home/share/unix_files/cdat/miniconda3 $ du -sh /home/share/unix_files/cdat/miniconda3/envs/* 2.5G /home/share/unix_files/cdat/miniconda3/envs/cdat-8.0_py2 1.2G /home/share/unix_files/cdat/miniconda3/envs/cdatm17_py2 938M /home/share/unix_files/cdat/miniconda3/envs/cdatm-nightly_py2 450M /home/share/unix_files/cdat/miniconda3/envs/cdat-nightly_py2 List of installed packages: {{ :other:uvcdat:cdat_conda:lsce-extra_01_install_190304.txt |}} Packages installed with //pip// * [[https://earthsystemcog.org/projects/wip/CMIP6DataRequest|dreqPy]]: CMIP6 Data Request Python API * ''pip install dreqPy'' * Update with: ''pip install %%--%%upgrade dreqPy'' * Get version number with:\\ $ drq -v dreqPy version 01.00.29 [Version 01.00.29] The following packages have no dependency problems and were installed (or updated) //later// * [[http://www.ifremer.fr/vacumm/|vacumm]]: Validation, Analysis, Comparison - Utilities written in Python to validate and analyze Multi-Model outputs, and compare them to observations * ''conda install -n cdatm17_py2 -c conda-forge -c vacumm vacumm'' * [[https://github.com/stefraynaud/spanlib|spanlib]]: Spectral Analysis Library * ''conda install -n cdatm17_py2 -c stefraynaud -c conda-forge spanlib'' * Test: ''python -c 'from spanlib.analyzer import Analyzer' '' * [[https://climaf.readthedocs.io/en/latest/|CliMAF]]: a Climate Model Assessment Framework * [[other:uvcdat:cdat_conda:climaf_install|Installation notes]] ==== TODO ==== //Add here packages that would be useful and have not been installed yet, or have some problems that prevent their installation// * [[http://scitools.org.uk/iris/index.html|iris]]: A Python library for Meteorology and Climatology * ''conda install -n cdatxxx -c conda-forge iris'' * [[http://wrf-python.readthedocs.io/en/latest/|wrf-python]]: A collection of diagnostic and interpolation routines for use with output from the Weather Research and Forecasting (WRF-ARW) Model * ''conda install -n cdatxxx -c conda-forge wrf-python'' * [[https://glances.readthedocs.io/en/stable/index.html|glances]]: a cross-platform monitoring tool (similar to ''top'') * ''conda install -n cdatxxx -c conda-forge glances'' * [[https://github.com/nicolargo/glances|glances@github]] ==== Other packages ==== There is no warranty that the packages listed below will work correctly, because it was required to bypass the compatibility checks in order to install them... * NO such packages now! ==== Updating some packages ==== Some packages change more often than others, and can be easily updated the following way: * [[https://cmor.llnl.gov/|CMOR]] * Update with: ''conda update -n cdatxxx -c conda-forge -c pcmdi -c uvcdat cmor'' * Get version number with: ''python -c 'from cmor import *; print CMOR_VERSION_MAJOR, CMOR_VERSION_MINOR, CMOR_VERSION_PATCH' '' * [[https://earthsystemcog.org/projects/wip/CMIP6DataRequest|dreqPy]] * Update with: ''pip install %%--%%upgrade dreqPy'' * Get version number with: ''drq -v'' ==== Installing CLIMAF ==== The [[https://climaf.readthedocs.io/|CLIMAF]] installation is a special case, because we may want to use it with the Python installed for CDAT, but it is not installed using conda We follow the steps for the [[https://climaf.readthedocs.io/en/latest/installing.html#installing-climaf-if-you-are-not-at-cnrm-on-ciclad-or-climserv|installation of a non-standard server]] * Go to the appropriate installation directory (we choose the directory where we have also installed miniconda3): * LSCE: ''cd /home/share/unix_files/cdat'' * ciclad: ''/data/jypmce/cdat/'' * ''git clone https://github.com/senesis/climaf climaf'' * Add CLIMAF to the PYTHONPATH environment variable * LSCE & tcsh: ''setenv PYTHONPATH ${PYTHONPATH}:/home/share/unix_files/cdat/climaf'' * LSCE & bash: ''export PYTHONPATH=${PYTHONPATH}:/home/share/unix_files/cdat/climaf'' * ciclad: same as above, using ''/data/jypmce/cdat/climaf'' * Test the installation * make sure the [[https://climaf.readthedocs.io/en/latest/requirements.html#requirements|Requirements]] are available: * LSCE: ''module load netcdf/4 nco cdo ncl ncview'' * ciclad: ''module load netcdf4 nco cdo ncl/6.3.0'' * optional: start an X server * cd climaf/testing ./test_install.sh * Once the tests are OK, add the required //module load// and environment variables definitions to the ''.basrc'' and ''.cshrc'' files. Note: maybe these lines should go to the ''.profile'' and ''.login'' files...(check [[https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html|Bash Startup Files]]) * LSCE: add to your .cshrc * # Prerequisites for using CLIMAF module load netcdf/4 nco cdo ncl ncview # CLIMAF environment variables setenv CLIMAF /home/share/unix_files/cdat/climaf setenv PYTHONPATH "${PYTHONPATH}:${CLIMAF}" #setenv PYTHONPATH $CLIMAF setenv PATH "${PATH}:${CLIMAF}/bin" setenv CLIMAF_CACHE "/home/scratch01/${USER}/climaf_cache" setenv TMPDIR $CLIMAF_CACHE setenv CLIMAF_LOG_DIR $CLIMAF_CACHE #conda activate cdatm-nightly_py2 * ciclad: add to your .bashrc * # Prerequisites for using CLIMAF when not using the # default 'module load climaf' module load netcdf4 nco cdo ncl/6.3.0 # CLIMAF environment variables export CLIMAF=/data/jypmce/cdat/climaf #export PYTHONPATH=$PYTHONPATH:$CLIMAF export PYTHONPATH=$CLIMAF export PATH=$PATH:$CLIMAF/bin export CLIMAF_CACHE=/data/jypmce/climaf_cache export TMPDIR=$CLIMAF_CACHE export CLIMAF_LOG_DIR=$CLIMAF_CACHE #conda activate cdatm-nightly_py2 * Open a new shell and run the tests again. If there is an error that was not there, check what you have added to the shell init files * [[other:uvcdat:cdat_conda:climaf_test|Test CLIMAF on ciclad]] ==== Cleaning up things ==== Some packages may have files that can only be read by the person who installed CDAT and the LSCE extensions (eg [[https://github.com/PCMDI/pcmdi_metrics/issues/496|pcmdi-metrics]] in 2.8.0 and [[https://github.com/UV-CDAT/cdp/issues/21|cdp]] in 2.10) We check if some of the installed files are missing read access for the //group// or //other//, and we manually change the permissions >find /home/share/unix_files/cdat/miniconda3/envs \! -perm /g+r,o+r -ls # Everything OK! ===== Extra packages list ===== * [[https://python-pillow.org/|pillow]]: the friendly PIL (//Python Imaging Library//) fork * [[http://pandas.pydata.org/|pandas]]: Python Data Analysis Library * [[http://statsmodels.sourceforge.net/|statsmodels]]: a Python module that allows users to explore data, estimate statistical models, and perform statistical tests * [[https://seaborn.pydata.org/|seaborn]]: statistical data visualization * [[http://scikit-image.org/|scikit-image]]: image processing in Python * [[http://pythonhosted.org/seawater/|seawater]]: Python re-write of the CSIRO seawater toolbox * [[https://pypi.python.org/pypi/gsw/|gsw]]: Python implementation of the Thermodynamic Equation Of Seawater * [[http://www.ifremer.fr/vacumm/|vacumm]]: Validation, Analysis, Comparison - Utilities written in Python to validate and analyze Multi-Model outputs, and compare them to observations * [[http://unidata.github.io/netcdf4-python/|netcdf4]]: a Python interface to the netCDF C library * [[http://ferret.pmel.noaa.gov/Ferret/documentation/pyferret|pyferret]]: Ferret encapsulated in * [[https://github.com/conda-forge/basemap-data-hires-feedstock|basemap-data-hires]]: high resolution data for ''basemap'' * [[https://github.com/PCMDI/pcmdi_metrics|PCMDI metrics package]] (PMP): objectively compare results from climate models with observations using well-established statistical tests * [[https://xlsxwriter.readthedocs.io/|XlsxWriter]]: a Python module for creating Excel XLSX files * Note: this is a dependency of ''dreqPy'' * [[https://earthsystemcog.org/projects/wip/CMIP6DataRequest|dreqPy]]: CMIP6 Data Request Python API * [[https://cmor.llnl.gov/|CMOR]]: CMOR (//Climate Model Output Rewriter//) is used to produce CF-compliant netCDF files * [[https://github.com/pierre-rouanet/dtw|dtw]]: DTW (Dynamic Time Warping) python module * [[http://toblerity.org/shapely/project.html|shapely]]: a Python wrapper for GEOS for algebraic manipulation of geometry (manipulation and analysis of geometric objects in the Cartesian plane) * [[http://scitools.org.uk/cartopy/|cartopy]]: a library providing cartographic tools for python * [[https://rpy2.readthedocs.io/en/version_2.8.x/|rpy2]]: providing simple and robust access to R from within Python * [[http://matplotlib.org/cmocean/|cmocean]]: beautiful colormaps for oceanography * [[http://www.gdal.org/|OSGeo/GDAL]]: Geospatial Data Abstraction Library. GDAL is a translator library for raster and vector geospatial data formats * [[https://pcjericks.github.io/py-gdalogr-cookbook/|Python GDAL/OGR Cookbook]] * [[https://github.com/stefraynaud/spanlib|spanlib]]: Spectral Analysis Library * [[https://ajdawson.github.io/windspharm/latest/|windspharm]]: spherical harmonic wind analysis in Python ==== Removed packages ==== * NO removed packages! ===== Environments summary ===== After following the steps above, we get the following environments. Use the ''conda info %%--%%envs'' or the ''conda env list'' command to get the up-to-date list of available environments ^ Environment\\ name ^ Server ^ ''conda list'' ^ | cdat-8.0_py2 | LSCE | | | cdatm17_py2 | LSCE | | | cdat-nightly_py2 | LSCE\\ ciclad | | | cdatm-nightly_py2 | LSCE\\ ciclad | | /* standard page footer */ \\ \\ \\ ---- [ [[pmip3:|PMIP3 Wiki Home]] ] - [ [[pmip3:wiki_help|Help!]] ] - [ [[wiki:syntax|Wiki syntax]] ]