dysh is a Python spectral line data reduction and analysis program for singledish data with specific emphasis on data from the Green Bank Telescope. It is currently under development in collaboration between the Green Bank Observatory and the Laboratory for Millimeter-Wave Astronomy (LMA) at University of Maryland (UMD). It is intended to be an alternative to the GBO's current reduction package GBTIDL.
Note: if you are on the GBO network, dysh will already be installed; you do not need to do anything further! Other uses cases are outlined below.
Example use case: you want to quickly install and use dysh on a non-GBO computer
This will install a persistent global version of dysh via uv:
# Install dysh
$ uv tool install dysh[all]
# Launch dysh notebook
$ dysh-lab
You can also use pipx. After installing pipx, dysh can be installed via:
# Install dysh
$ pipx install dysh[nb]
# Launch dysh notebook
$ dysh-lab
Example use case: you want to use dysh with a specific set of dependencies, or in conjunction with an existing project
dysh is most easily installed with pip, which will take care of any dependencies. The packaged code is hosted at the Python Packaging Index.
$ pip install dysh[all]
Beta versions will also be published to PyPI, and can be installed via:
$ pip install dysh[all] --pre
Development versions can be installed from GitHub branches via:
$ pip install "dysh[all] @ git+https://github.com/GreenBankObservatory/dysh"
For more options, see the pip VCS Support documentation.
If you find a bug or something you think is in error, please report it on the GitHub issue tracker. (You must have a GitHub account to submit an issue)
See the For Developers documentation for more detailed instructions on setting up a development environment.
$ git clone [email protected]:GreenBankObservatory/dysh.git
The recommended development workflow is to use uv. After installing uv all you need to do is:
$ uv sync
You also have access to "dysh shell" and "dysh lab":
$ uv run dysh
$ uv run dysh-lab
Or you can source the uv virtual environment just like any other:
$ source .venv/bin/activate
Another workflow is to use hatch. After installing hatch, this will look something like:
$ hatch shell
If you do not want to use Hatch, it is possible to develop using a "classic" workflow. From the root of the dysh repo:
$ # Create your virtual environment
$ python -m venv /path/to/venv
$ # Activate your virtual environment
$ source /path/to/venv/bin/activate
$ # Install dysh and its development dependencies
$ pip install -e .[all]
We use pytest for unit and integration testing. From the top-level dysh directory, run:
$ pytest