Getting started

Requirements

First we need to install the requirements of the jwst package, see the JWST instructions, reported here for convenience:

conda create -n jwst_dev python=3.7 astropy
source activate jwst_dev

then we need to install the jwst package, currently iris_pipeline is being tested with jwst 0.17.0:

pip install jwst==0.17.0

Then you need to download the CRDS cache:

git clone https://github.com/oirlab/tmt-crds-cache $HOME/crds_cache

the CRDS cache contains metadata for IRIS, the calibration files, flat fields, and a set of rules on how to choose the right calibration file given a set of metadata, you can browse the content on Github.

We need to set some environment variables so that CRDS will use the local cache instead of trying to connect to the JWST instance:

source setup_local_crds.sh

Finally, we need a custom version of the CRDS library that contains some modules specific to TMT:

git clone https://github.com/oirlab/tmt-crds.git
cd tmt-crds
pip install .

Compilation requirements

iris_pipeline also includes the iris_readout C library wrapped with cython, therefore we require GCC, autotools and libcfitsio to compile the Python extension.

In Debian/Ubuntu, the cfitsio headers are installed under a prefix, so we need to include that folder in the search path:

export C_INCLUDE_PATH=/usr/include/cfitsio/

Development install

First fork the repository under your account on Github, then clone your fork on your machine.

Initialize the git submodule for the iris_readout C library:

git submodule init
git submodule update

Then enter the root folder and create a development install with:

pip install -e .

The development install doesn’t add the tmtrun script to the path, so you should do that manually:

export PATH=$(pwd)/scripts/:$PATH

or symlink the tmtrun script from the conda environment bin/ folder.

Run the unit tests

Some of the unit tests of iris_pipeline are Jupyter Notebooks and they need the nbval py.test plugin to be executed. Once py.test and nbval are installed, execute from the root of the package:

python setup.py test