Skip to content

SOCIS 2012 Ideas Page

Nabil Freij edited this page Feb 22, 2024 · 4 revisions

The SOCIS 2012 application page

The ideas shown below are projects that we believe can be completed during the SOCIS programming period (1 Aug - 31 Oct 2012). The projects are sorted in order of interest to the SunPy community. Please join the #sunpy IRC channel (web client) to talk with the SunPy community.

Spectrum Object

  • Description: The SunPy project is built upon a number of objects which hold data such as the map object (for two-dimensional image data) and the lightcurve object (for time-ordered scalar data). The third major object we require is the spectrum object, which is for data ordered by energy (or its equivalent, such as wavelength). 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. In addition, different sub-classes of the main spectrum object will also need to handle the various kinds of spectral data. 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 (for example, the detector response is typically described using 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.
  • Requirements: Basic knowledge of spectral data analysis a plus.
  • Mentor: Richard Schwartz, David Pérez-Suárez

Extending the capabilities of the Map object

Map Cube ordering

  • Description: A map cube is an ordered set of two dimensional maps. The ordering can be, for example, 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 of data. It should also be easy for the user to generate other basic objects from the map cube object. For example, light curve objects can be generated by looking at specific points in the image for a time-ordered map cube.
  • Requirements: Basic knowledge of scientific image analysis a plus.
  • Mentor: Keith Hughitt

Movies and Animation

  • Description: 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. This functionality is highly desirable in exploratory data analysis, and would be a major step forward in Sunpy functionality.
  • Requirements: Basic knowledge of GUI design a plus.
  • Mentor: Jack Ireland

SDO Cutout Service

  • Description: As part of the Heliophysics Coverage Registry (HER) Lockheed Martin Solar and Astrophysics Laboratory provides a cutout service to access SDO/AIA data. This service reduces bandwidth costs by allowing users to request subsamples of full Sun images. This service also connects to the HEK so that users can find cutouts that others have made reducing the number of cutouts which need to be created. This service provides an API. The goal of this project is to create an interface to this service in Python as well as a GUI tool to choose the area of the cutout.
  • Requirements: Knowledge of web services preferred.
  • Mentor: Jack Ireland, Keith Hughitt

SunPy GUI

  • Description: The goal of this project is to develop a standardized interface to plots such as that of lightcurves, spectrograms, or images. Such a tool would provide basic functionality to interact with the plots contained therein such as overlaying multiple images, comparing light curves to each other. Interfaces to common tasks could include searching the vso for data, background subtraction, creating profile cuts in images, fitting curves such as gaussians. A good example of a GUI interface for interacting with radio data is ragview. This GUI interface should be written in using tools which work well on multiple platforms, such as Tkinter and PyQT (if time allows).
  • Requirements: Basic knowledge of GUI interface design.
  • Mentor: Steven Christe

SunPy and High School

  • Description: In order to train the next generation of solar scientists in using Python and SunPy, we would like to develop a one day course. Will involve working on multiple parts of SunPy (getting data, visualize it, extract profiles, gaussian fitting,...). Knowledge of science required, as well as experience with Python programming. This project is meant for Python beginners and should be a quick project which will introduce the student to SunPy development.
  • Requirements: None.
  • Mentor: Steven Christe, David Pérez-Suárez

Porting of Critical software from SolarSoft

  • Description: SolarSoft is a software suite developed for IDL which already contains critical routines which are necessary for many basic analysis of solar data. Many of these routines must be ported to Python. This project aims to give SunPy some of the basic solar physics functionality already present in Solarsoft/IDL.
  1. Differential rotation of solar images drot_map.pro
  2. Limb darkening correction Limb darkening refers to the diminishing of intensity in the image of a star as one moves from the center of the image to the edge or "limb" of the image. Limb darkening occurs as the result of two effects: (a) the density of the star diminishes as the distance from the center increases, and (b) the temperature of the star diminishes as the distance from the center increases. For some analyses it is import to correct for this effect.
  3. Calculate and draw a grid on the Sun. It is helpful to plot a grid on the Sun that represents its true spherical nature. This project will create the code required to do this, taking into account the position of the observer relative to the Sun.
  • Requirements: Knowledge of IDL is necessary.
  • Mentor: Jack Ireland

Prep-server

  • Description: The prep-server is a custom web service that has been developed to provide access to a number of data preparation routines which are currently available in IDL. Many solar missions provide and maintain tools in prepare their data for scientific data analysis as such it is a key component to allow SunPy users to analyze data from certain missions without the need for IDL. The goal of this project is first to aid in the setup of the server itself using existing server code, and then write a Python interface to this service needs to be written.
  • Requirements: Java
  • Mentor: David Pérez-Suárez

Flux-conserving Image resampling algorithms

  • Description: 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.
  • Requirements: Perl
  • Mentor: Jack Ireland (with possible addition of subject matter experts Craig Deforest)

JPEG 2000 in Python

  • Description: JPEG 2000 is an image compression standard which has been developed to supersede the JPEG standard. It is currently being used by the Helioviewer project to provide high-fidelity images of solar data for purposes of browsing data quickly and with limited bandwidth. The first goal of this project is to write a wrapper around the [http://www.openjpeg.org/ OpenJPEG C library] in order to be able to open JPEG 2000 files from Python. Next, network code must be developed to hook into the [http://helioviewer.org/api Helioviewer API] to request and download data from their archives.
  • Requirements: Strong knowledge of C and Python; Cython experience helpful
  • Mentor: Keith Hughitt

SDO JSOC Connector

  • Description: The Solar Data Observatory's Joint Science Operations Center is the authoritative source for data from the Atmospheric Imaging Assembly (AIA) and Helioseismic and Magnetic Imager (HMI). Although most AIA and HMI data is available through the VSO, the JSOC's Data Records Management System (DRMS) contains additional lower-level data, and can support more complex queries that are used in helioseismology. A RESTful webservice is available to query the authoritative system, and a C API exists to talk to a local DRMS instance, such as the six mirrors in Europe.
  • Requirements: Knowledge of C required. Knowledge of web services (REST) preferred.
  • Mentor: Joe Hourclé; (with possible addition of subject matter experts Art Amezcua and/or Igor Suárez Solá)

List of Mentors

  • Steven Christe (NASA GSFC, USA)
  • Keith Hughitt (NASA GSFC, USA)
  • Jack Ireland (NASA GSFC, USA)
  • Joe Hourclé (NASA GSFC, USA)
  • David Pérez-Suárez (TCD, Ireland)
  • Richard Schwartz (NASA GSFC, USA)
Clone this wiki locally