This post is going to make a simple introduction to the project which I am going to finish this summer.
The main goal of this project is to improve the solarbextrapolation package, which is a project SOCIS 2015 by Alex Hamilton, by relaxing the small-angle approximation and allowing for global magnetic field extrapolation. If time allows, adding support for other numerical models, for example, Potential Field Source Surface (PFSS), and improving visualization of magnetic field data would be the following steps.
The major work will involve:
- Add support to coordinate transformations between magnetic field data in different coordinate systems
- Add support to coordinate transformations between the magnetogram coordinate system and spherical coordinate system of the magnetic field data
- Add support to new numerical models of magnetic field extrapolation
- Improve current magnetic field visualization methods
As for point 1, SunPy currently provides a powerful package NDCube, which could handle the WCS coordinate transformations easily. I am studying how to use NDCube to store the magnetic vector data so that the standard data class of the package could be consistent with SunPy’s convention.
As for point 2, NDCude provides convenience functions to connect the pixel coordinate system and the real world coordinate system. If we could store the magnetic field vector data correctly in NDCube, we could easily set up a connection between the real world and magnetogram. Therefore, a standard pipeline for magnetic field extrapolation could be set up.
As for point 3, different numerical models may need data in different coordinate systems. If we could solve the previous two points successfully, the remaining work of this point is to code for the new numerical models and test them.
As for point 4, solarbextrapolation currently uses package MayaVi to generate interactive 3D plots of the magnetic field. If time allows, some other commonly used packages will be included to improve the visualization framework and user experience. For example, Matplotlib has become a functional plotting tool which is prevalent in the scientific Python community.
The four points mentioned above are the major tasks of the project which I am going to finish this summer. If you have any remarks, please feel free to leave a comment. :)