SUSI - data structure description
Overview
The SUSI data are provided in single *.fits data cubes.
The most relevant keywords are listed in the table below:
| Key | Value Type | Description |
|---|---|---|
DATE_OBS |
Date Time | UTC Acquisition Time |
In a future release, also WCS header fields will be provided.
Slit Jaw Imager (SJ)
The spectrographic data are provided as one FITS file per slit position. We currently only provide restored slit-jaw images with squared pixels and a accumulation of 288 frames (= 6 seconds) and 50 % overlap in the temporal dimension, creating a cadence of roughly 3 seconds. The individual file names include a number that allows identifying their position in the sequence.
Spectro-polarimeter (SP)
The spectrographic data are provided in cubes with one HDU extension per (accumulated) slit position.
Each extension has the ordering [NAXIS3=STOKES, NAXIS2=sLit-axis, NAXIS1=wavelength-axis],
e.g. (4, 1510, 1851) in python. Each HDU extension has its own header.
In addition to the general header keywords above, the most relevant header keywords for SP data are:
| Key | Value Type | Description |
|---|---|---|
XSCALE |
float | (arcsec) horizontal plate scale |
MIN_WL_NM |
float | Wavelength at pixel MIN_WL_PX |
MIN_WL_PX |
int | Starting position of calibrated WL |
MAX_WL_NM |
float | Wavelength at pixel MAX_WL_PX |
MAX_WL_PX |
int | End position of calibrated WL |
SPATIAL_BIN |
tuple | Applied binning in (y,x) |
TEMPORAL_BIN |
int | No. of averaged frames (min: 12 = 1 mod. cycle) |
Processing Pipeline |
string | Name and version of the processing pipeline |
Processing Time |
Date Time | UTC Processing Time |
CUBE_START |
Date Time | UTC Acquisition start time |
CUBE_STOP |
Date Time | UTC Acquisition end time |
Data Access Examples
Interactive Tool
A simple ad-hoc data accessing tool to show interactive python plots of the SP data cubes can be found
in our
gitlab
(checkout the susi_version branch).
The tool allows to click on spectral positions, to inspect the corresponding assembled Stokes images at this
wavelength and on the Stokes images to inspect the corresponding profiles in the selected spatial pixel.
Minimal Example
Below we show a minimalistic python script to assemble traditional 4D cubes from the provided SP data and extract the linear wavelength axis in Angstrom:
from astropy.io import fits
import numpy as np
cube = []
wl = None
with fits.open("/path/to/SUSI_CUBE.fits") as hdul:
hdr = hdul[0].header
wl0 = int(hdr["MIN_WL_PX"])
wl1 = int(hdr["MAX_WL_PX"])
wl0n = float(hdr["MIN_WL_NM"]) * 10 # Convert to Angstrom
wl1n = float(hdr["MAX_WL_NM"]) * 10 # Convert to Angstrom
# Create wavelength axis
wl = np.linspace(wl0n, wl1n, wl1-wl0)
# Assemble slit positions to cube
for hdu in hdul:
cube.append(hdu.data[:,:,wl0:wl1])
# Transpose cube to a more common ordering
cube = np.array(cube)
print("Loaded cube shape [Y,S,X,WL]:", cube.shape)
cube = np.transpose(cube, (0, 2, 1, 3))
print("4D cube shape [Y,X,S,WL]:", cube.shape)