SDSS 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.
Git and Github
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
The basic software tools necessary for analyzing SDSS data are contained in the IDL-based products: idlutils
, idlspec2d
and photoop
. The latter two often depend on two more products containing essential meta-data: photolog
and speclog
.
Other
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.).
Software Docs Hosted on ReadtheDocs
- sdss-tree: Sets up a local SDSS environment
- sdss-access: Access and Download SDSS data.
- sdss-marvin: Interact with MaNGA data.
- sdss-python-template: Create new SDSS Python projects.
- sdssdb: SDSS Database Management
- sdss-brain: SDSS Helpers for Multi-Modal Data Access