Software

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.

Software Citation

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.

Software Documentation

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.

Software Hosting

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.

Data Formats

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.

Version Control

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.

Highlights

Git and Github

We have transitioned all the SDSS-V software to the git versioning system, and migrated many software codes to Github, hosted on our Github SDSS Organziation page.

SVN

Legacy SDSS software as well as some data repositories remain versioned with svn. See the SDSS-IV Products page for a list of available SDSS svn codes.

Software Languages

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.

Python

SDSS has begun transitioning large amounts of software to Python, and encourages new Python code packages to be developed following our SDSS Python Template.

SDSS software packages meant to be publicly available and integrated within other codes are deployed on PyPI as pip-installable packages. Official SDSS packages are listed in the PyPI SDSS page.

IDL

A substantial portion of the SDSS software is written in the IDL language. We strongly recommend installing the

idlutils package, as this is a prerequisite for many other SDSS software packages.

The basic software tools necessary for analyzing SDSS data are contained in the IDL-based products: 

idlutilsidlspec2d and photoop. The latter two often depend on two more products containing essential meta-data: photolog and speclog.

Other

We also distribute stand-alone C language software for reading fpAtlas images (readAtlasImages-v5_4_11.tar.gz), whose usage can be found in the SDSS-IV atlas image description.

Additionally, there are a number of products distributed with the software that contain external data of various sorts (dust maps, FIRST catalogs, RC3, Tycho-2, etc.).