CRDS is a package used for working with astronomical reference files for the HST and JWST telescopes. CRDS is useful for performing various operations on reference files or reference file assignment rules. CRDS is used to assign, check, and compare reference files and rules, and also to predict those datasets which should potentially be reprocessed due to changes in reference files or assignment rules. CRDS has versioned rules which define the assignment of references for each type and instrument configuration. CRDS has web sites corresponding to each project (http://hst-crds.stsci.edu or https://jwst-crds.stsci.edu/) which record information about reference files and provide related services.
- CRDS development is occuring at:
- Project's github page.
- CRDS is also available for installation as part of
stenv
: - stenv.
For many roles, CRDS is automatically installed as a dependency of the calibration software. This default installation supports running calibrations but not more advanced CRDS activities like submitting files or development.
You can test for an existing installation of CRDS like this:
$ crds list --status CRDS Version = '7.4.0, b7.4.0, daf308e24c8dd37e70c89012e464058861417245' CRDS_MODE = 'auto' CRDS_PATH = 'undefined' CRDS_SERVER_URL = 'undefined' Cache Locking = 'enabled, multiprocessing' Effective Context = 'jwst_0541.pmap' Last Synced = '2019-08-26 07:30:09.254136' Python Executable = '/Users/homer/miniconda3/envs/crds-env/bin/python' Python Version = '3.7.4.final.0' Readonly Cache = False
This output indicates CRDS is installed and configured for processing onsite using a pre-built cache of CRDS rules and references at /grp/crds/cache.
For performing the file submission role, CRDS includes additional dependencies and can be trickier to install.
You can install/upgrade CRDS and it's dependencies in your current environment like this:
git clone https://github.com/spacetelescope/crds.git cd crds ./crds_setup_crds
It is recommended that you only do this in an environment dedicated to file submissions. This may be suitable for e.g. installing/upgrading CRDS in an active redcatconda environment.
Sometimes it's expedient to install an entirely new environment including a baseline conda, CRDS, and all of it's dependencies. To start from scratch, you can:
git clone https://github.com/spacetelescope/crds.git cd crds ./crds_setup_all # open a new terminal window conda activate crds-env
To customize a bit more, crds_setup_all and crds_setup_env support parameters which can be used to specify OS, shell, and install location. Substitute the below to specify Linux, c-shell, and a non-default install location:
./crds_setup_all Linux csh $HOME/miniconda_crds
Below are the current sub-tasks used conceptually for a full featured CRDS install. These can serve as an alternative to cloning the CRDS repo and running the install script(s). If you already have a python environment supporting pip,
Alternate / definitive installation instructions for installing a baseline conda can be found here:
https://spacetelescope.github.io/training-library/computer_setup.html#installing-conda
The CRDS software and basic conda dependencies should be installed in an isolated conda environment:
conda create -n crds-env conda activate crds-env
You can substitute the environment name of your choice, e.g. redcatconda vs. crds-env.
Installing the JWST CAL S/W will also automatically install many dependencies of a numerical computing environment:
pip install --upgrade numpy pip install --upgrade git+https://github.com/spacetelescope/jwst
Note that these commands also install the latest version of CRDS from pip which may not be current enough for ongoing reference file testing and troubleshooting.
This sequence first removes the CRDS installed automatically as part of installing the jwst package and then installs the latest available CRDS from github with advanced dependencies not needed for basic operation:
pip uninstall --yes crds pip install --upgrade git+https://github.com/spacetelescope/crds.git#egg=crds["submission","test"]
A more full featured CRDS install is:
pip install --upgrade git+https://github.com/spacetelescope/crds.git#egg=crds["submission","dev","test","docs"]
Since it is a C-based package fitsverify is not available using pip but is available via conda on the astroconda channel:
conda config --add channels http://ssb.stsci.edu/astroconda conda install --yes fitsverify
As part of an end-user setup installation of fitsverify is optional, CRDS certify will run without it after issuing a warning, the CRDS server will run fitsverify as part of its checks unless/until we stop using it altogether.
More documentation about CRDS is available here:
https://jwst-crds.stsci.edu/static/users_guide/index.html