Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a function for creating an NDCube with a single WCS from a list of images in time #336

Open
wtbarnes opened this issue Jun 15, 2024 · 1 comment
Labels
Feature Request New feature wanted!

Comments

@wtbarnes
Copy link
Contributor

Co-aligning a stack of images to a common WCS is a common task. We should have a function that, given a target WCS, reprojects a list of images to that target WCS and adds an additional axis to that WCS corresponding to the time dimension. Without performing interpolation, this time axis will, generally speaking, be irregularly spaced (even at the nominal AIA cadence, not accounting for dropouts and/or small deviations) and as such the resulting WCS will have to be a non-FITS WCS. This example gallery entry illustrates how to deal with this case with a wavelength axis, but this can be straightforwardly adapted to deal with the time case.

Things to decide:

  • What is the input data structure? List of Maps? Sequence? An NDCube sequence?
  • Do we want an ndcube dependency? If not what should this return?
  • Should this return a MapSequence instead? There would be no time axis in that case.

See also sunpy/sunpy#7676 for a similar issue about creating an example gallery entry for this kind of workflow.

@wtbarnes wtbarnes added the Feature Request New feature wanted! label Jun 15, 2024
@wtbarnes
Copy link
Contributor Author

When writing such a function, we should remember that there may be serious performance considerations to take into account, e.g. reprojecting 6 h worth of full-cadence/resolution data is going to be computationally expensive. As such, when writing this function, we should be conscious of allowing ways for this operation to scale (e.g. with dask), but also not requiring them.

Another thing to consider: should such a function necessarily live in aiapy? This has broad use cases outside of just AIA. That being said, something like this would certainly be too specific for ndcube.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature wanted!
Projects
None yet
Development

No branches or pull requests

1 participant