Pipeline Dependencies¶
Setup Requirements¶
A number of system environmental variables and paths are required to run the BOSS DRP.
Running at the University of Utah CHPC¶
At Utah, modules (github.com/sdss/sdss_modules) are used to maintain the the required packages and paths. For the BOSS pipeline, the bhm modules are used to manage these for the BOSS pipeline.
Environmental Variables¶
The required environmental variables for the idlspec2d package and data products are given below. This does not include the paths required for idlutils, as these are described in its install instructions on https://www.sdss.org/dr18/software/packages/idlutils. The paths are supplied as they currently exist at the University of Utah CHPC (where the pipeline is routinely run), but can be used as a template for your enviroment.
export DATABASE_PROFILE="pipelines"
export RUN2D="v6_2_1"
export RUN1D="v6_2_1"
export BOSS_SPECTRO_REDUX="/uufs/chpc.utah.edu/common/home/sdss50/sdsswork/bhm/boss/spectro/redux"
export BOSS_SPECTRO_DATA_N="/uufs/chpc.utah.edu/common/home/sdss50/sdsswork/bhm/boss/spectro/apo"
export BOSS_SPECTRO_DATA_S="/uufs/chpc.utah.edu/common/home/sdss50/sdsswork/bhm/boss/spectro/lco"
export SDHDRFIX_DIR="/uufs/chpc.utah.edu/common/home/sdss50/software/git/sdss/sdsscore_test/main"
export IDLSPEC2D_DIR="/uufs/chpc.utah.edu/common/home/sdss50/software/git/sdss/idlspec2d/$RUN2D"
export SDSSCORE_DIR="/uufs/chpc.utah.edu/common/home/sdss50/software/git/sdss/sdsscore_test/main"
export BOSS_DRP_DAILY_DIR="$HOME/daily/"
export BOSS_QA_DIR=$BOSS_SPECTRO_REDUX/
export BOSS_DRP_EMAIL_DOMAIN='chpc.utah.edu'
export ELODIE_DIR="/uufs/chpc.utah.edu/common/home/sdss09/software/eboss/NULL/elodie/v1_3"
export SPECLOG_DIR="/uufs/chpc.utah.edu/common/home/sdss09/software/svn.sdss.org/data/sdss/speclog/trunk"
export PLATELIST_DIR="/uufs/chpc.utah.edu/common/home/sdss09/software/svn.sdss.org/data/sdss/platelist/trunk"
export SPECFLAT_DIR="/uufs/chpc.utah.edu/common/home/sdss50/software/git/sdss/specflat/master"
Paths¶
export IDL_PATH="$IDL_PATH:$IDLSPEC2D_DIR"
export PATH="$PATH:$IDLSPEC2D_DIR/bin"
export PYTHONPATH="$PYTHONPATH:$IDLSPEC2D_DIR/python"
Compiling Internal Functions¶
The idlspec2d package contains a shared object library and C scripts. If you have issues with these, you can run evilmake all within the main idlspec2d directory ($IDLSPEC2D_DIR). evilmake is included within idlutils, so follow the directions on (sdss.org/dr18/software/packages/idlutils/) to install idlutils first.
Compiling Internal Documentation¶
This documentation can be compiled locally by navigating to $IDLSPEC2D_DIR/docs/sphinx and run make all (This can also be run with evilmake all in the same directory or evilmake doc within $IDLSPEC2D_DIR). This will compile the html, singlehtml, and pdf forms of the documentation within the associated subdirectoires of $IDLSPEC2D_DIR/docs/sphinx/_build.
Downloading File Dependencies¶
Some of the dependencies listed below contain files rather then code and can be obtained by the following commands (assuming the Environmental Variables are set as described above):
cd "$(dirname "$ELODIE_DIR")" && svn co https://svn.sdss.org/public/data/eboss/elodie/v1_3 v1_3
cd "$(dirname "$SPECLOG_DIR")" && svn co https://svn.sdss.org/public/data/sdss/speclog/trunk trunk
cd "$(dirname "$PLATELIST_DIR")" && svn co https://svn.sdss.org/public/data/sdss/platelist/trunk trunk
cd "$(dirname "$SPECFLAT_DIR")" && git clone https://github.com/sdss/specflat.git
if [ -n "$SDSSCORE_DIR" ]; then
cd "$(dirname "$SDSSCORE_DIR")" && git clone git@github.com:sdsscore.git
cd sdsscore
git submodule init
git submodule update --recursive
fi
Note
svn can be obtained by following the directions on https://subversion.apache.org/packages.html
Raw, intermediate, or Reduced Products¶
The raw, intermediate, and reduced products can be downloaded from the SAS to use in the pipeline. SDSS supplied a number of ways to do this depending on volumes. Bulk downloading is described on https://www.sdss.org/dr18/data_access/bulk/, while smaller downloads can be done with sdss_access
Dustmaps for readfibermaps¶
If you plan on running readfibermaps yourself and not download the previously run files from the SAS (Note: downloading them is the suggested path since it requires access to internal databases to completely match what is produced by the pipeline), pre-caching the dust maps is highly recommended. If you would like to manually control the location of these cache, you can follow the directions in the dustmaps documentation. Running the following will cache the maps used by the pipeline.
import dustmaps.sfd
dustmaps.sfd.fetch()
import dustmaps.bayestar
dustmaps.bayestar.fetch(version='bayestar2015')
import dustmaps.edenhofer2023
dustmaps.edenhofer2023.fetch(fetch_2kpc=True)
dustmaps.edenhofer2023.fetch(fetch_2kpc=False)
The default dust map used by the pipeline is a merge of SFD, Bayestar2015, and simple_dust_2023. Simple_dust_2023 is an unpublished proprietary dust map. While idlspec2d contains the code to use it, it will default back to edenhofer2023 in its place (though edenhofer2023 is a much heavier dustmap).
Dependencies¶
idl
python(3.7-3.11)
- SDSS Collaboration Package Dependencies
idlutils: idlutils is a collection of IDL functions and routines used by a variety of SDSS software.
sdssdb: sdssdb contains the source catalogs, targeting catalogs, and operational databases.
semaphore: provides codes and reference files to decode and understand the sdss_target_flags
sdss-tree: provides environment variables to manage paths for SDSS data as they organized on the Science Archive Server (SAS)
sdss_access: provides a convenient way of navigating local and remote file system paths from the Science Archive Server (SAS)
SDSS Slurm: Required for use of uurundaily at Utah, all other command can be manually (at Utah or elsewhere) run without access to the slurm manager provided by this package
- SDSS Product Dependencies
sdsscore: sdsscore is an SDSS-V product that contains the FPS fiber configuration files and header correction files to change the header exposure values (sdHdrFix-{mjd}.par)
elodie: A database of high and medium-resolution stellar spectra (Prugniel+, 2001) used by spec1d to classify spectra and determine stellar parameters.
speclog: speclog is an SDSS product that contains information about SDSS BOSS plate operations including seeing measured by the guides (guiderMon-{MJD}.par, plate plug maps (plPlugMapM-{plateid}-{mjd}-{plugid}.par, and plate header correction files to change the header exposure values (sdHdrFix-{mjd}.par)
platelist: platelist is an SDSS product that contains information on the plate designs and plugging. The plateHoles files include additional metadata associated with the targets on a plate
specflat: specflat is an SDSS product that contains master calibration frames and bad pixel masks for use in the idlspec2d pipeline.
- External Dependencies
pyDL: a package that consists of python replacements for IDL function, both built-in and from external astronomical libraries
dustmaps: provides a unified interface for several 2D and 3D maps of interstellar dust reddening and extinction. idlspec2d makes use of the Bayestar 2015 dustmaps (Green, Schlafly, Finkbeiner et al. 2015)
PyXCSAO: a python package designed to replicate the functionality of IRAF XCSAO.
numpy: a standard Python package for arrays and high-level mathematical functions
astropy(<7.0): a collection of astronomy packages written in Python
matplotlib: a python plotting library
healpy: a Python package based on the Hierarchical Equal Area isoLatitude Pixelization (HEALPix) scheme
tqdm: a progress bar for Python
pandas: a python package designed for data manipulation and analysis
h5py: a python interface between numpy and HDF5 data
scipy: a python package for scientific and technical computing
pillow: a python image file processing library
jinja2: a python templating engine used to build the HTMLs produced by the pipeline
termcolor: a python package for color formatting of terminal outputs (not required but recommended)
plotly: a python package for interactive plots (not required for the core pipeline but used by some of the supplementary tools)
psutil: A cross-platform libary for system monitoring and process running via Python (only used by SOS)
GitPython: A python libary used for git iteractions (only used by SOS - option)