-
Notifications
You must be signed in to change notification settings - Fork 0
SOCIS 2012
SunPy
Describe in a few word your open-source project, why you would like to participate to SOCIS and what you hope to gain by participating.
SunPy is a new open-source project which aims to provide a complete framework in Python for solar, heliospheric, and space weather data analysis. We envision it as an alternate choice to the ''de facto'' standard library SolarSoft (SSW) that is widely used within the solar community. SSW is based on the Interactive Data Language (IDL) programming environment, which is propriety software, with costly recurring licensing fees. Since SSW is built with IDL, it limits the access to solar data analysis to those people and institutions who can afford the license fees and makes it difficult for amateurs or institutions with limited resources to become involved. Python is the perfect alternative to build a solar data analysis framework, as it is freely available to everyone and is already being used as a scientific data analysis environment in other science fields (NumPy, SciPy, PyRaf, Astropy) with many already-written scientific libraries available. Additionally, it can be used interactively (Python command-line), which is very close to how users already work with SSW in IDL.
Participating in ESA's Summer of Code in Space would not only help us expand SunPy by incorporating new functionality, but it will also promote our efforts in the solar physics community and thereby attract new contributors.
Describe your project´s connection with space activities.
The study of solar physics, space weather and other related sciences often involves the use of multiple instruments. Many of those instruments are in space, for example the Solar and Heliospheric Observatory (SoHO), [Solar-Terrestrial RElations Observatory (STEREO), Cluster, the Project for On Board Autonomy (PROBA-2), and the Solar Dynamics Observatory (SDO) spacecraft. Some are ground-based, for example, the LOw Frequency ARray radio telescope, which can be used for nowcasting and forecasting space weather. The study of space weather has been identified as being of critical importance as much modern infrastructure is dependent on space-based assets.
Much solar, heliospheric and space weather data are available to everyone in near real-time. Large and important archives of these data going back many decades also exist. However, the tools to reduce and analyze them are often based on privately held analysis packages that require restrictive, and often expensive licenses. This often puts a barrier between those wishing to analyze the data and the science goals of ESA, and space science in general.
SunPy will remove that barrier by developing open source, freely available, packages that enable ''anyone'' to analyze solar, heliospheric, and space weather data. As an alternate to the Solarsoft/IDL environment, SunPy ''deals directly with solar, heliospheric and space weather data, and so is directly relevant to activities in our local space environment''. We choose Python as our development language as it allows us to use many open source and free packages already developed for other astronomical disciplines. SunPy will allow anyone to take data from ESA's solar and helipsheric space missions and perform their own analyses, free from any restriction, thus increasing awareness of ESA's mission in the scientific community. Free and open source technology for analyzing solar and heliospheric data will make it easy for students to begin their scientific careers in space science, and will make the existing open-source science community aware of solar, heliospheric and space weather data.
All packages within SunPy will be distributed under the BSD 2-Clause license. If there is a need to use existing code distributed under an incompatible open-source license, that package will be made available as a separate download.
David Pérez-Suárez
dps.helio [AT] gmail.com
SOCIS 2011 ideas page
Each idea proposed has one or more mentors linked with it. These mentors are experts in the given subject area, with many being developers of the web services or other functionality being integrated. As not all subject experts are Python programmers, the SunPy community will be available to support Python questions. All mentors are experienced users of solar data, with experience in data acquisition, analysis or both.
In case of a disappearing mentor, the project administrator will be responsible for finding a new mentor. The SunPy project is large enough that it will not be difficult to find another mentor that is familiar with the project.
The students will have the flexibility to accommodate his/her other duties as a student with the project. However students are expected to be in regular contact with the mentor assigned and with the community. In the case that the student does not show any progress, the administrator of SunPy will study the specific case to solve any issues the student may have with the project. However, if the student completely disappears and if there is no reply after efforts to contact him/her, then we will understand as s/he has broken the agreement and we will contact the administration of SOCIS for further actions. The student's progress will be evaluated and the project mentor will be responsible for folding the existing code into the SunPy project.
How do you plan to encourage the students to interact with your project's community before, during and after SOCIS? How are you going to ensure your students' continued involvement with the project after SOCIS concludes?
During the program, the students will be encouraged to actively participate in community discussions through our mail list and/or forum. We will also require students to write posts on the blog describing the status of their work. This will give visibility to their work to all members of the project, and beyond into the wider open-source community. In addition, the SunPy project uses GitHub so that students can easily upload code to project and GitHub also provides tools to track their progress.
We will do our best to make sure that the students enjoy their work experience, so they feel part of the SunPy effort and the wider open-source / solar physics community. The best way to encourage students to continue with SunPy after their SOCIS time is over is for us to ensure that their efforts earn a prominent place in the solar physics community. We anticipate that an increasing openness in the solar physics community to new approaches to data analysis and space science will ensure that SunPy will become a useful and well-used tool.
https://groups.google.com/forum/?hl=en#!forum/sunpy
#sunpy at Freenode.net
ESA Summer of Code 2012 will be recognized as the sponsor within the documentation of the packages developed under this funding.
Image resampling algorithms: Digital image data are now commonly used throughout the field of solar physics. Many steps of image data analysis, including image co-alignment, perspective reprojection of the solar surface, and compensation for solar rotation, require re-sampling original telescope image data under a distorting coordinate transformation. The most common image re-sampling methods introduce significant, unnecessary flaws into the data. More correct techniques have been known in the computer graphics community for some time but remain little known within the solar community and hence deserve further presentation. Furthermore, image distortion under specialized coordinate transformations is a powerful analysis technique with applications well beyond image resizing and perspective compensation. The goal of this project is to implement fast, efficient, and flux-conserving coordinate transformation algorithms in SunPy. See this paper for reference. An implementation in perl already exists. Mentor: Craig DeForest?
Spectrum Object: The SunPy project is built upon a number of object which hold data such as the map object (for image data), the lightcurve object (for time series data), and the spectrum object (for spectral data). The goal of this project is to design and implement the spectrum object for SunPy. This object will need to be able to display its data in a basic plot form. It will also need to be able to convert from data (e.g. counts) to physical quantities (e.g. photons) through knowledge of the detector response (usually describes with a matrix). A number of physical models are also necessary to interpret spectra. Coding up efficient forms of these models can also be part of this project if time allows. Mentor: Richard Schwartz?
Light-curve object: Mentor: Jack Ireland
Map cube object: A map cube is an ordered set of two dimensional maps. The ordering can be by image observation time, Fourier frequency, or energy. The map cube object must be general enough to handle ordering by numerical quantities other than time. The map cube object can also provide the basis for animation. For example, in a set of time-ordered maps, running through them in time-order will animate a movie.
Movies and Animation: The Sun is a dynamic object, and so the capability to visualize its dynamism is very important. We require the ability to animate a map cube object, and to animate composites of maps. The matplotlib package has an animation module that looks like it can provide much of the movie playing capability we need.
Solarsoft Capabilities: some basic capabilities in Solarsoft should be reproduced in SunPy. For example, implementing a function that describes the latitudinal dependence of the rotation of the Sun is essential.
SunPy and High School: develop a one day course that introduces students to solar data analysis using SunPy. Will involve working on multiple parts of SunPy. Knowledge of science required, as well as experience with Python programming.