# SunPy Roadmap Draft
## Documentation / Learning
* Project wide gallery
* Project wide search
* Tutorials and training materials
* More examples for not-core
* Examples of building non-FITS WCS (i.e. gwcs) for solar cases
* e.g. overlappograms
* time varying WCSes
## Improved Support for Spectral Data
* Calculate moments
* Support for X-ray spectral fitting: sunkit-spex
* Irregular coordinate grid support in NDCube/ExtraCoords
* Coordinate bin edges in NDCube/ExtraCoords
* Support for atomic databases fitting templates (astropy models) (i.e. expected line positions)
* Documenting how to serialize models (e.g. to asdf)
* Address needs of in situ spectra
## World coordinate specific API on NDCube
* Rewrite maputils to support NDCube objects with at least 2 celestial axes
* Perform operations which require spatital axes on a higherD cube, like draw_limb on a SPICE cube.
* Access world coordinate specific metadata (such as reference_coordinate) on higherD cubes.
* Example use case: be able to treat a space-space slice of an IRIS cube like a Map.
* Extract 1-D paths or regions through world space into a 1-d NDCube.
* Provide views into the cube where all the other pixel dimensions are flattened (i.e. fitting all spectra or tracing a SkyCoord through all non-celestial axes)
## Other things
* Time-varying WCSes (dkist -> gwcs?)
* Drop world axes in ndcube slicing while a pixel axis exists (i.e. ignore degenerate dimensions)
* i.e a 2D cube from a rastering spectrograph (sliced at a wavelength) doing a pixel_to_world still needs time.
### affiliated package work
* Generalized package for doing inversions
* i.e. **sunkit-dem** but generalized to more complicated coupling of axes, e.g. inverting overlappograms
* sunkit-dem...
* radiospectra
* More extrapolation methods in sunkit-magex
* Proper support for spectral data
* Accurately represents the data/wcs
* spectral fitting support
* SST and VISP support
*
* Make all WCS-based data classes backed by NDCube.
* No NDCube subclasses - Replace all data classes with a single class
* Richer world coordinate specific API on NDCube
* SM - load any dimension cube into a sunpy class and have the existing ndcube methods work (ref pixel, rebin, draw limb, etc.)
* Agreed upon vocabularly for instrument-specific metadata classes
* Metadata is instrument-specific mixin
- Coronagraph focused tools (e.g. PUNCH + Proba3 + Metis onboard Solar Orbiter)