sunpy / roadmap

The home of the roadmap for the SunPy ecosystem
BSD 2-Clause "Simplified" License
0 stars 2 forks source link

The Scope of SunPy Core #12

Open nabobalis opened 6 years ago

nabobalis commented 6 years ago

The original issue brought up a long discussion about the use of methods on the data objects we have in SunPy that store the data.

Question 1: Do we want methods that do any analysis or any permanent change to the original data/object?

E.g. Resample, rotate on Map or FFT/Peak Fitting on TimeSeries.

Question 1b: If yes to Question 1, what API from Map do we want to move out of Map?

Question 2: Do we rebrand Sunkit-Image to Sunkit-Analysis that either becomes an Affiliated Package or something at the level of core SunPy?

(Hypocritically pinging) @sunpy/sunpy-maintainers @sunpy/sunpy-board @sunpy/sunpy-developers

DanRyanIrish commented 6 years ago

Rebrand sunkit-image as sunkit-analysis. This becomes a package for applying analysis functions to any/all SunPy data objects. Then sunpy core can become mainly about data objects and their fundamental functionality: manipulating (e.g. slicing); visualization; data read in (?); metadata handling; etc.

DanRyanIrish commented 6 years ago

An intermediate step suggested by @ehsteve is that we create a sunkit-analysis module within sunpy-core and move methods like resample etc. there. That way they are still within sunpy-core reducing the workload of maintaining another package. Then as that module grows, it can be moved into its own package once/if it reaches a critical mass.

Cadair commented 6 years ago

So the original objective of sunkit-image was to have more complex and non-unique algorithms implemented independently of core, things like LCT, MGN norm, OCCULT etc. I think we can easily extend this to the peak finding work @Alex-Ian-Hamilton has been doing.

I do think there is a place for some "analysis" routines in core, I am thinking here of map rotate especially. I really don't think moving that out into a second package would be a win for our users. Probably the same goes for resample and some of the other things that Map currently does.

I wonder if the correct answer is to have both an analysis subpacakge in core and sunkit-analysis for more complex / or niche algorithms?

DanRyanIrish commented 6 years ago

I think that could work. Whichever way we go, I still like separating analysis tools from data objects, whether or not that's via a separate package or separate module.

Cadair commented 6 years ago

I agree on that.

wafels commented 6 years ago

The problem is defining the dividing line between what should be in core and what should be in sunkit-analysis/sunkit-image.

What are the purposes of map rotate, resample and solar de-rotate? How do they differ from LCT, MGN, OCCULT, etc?

One way to think about LCT, MGN and OCCULT is that they produce data products that derive new information from existing data. I don't think map rotate, resample or solar de-rotate produce any new information. Maybe we can use something like this to decide what goes where?

ehsteve commented 4 years ago

I vote that this should be moved to a discussion on the roadmap repo. It is more of a meta discussion.

dstansby commented 4 years ago

I vote that this should be moved to a discussion on the roadmap repo. It is more of a meta discussion.

Agreed, can you move it across @ehsteve ?