SDSS produces and provides a rich dataset to the astronomy community. The delivery of this dataset is backed by an equally rich suite of software tools designed to aid users with the access, exploration, and scientific analysis of SDSS data.
Commitment to Open Source
SDSS supports and encourages open source software development for all its projects. We advocate for a full transparent software cycle from development to release. All new software products contain an open source software license, e.g. BSD 3-Clause. To promote consistency among the SDSS software projects, we encourage all members to engage coding standards and practices.
SDSS recognizes the value of software in the scientific process and acknowledges the people who devote significant time and resources to its development. SDSS strives to cite the relevant software tools and papers used in its own science deliverables. We ask that any use of SDSS software and/or websites in the production of science be treated with the same respect and officially cited in science papers. Guidelines for the citation of SDSS software are included in the documentation of individual SDSS software packages. If no such guidelines are explicitly present, we ask you follow the guidelines put forth in the AAS Software Policy.
While an overview of SDSS software is provided within these pages, individual software projects contain their own documentation. Recent Python products are documented with Sphinx and the documentation is hosted publicly on Read the Docs. Older IDL products contain documentation in the standard IDL format. Software documentation on Read the Docs provides in-depth instructions for installation, usage, and tutorials for most modern SDSS packages. See here for a list of available software.
SDSS advocates the use of Zenodo for generating unique digital object identifiers (DOIs) for any piece of software code. DOIs are citeable snippets, that uniquely identify your code and allow it to be identified by tools. See Making Your Code Citable for how to get started.
Common containers for all data and metadata SDSS software produces are the community standard FITS files and the more SDSS-specific FTCL (or ‘Yanny’) Parameter files, which can be read by the pydl.pydlutils.yanny module of the PyDL software package, and
To maintain a robust and transparent history of code development, all our code is placed under version control. This helps us track changes over time, perform disaster recovery, and deliver a more robust product to you in an efficient and timely manner.
Git and GitHub
The legacy of SDSS has meant we’ve had to adapt our software to keep pace with the ever-changing software landscape. We’ve survived many software cycles and produced software using many legacy languages over the years. The two primary languages currently being used in development are Python and IDL.
SDSS software is now primarily written in Python, and SDSS encourages new Python packages to be developed following our SDSS Python Template.
Some critical SDSS software is written in the IDL language. We strongly recommend installing the idlutils package, as this is a prerequisite for other SDSS IDL packages.
The basic software tools necessary for analyzing raw SDSS data are contained in the IDL-based products
idlspec2d depends on essential meta-data contained in
speclog and other SVN repositories.
Specialized software packages designed to take raw data from observatories and transform it all the way into carefully organized outputs are called Pipelines. SDSS pipelines have a long and storied development history, and the mature pipelines now provide high quality data for all.