Installation
Installing Rust
EGI v2 is written in Rust, so you will need a Rust toolchain installed to compile it.
To check if you do, run the command cargo --help in a terminal.
(cargo is Rust's build tool and package manager.)
You should see output like this:
$ cargo --help
Rust's package manager
Usage: cargo [+toolchain] [OPTIONS] [COMMAND]
cargo [+toolchain] [OPTIONS] -Zscript <MANIFEST_RS> [ARGS]...
If so, you can skip the rest of this section. If not, installing Rust is simple and does not require administrative privileges. If you are working on a high performance cluster, double check that Rust/cargo aren't already available by loading a module.
To install Rust, use the rustup manager by following the instructions on the rust-lang website.
Installing GGG
EGI is a wrapper around the GGG retrieval software, developed at JPL. You will need GGG installed for EGI to work. Full instructions to install are given on the TCCON wiki. The very brief version is:
- Ensure you have a Fortran compiler and the
condapackage manager installed and available on your system. TheminicondaPython installation provides a minimal Python install andcondamanager, and is ideal for this purpose.gfortranis the default Fortran compiler for GGG; to use another compiler will require you to link the proper compiler script in GGG'sinstallsubdirectory. - Download the latest release from https://github.com/TCCON/GGG and untar it.
- Set the
GGGPATHandgggpathenvironmental variables for your shell to point to the GGG directory. These should go in your~/.bashrcor equivalent file. For example, if/home/user/gggis the directory that you expanded from the release tarball (it should contain subdirectories such asisotopologsandlinelist), and you use Bash, then add the following to~/.bashrc:
export GGGPATH=/home/user/ggg
export gggpath=/home/user/ggg
If your shell is ZSH, then the syntax is the same, but you would modify ~/.zshrc instead.
You can check which shell you have by running the command echo $SHELL in a terminal.
Installing GGG-RS
EGI-RS uses some developmental replacements for the GGG post processing programs that have more flexibility to handle EM27/SUN-specific settings. Because this is part of a repo still under development, installation is a bit annoying at present. We will do our best to simplify this in the future.
For now, the following steps will install these programs:
- Set the environmental variable
GGGRS_NCDIRto point to the environment created as part of installing GGG. Depending on your GGG installation process, this might be at$GGGPATH/install/.condaenvor a named environment managed by conda. If you do not have a$GGGPATH/install/.condaenv, runconda env listand find the path for an environment named "ggg-tccon-default". See the Installing GGG section above for how to set environmental variables. After modifying your~/.bashrcor~/.zshrcfile, runsource ~/.bashrcorsource ~/.zshrcto include the new environmental variable in your shell. - Change directory into your
$GGGPATH, directory (cd $GGGPATH) - Clone the GGG-RS repo as
src-rs(git clone https://github.com/TCCON/ggg-rs.git src-rs) - Change into the
src-rsdirectory and run themakecommand.
Compilation may take a few minutes. If all goes well, you should see a message similar to the following:
Installed package `ggg-rs v0.1.0 (/home/you/ggg/src-rs)` (executables `add_nc_flags`, `apply_tccon_airmass_correction`, `bin2nc`, `change_ggg_files`, `collate_tccon_results`, `i2s_setup`, `list_spectra`, `plot_opus_spectra`, `query_output`, `strip_header`)
warning: be sure to add `/home/you/ggg/bin` to your PATH to be able to run the installed binaries
You can ignore the warning about adding a directory to your PATH; we will always be calling these programs with their full path, so adding the directory to your PATH (which it so you only need to type the program name to run it).
If you encounter trouble, see the GGG-RS README for suggestions.
To free up space, you can run the cargo clean command in $GGGPATH/src-rs to delete intermediate compilation files not needed any more.
Installing EGI-RS
Once you have GGG-RS installed, installing EGI-RS is easy. Simply run the following command from anywhere:
cargo install --git https://github.com/TCCON/egi-rs --root "$GGGPATH"
Similarly to installing GGG-RS, you should see a message similar to:
Installed package `egi-rs v0.1.0 (https://github.com/TCCON/egi-rs#2d7a442c)` (executables `em27-catalogue`, `em27-gfit-prep`, `em27-i2s-prep`, `em27-init`)
warning: be sure to add `/home/you/ggg/bin` to your PATH to be able to run the installed binaries
Again, we can ignore that warning.
The final step is to run the em27-init program we just installed.
This will add some extra EM27/SUN-specific files to your $GGGPATH.
It will print out a summary; all steps should read "OK".
If not, or if you got a fatal error earlier in the run, correct the issue and try again.