Google Summer of Code Work Product Submission

This blog post is a consolidated report of my GSoC ’21 project. I’ve been contributing to ndcube - a sunpy affiliated package, which is itself a part of the umbrella organization called openastronomy. Phew, that’s quite some hierarchy.

Here’s a list of pull requests that I’ve opened during the coding period:

  1. Initial implementation for validating two WCS: Merged
    Implements a function to check if two given WCS objects are compatible with each other for reprojecting the NDCube.
  2. Reproject implementation: Merged
    Adds a method to reproject an NDCube using the astropy package called reproject.
  3. Reproject NDCube Documentation: Merged
    Documentation for the above PR.
  4. Support adaptive and exact algorithms for reproject: Merged
    Adds partial support for other algorithms by restricting input shape to 2D.
  5. Make reproject more efficient by identifying invariant axes: Unmerged
    Performs a back-and-forth transformation between pixel and real-world values to identify axes that don’t need to be reprojected. The function is complete and will be used in a future PR for optimizing reproject. Can be merged after a final review.
  6. Combine cubes from NDCubeSequence using reproject: Unmerged
    Stacks the data of all cubes in an NDCubeSequence together into one cube. This PR is ready to merge but awaits testing from the community.
  7. Reproject NDCubeSequence Documentation: Unmerged
    Documentation for the above PR. This will be merged after the code.

I’ve also been writing blog posts throughout the coding period. Here are links to the 4 parts I’ve written so far: Part 1, Part 2, Part 3, and Part 4. They contain a more technical description of the work along with some obstacles that we faced.