# DASH session Proposal
https://dash.heliophysics.net/
## Title: "Using `Astropy` within the Helophysics Software Ecosystem"
## Abstract
The `astropy` package provides a myriad of generally useful tools for scientists working within the scientific Python ecosystem. These include tools for performing unit-aware arithmetic, a unified interface for many common time formats and scales, as well as a powerful framework for defining coordinate frames and transformations. Though this functionality was developed primarily for the astrophysics community, its applicability is much more broad. As an example, in addition to making extensive use of `astropy.units` and `astropy.time`, the `sunpy` package extends the `astropy` coordinates framework to include definitions of and transformations between many common solar coordinate frames. This means that a `sunpy` coordinate can be transformed into any other coordinate frame defined within the `astropy` framework.
In this session, we will discuss both how `sunpy` has made efficient use of functionality within `astropy`, including units, time, and coordinates, and how `astropy` could be more generally useful to other packages within the heliophysics software ecosystem. We invite contributions showcasing how `astropy` has been beneficial to heliophysics-focused workflows. Currently, many packages (e.g. those within the Python in Heliophysics community) have developed custom code for handling time formats and coordinate transformations. While standardizing around a common framework would increase interoperability and reduce duplication of effort in the long run, it comes at the cost of signficant refactoring efforts and potential breaking changes. We will discuss strategies for overcoming these barriers, transitioning packages to a common framework and cross-checking results from bespoke implementations and common frameworks like those provided by `astropy`. In particular, we invite contributions from packages in the Python in Heliophysics community who have developed equivalent functionality to that available within `astropy`.
## Clarifying Points
We need to make the case for why our session is not too narrow in scope and why it is applicable to many of the topics that DASH wants to cover.
- Goal: The primary goal of this session is to have a frank discussion about a specific approach to interoperability, namely the use of `astropy` as a framework for handling units, disparate time formats, and coordinate systems.
- Scope: This session is relevant to all users and developers of Python software in heliophysics. This session directly addresses several topics to be covered at the DASH meeting, including: Standards, Science Analysis Tools, Software Development, Leveraging Capabilities from Other Domains, and Multi-domain Analysis.
- Format: The format of this session will be an open discussion forum, with few formal talks. We will open the session with a brief outline of how `astropy` can be used for interoperability, using `sunpy` as an example. This will be used to jumpstart a discussion of how other packages in the heliophysics software ecosystem are or are not using `astropy` and why. Participants will be invited to give brief, informal presentations to supplement the ensuing discussion.
- Outcome: The outcome of this session will be twofold. First, we will enumerate the varying approaches to units, time, and coordinates within current heliophysics Python software. Second, we will enumerate where `astropy` is not capable of meeting the needs of heliophysics software, e.g. are there time or coordinate systems that cannot be expressed within `astropy`. These lists will serve as a roadmap to bridge gaps in the existing heliophysics software ecosystem.
## Addressing Merging Sessions
While the other Python session certainly has overlapping scope, we believe that merging the two sessions would only decrease the effectiveness of each individual session. As such, we think it is best that the two session proposals remain separate.