Skip to content
Wolfgang Kerzendorf edited this page Jun 20, 2013 · 19 revisions

Specutils Summer of Code in Space 2013

Currently there is much effort going into the astropy project to build a framework to analyze astronomical data in python, as well as to foster interoperability between existing astrophysical analysis tools. Astropy is separated into a core-package and affiliated packages. The core package provides very fundamental data structures for the analysis (e.g. tables with meta data, units, ..). The affiliated packages, like specutils, provide specific functionality for a sub-field of data analysis.

Electromagnetic radiation (light) is basically the only information we have about the cosmos. Thus, analyzing spectra is one of the most important tasks in astrophysics. Thus, a variety of python packages exists that address particular parts of spectroscopy (e.g. pymodelfit, pyspeckit, astropysics, pysynphot, pymidas, sunpy, etc.). Our aim is to provide commonly used tasks as part of specutils, as well as provide data structures that simplify interoperability between the existing packages to avoid duplication of effort. This overall goal is divided into three distinct projects:

Calibrating Spectra

Description: In its most basic form a spectrum is an array with intensities and associated mapping from pixel coordinates to wavelength (used in optical), frequency (used in radio) or energy. One very important step is spectroscopic analysis is the calibration and storage of this mapping. In a first step, this project aims to expand on the astropy.modelling package to write a set of transformations. Secondly, these transformations need to be calibrated. We will focus on the optical in this case and obtain a wavelength solution from a spectrum of an arc lamp. Finally, this project will learn to read and write the transformations in a variety of predetermined formats (there has been some previous effort that we will expand from).

Requirements: Working with numpy. Previous experience with spectral analysis is an advantage, but not necessary

Fitting Spectra

Description: An important way to obtain information from spectra is to measure the "lines" that occur in them. These "lines" (depletions or excess of flux in narrow wavelength regions) are the imprint of atomic transitions onto an otherwise smooth intensity distribution. Measuring the depth and location of lines gives important insights into the chemical composition, velocity, temperature and many other parameters of objects. This project aims to write models (using astropy.modeling) to fit many of the variants of these lines. It will also develop methods for simultaneous continuum and line fitting and methods for data rejection in order to enable fits to lines both independently and grouped.

Requirements: Working with numpy and scipy.

A Fitting GUI for specutils

Description: Visualization of models is generally the most important method of determining whether they adequately explain the data. It is difficult to judge just from the numerical fits if a spectral line has been reproduced in sufficient detail without a clear plot of the data, the model, and the residuals. This project will involve writing a GUI for spectral model fitting that will include GUI-based interfaces for model selection, parameter modification (via sliders and text-entry), and optimization method selection. The GUI will also provide a method for data selection to determine which components of the spectrum to fit with a given model.

Requirements: Experience with programming GUIs. Applicants are requested to state explicitly which python GUI systems they are most comfortable with.

Spectrophotometry

Description: Obtaining spectra is often a time- and work-expensive task and when myriad of stars is involved, it is sometimes not feasible to acquire spectra. Astronomers make an image in this case and use many filters to see how bright the star is in different spectral regions. Being able to convert between a spectrum and a brightness in a specific filter (called a magnitude) is an important task. This projects aims to take some of the functionality given by pysynphot and combine it with the astropy tools. In a first step, the candidate would write a framework to store filter information in specutils to be used in the second step to apply these filters to a spectrum, integrate over the flux and obtain a magnitude. In a last step, the candidate would work with the photutils developers (the photometry arm of astropy) to think about calibration to standard filter sets.

Requirements: Working with numpy and scipy. Experience with photometric data analysis is an advantage, but not a requirement.

Clone this wiki locally