Skip to content

wtbarnes/aia_response

Repository files navigation

aia_response: Calculate the SDO/AIA temperature response functions with SunPy and ChiantiPy

A PDF of these notes is available on the `notes` branch of this repository. Alternatively, you can build the PDF from the reStructured text by running `./build_notes.sh`, provided you've installed `pandoc <http://pandoc.org/>`_.

Here are some preliminary notes on implementing the AIA response functions with ChiantiPy and SunPy. Currently, the only way to calculate these is with the routines provided in SSW. There is little supporting documentation for these routines.

GOAL: Implement AIA temperature response functions using the tools provided by SunPy and ChiantiPy, providing adequate documentation and benchmarking.

We'll rely primarily on two papers for looking at the AIA response functions:

SDO/AIA temperature response functions unnormalized (left) and normalized right for the six EUV channels as calculated by the aia_get_response function in SSW. The dashed lines are the response functions calculated with the Chianti correction as discussed in Boerner et al. (2014).

SDO/AIA temperature response functions unnormalized (left) and normalized right for the six EUV channels as calculated by the aia_get_response function in SSW. The dashed lines are the response functions calculated with the Chianti correction as discussed in Boerner et al. (2014).

Formalism

For a given position in the image plane x and wavelength channel i, the pixel values can be expressed as,


pi(x) = ∫0dληi(λ)∫pixelxdθI(λ, θ)

Here, ηi(λ, t, x) is the efficiency function of the ith channel. It can be expressed as,


η = Aeff(λ, t)G(λ)F(x)

The terms in the above equation are as follows,

  • effective area Aeff = AgeoRp(λ)RS(λ)TE(λ)TF(λ)D(λ, t)Q(λ)
  • gain of the CCD-camera system, G(λ) = (12398/λ/3.65)g
  • flat field function F(x)

According to Boerner et al. (2012), the instrument response function is R(λ) = Aeff(λ, t)G(λ) . This should not be confused with the wavelength response function of Boerner et al. (2014) Ri(λ) which is equivalent to ηi as expressed above.

With all of that out of the way, we want to calculate the temperature response function, for the ith channel Ki(T) . This can be expressed as,


Ki(T) = ∫0dλG(λ, T)Ri(λ)

Thus, we can calculate the AIA temperature response functions by folding the instrument response function of through the contribution function G(λ, T) for the appropriate number of spectral lines.

Questions

Some questions about how this will be implemented:

  • How will we query the data related to the AIA instrument? (e.g. CCD gain, instrument decay, mirror efficiency, etc.)
  • Where does this functionality belong in SunPy?
  • What is the best way to get the atomic data from ChiantiPy?
  • What amount of time should be spent making contributions to ChiantiPy?

Atomospheric Imaging Assembly (AIA) on SDO

Lemen et al. (2012) provide an in-depth look at the AIA instrument. We will focus on the six EUV channels that AIA uses to image "warm" to "hot" plasma in the solar corona.

CCD Gain

A few notes on the somewhat arbitrary equation for the CCD gain, G(λ). First, we note that G is said to be measured in DN per photon while g is measured in DN per electron. The first factor in the expression is 12398/λ. This is conversion factor for electron volts (eV) per photon. The energy of a photon can be expressed as E = hc/λ. Expressing Planck's constant in eV gives and the speed of light (perhaps somewhat unconventionally) in angstroms per second gives hc = (4.135667 × 10 − 15eVs)(2.99792458 × 1018angstroms − 1) ≈ 12398 eVangstrom.

Similarly, the 1/3.65 is a conversion factor for electrons per eV. It is worth noting that this is stored in the .genx SSW file for each channel under the keyword ELECPEREV.

In the expression for G(λ) in Boerner et al. (2012), g is referred to as the camera gain with units of DN per electron. The third column of Table 6 lists the gain for each camera in units of electron per DN. The numbers from this table are included in the .genx SSW file under the keyword ELECPERDN. However, it seems that this field in the data file is not just 1/g as calculating G in this manner gives answers that are close to, but not exactly, the values of G found in the second to last row of Table 2 (for the wavelength of the strongest line in each channel).

So the question then is what exactly is g and where do we get the information we need to calculate it?

ChiantiPy

ChiantiPy is the Python interface to the CHIANTI atomic database. It provides ways to query atomic data as well as perform calculations with/on the data. The main quantity that we will want to retrieve from CHIANTI/ChiantiPy is the contribution function G(λ, T).

Calculations

See Mason and Fossi (1994). This will serve as a brief summary for the context of the contribution function G(λ, T), and its role in the calculation of the intensity Iλ and the emission measure EM(T) (or differential emission measure DEM(T)).

Consider the case of bound-bound emission, where an atom of charge state  + m (i.e. has been stripped of m electrons) in an excited state decays to a lower energy state and emits a photon of energy ΔEi, j = hνi, j = hc/λi, j. The emissivity can be expressed as,

$$P_{i,j}=N_j(X^{+m})A_{j,i}\frac{hc}{\lambda_{i,j}},$$

where Aj, i is the Einstein spontaneous emission coefficient, Nj(X + m) is the number density of the atoms in excited state j in charge state  + m which can itself be expressed as,

$$N_j(X^{+m}) = \frac{N_j(X^{+m})}{N(X^{+m})}\frac{N(X^{+m})}{N(X)}\frac{N(X)}{N(H)}\frac{N(H)}{N_e}N_e.$$

The first ratio is population of level j relative total number density of  + m ions. The second ratio is the ionization state of the plasma and is predominantly a function of temperature. The third ratio is the relative abundance of element X to hydrogen. The fourth ratio is the relative hydrogen abundance and can be approximated as  ∼ 0.83. Finally, the last term is the electron density.

We then use the coronal model approximation (which says that all transitions occur between excited state j and ground state g and that excitation occurs only via collisions and de-excitation only through radiative decay) to express the first ratio,


Ng(X + m)NeCg, je = Nj(X + m)Aj, g.

Plugging this into the emissivity equation,

$$P_{g,j}(\lambda) = 0.83\mathrm{Ab}(X)G(T,\lambda_{g,j})N_e^2\frac{hc}{\lambda_{g,j}}.$$

The third term here is the contribution function we've been looking for,

$$G(T,\lambda_{g,j}) = \frac{N(X^{+m})}{N(X)}C^e_{g,j}.$$

Essentially, this tells us how much a particular transition λg, j contributes to the emissivity at a given temperature T. G(T, λg, j) is strongly peaked in temperature because of the population fraction N(X + m)/N(X).

Improvements to Codebase

Interactions with SunPy

SunPy

Mostly SunPy will serve to store the routines. Use AstroPy units to be compliant with the rest of SunPy/AstroPy. Thus far, the directory structure relevant to our project looks like:

sunpy/
|___sunpy/
    |___...
        instr/
        |___...
            aia/
            |___aiaprep.py
                response.py

So now there are multiple routines inside of the aia/ directory. At some point, we may want to make the response functions more general so that they can be used by other instruments as well.

Application

Some notes about the practical applications of this project, i.e. "How are we going to do this?"

IDL

Some notes on the actual IDL routines and what they do.

Meeting Notes

2 May 2016

16 May 2016

27 June 2016

  • Separate genx file reader from everything else
  • All instrument/channel information should be read into an Astropy table
  • Distinction between channel and wavelength, one is discrete, the other continuous
  • Make sure that every part of the class is agnostic to the way the data is read in
  • Constructure takes in a list of channels and thats all, checks them

About

Preliminary work to implement AIA response functions with ChiantiPy and SunPy.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages