Software Packages

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.

Python Packages

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

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

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 DB

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.

SDSS Tree

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

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

IDL Utils

The idlutils package consolidates critical IDL dependencies used in a variety of SDSS products.

SVN resources

idlutils and idlspec2d rely on metadata stored in SVN repositories such as speclog. Critical products that rely on SVN are documented on the SVN repositories page.

Back to Top