A number of software packages have been developed to aid in carrying out SDSS surveys and processing the data. Here we briefly describe the purpose and scope of some of these core software packages. Many packages have their own detailed documentation as well.
Most SDSS software is now written in Python and deployed on PyPi, therefore most SDSS Python products can be installed with pip
pip install [package_name]
Robostrategy is a python package designed to efficiently pack targets into FPS designs. Time domain spectroscopy is a significant focus of SDSS V, as such each target has cadence requirements that must be respected, in addition to constraints on observing conditions such as maximum sky brightness. Robostrategy uses linear programming to determine which targets can be observed together and packs them into designs. A more complete explanation is given in Blanton et al. (in prep).
Kaiju is a python-wrapped C++ package that computes collision-free paths for all 500 robots when moving between configurations. Kaiju generates paths in a matter of seconds allowing for on-the-fly use during nightly operations. The software is described fully in Sayres et al. (2021).
SDSS relies on a number of databases, mostly postgresql databases. sdssdb is a python package that provides connection profiles compatible with our observatories and high performance computing facilities, as well as ORM model classes for interacting with critical databases from Python code.
SDSS Python Template
SDSS encourages all new code be written in Python. sdss-python-template provides a starting point for new Python packages with a skeleton for industry standard functions such as documentation with sphinx, a testing framework, and initial configuration files for poetry or setuptools.
The tree product organizes the numerous paths for SDSS data on the SAS. Versions of sdss-tree are available for each data release and provide paths to data directories in that release as environment variables.
sdss-access provides a convenient Python interface for downloading SDSS data.
IDL and SVN resources
While new SDSS software is primarily Python, their are still critical IDL dependencies, especially in the data reduction and analysis pipelines. These tools often depend on metadata in SVN.
IDL software currently used by SDSS is managed on GitHub and can be obtained by cloning the repo
git clone https://github.com/sdss/[product].git
The idlutils package consolidates critical IDL dependencies used in a variety of SDSS products.