Installation
Instructions
This package is based on GitHub and Conda [1]. To begin, go to a clean folder on your computer where you want to do the install.
First clone the package:
git clone git@github.com:abukowski21/SAMI3-GITM-python.git
Checkout the ESMF branch:
git checkout -b esmf
Enter the directory:
cd SAMI3-GITM-python
Create a new conda[1] environment according to the requirements specified by this project:
conda env create -f python-env.yml && conda activate SAMI3-GITM
Note
Conda is not required, but it makes things easier. If you do not want to use conda, you can install the packages with pip or manually. To use pip:
pip install -r requirements.txt
This usage is not supported, so you may run into dependency issues doing this.
Installing ESMF
ESMF is required to run the interpolation code on this branch. This section of the documentation is a work in progress, so contact me with issues & questions.
ESMF (Earth System Modeling Framework) is a robust software suite designed to facilitate the communication between models. We are only using a tiny aspect so can cut some corners in the installation, but the software package is massive and care must be taken to ensure everything iscorrectly installed.
For complete details on how to install ESMF, see their documentation. I will provide a bit of information on the crucial steps, but this is by no means complete. The necessary pages in the documentation are the the quick start page and this page on more details on the installation specifics.
Note
The installation of ESMF is independent of the conda environment above. No need to put them in the same directory or keep the conda environment activated. I recommend installing ESMF without the conda environment active so there’s no confusion about which NetCDF and MPI libraries are being used.
We need to install ESMF with just the command line tools, howerver we need support for PIO, and NetCDF. Here are general instructions along with some tips. We will be following these instructions.
Ensure that a suitable version of ESMF is downloaded and uncompressed. Not all versions support 3D spherical interpolations in offline mode. I recommend version 8.4.0, but it is not required. Details can be found on the ESMF regridding page. You need to install a version that supports offline, 3D (spherical), bilinear interpolation.
- Set the required environmental variables. These are: ESMF_DIR, ESMF_COMM, ESMF_COMPILER, ESMF_NETCDF, ESMF_PNETCDF, and ESMF_PIO. Other variables in the documentation can be set, but my testing has shown that these will work. These are only necessary during the install, no need to set them when you run the interpolation code.
ESMF_DIR is the path to the installation location
ESMF_COMM denotes if ESMF should be installed with support for MPI. Set this to the correct implementation of MPI that your system is using.
ESMF_COMPILER denotes the Fortran/C++ compiler that ESMF will be built with. typing
make infoshows which compiler & MPI impletation are currently planned on being used.ESMF_NETCDF enables the ESMF command line tools to read NetCDF files from disk. This is required. See this link for more information, but usually this can be set to “nc-config” if the commands
nc-configandnf-configrun successfully on your system. If not, either install (or load) the C and Fortran NetCDF modules.ESMF_PNETCDF can be set to “pnetcdf-config” if the command
pnetcdf-configruns successfully. If not, either install or load the modules.ESMF_PIO enables MPI executables to read and write NetCDF files. This can be set to “internal” if you would like for ESMF to install this, or “external” if you have this software installed already.
Double check everything looks right by running
make info. Take a close look at the directories and include paths.Install the command line tools with
make build_apps. This will take a while.Should be done! You can double check that it is correctly installed by running
./$(ESMF_DIR)/apps/..../ESMF_PrintInfoand the information on the EMSF installation will be displayed. Ensure PIO and NetCDF support is enabled.
Post-Installation
To run the scripts provided with this package, make sure you are in the correct directory and call them from the command line.
To call any of the scripts in you own code, you will need to add the package to your $PATH. This can be done by adding the following to the top of your code:
import sys
sys.path.append('/path/to/SAMI3-GITM-python')
For more information on how to use the provided code, continue reading!
Issues
Older GitHub versions may require a slightly different command to access the correct branch.
If you do not have
condainstalled and don’t want to install it, you can install the required packages withpip.If you encounter more problems, please either fill out a GitHub issue or contact the author directly.