SPICE_GETWINDATA - ITA-Solar/solo-spice-ql GitHub Wiki

Returns the SPICE data structure for one spectral window. The format is chosen to copy the Hinode/EIS routine EIS_GETWINDATA.

Syntax

Result = SPICE_GETWINDATA(data [, input_iwin=input_iwin] [, wrange=wrange] [, ixrange=ixrange] [,/keep_sat] [, /clean] [, /verbose] [, /quiet] [, /normalize] [, /calib] [, /perang] [,/no_masking] [, /approximated_slit])

Return Value

Structure with data and header information. The structure is designed to mimic the structure created by the Hinode/EIS routine EIS_GETWINDATA. An example of the tags for one data-set is given below. Please see the 'Programming notes' section for notable differences with the EIS version.

    ** Structure <23e2008>, 27 tags, length=12791848, data length=12791811, refs=1:
       FILENAME        STRING    'solo_L1_spice-n-sit-db_20210623T132924744_V01.fits'
       LINE_ID         STRING    'WINDOW2_73.06'
       INT             DOUBLE    Array[32, 128, 192]
       ERR             DOUBLE    Array[32, 128, 192]
       WVL             DOUBLE    Array[32]
       DATA_QUALITY    BYTE      Array[32]
       EXPOSURE_TIME   DOUBLE    Array[128]
       TIME            DOUBLE    Array[128]
       TIME_CCSDS      STRING    Array[128]
       NL              LONG                32
       NX              LONG               128
       NY              LONG               192
       SCALE           DOUBLE    Array[2]
       SOLAR_X         DOUBLE    Array[128]
       SOLAR_Y         DOUBLE    Array[192]
       XCEN            DOUBLE      -0.00099686645
       YCEN            DOUBLE       1.2970974e-05
       UNITS           STRING    'adu'
       MISSING         LONG             32767
       IWIN            INT              2
       SIT_AND_STARE   BYTE         1
       WAVE_CORR_SET   INT              0
       WAVE_CORR       DOUBLE    Array[128, 192]
       WAVE_CORR_TILT  DOUBLE    Array[192]
       WAVE_CORR_T     DOUBLE    Array[128]
       TIME_STAMP      STRING    'Fri Feb  7 10:24:15 2020'
       HDR             STRUCT    -> <Anonymous> Array[1]

Arguments

data

A SPICE_DATA object or a string containing the path to a SPICE FITS file.

Keywords

input_iwin

Scalar with the index of the desired window. This can also be a wavelength or a string that matches one of the window ids.

wrange

A 2-element array specifying a wavelength range to be returned. It is intended for use with full-CCD data-sets for which only a specific wavelength range is required. It can also significantly speed up SPICE_GETWINDATA for large, full-CCD rasters.

ixrange

A 2-element array specifying a X-pixel range to be returned. This is principally intended for speeding up the routine when working with long sit-and-stare sequences. For sit-and-stare this range will be applied to the time dimension.

keep_sat

Ignored for now. If set, then saturated data are retained rather than set to the missing value. (This can be useful when making pretty pictures.)

clean

If set, then the NEW_SPIKE routine is used to clean the data from cosmic rays.

verbose

If set, then information about how long the routine takes to run is printed to the screen.

quiet

If set, then no information messages will be printed.

normalize

If set, then the intensity is divided by the exposure time.

calib

Ignored for now. If set, then intensities (and errors) will be returned in calibrated units of erg/cm2/s/sr/pixel.

perang

If set, the intensities are returned in units of erg/cm2/s/sr/Angstrom. To be used in conjunction with /CALIB; ignored otherwise.

no_masking

If set, then SPICE_DATA::mask_regions_outside_slit will NOT be called on the data. This procedure masks any y regions in a narrow slit data cube that don't contain slit data, i.e. pixels with contributions from parts of the detector that lie above/below the dumbbells, in the gap between the slit ends and the dumbbells, and the dumbbell regions themselves. The masking procedure is not called for wide-slit observations or if window_index corresponds to a regular dumbbell extension or if NOLOAD has been set.

approximated_slit

If set, routine uses a fixed (conservative) value for the slit range, i.e. does not estimate the slit length based on the position of the dumbbells. The keyword is ignored if NO_MASKING is set.

Examples

Get window containing Si IV 1393 line:

IDL> wd = spice_getwindata(file,1393)

Programming Notes

  • The level-2 IRIS files return intensities in "corrected DN" units, compared to EIS for which the intensities are in erg/cm2/s/sr/angstrom. By default spice_getwindata does not apply the radiometric calibration, and so it returns the intensity array in corrected DN units. For calibrated units, see the keywords /CALIB and /PERANG.
  • The WAVE_CORR tags are not used by IRIS, but are retained to ensure compatibility with the EIS IDL routines.
  • The WINDATA.HDR structure is just a copy of the SPICE header structure, but a few extra tags have been added to ensure compatibility with the EIS routines. Perhaps the most significant is SLIT_IND, which takes a value of 5 (the EIS slits had values between 0 and 3, and IRIS had 4).
  • The SOLAR_X and SOLAR_Y tags lose their meaning when the roll angle is not 0 degrees. In this case Y is interpreted as arcsec along the slit, with zero at the bottom of the slit. X is interpreted as arcsec perpendicular to the slit, with the initial position set to zero. Might change that behaviour.
  • The tag SIT_N_STARE has been added to flag sit-and-stare data (0-no, 1-yes). This tag was not present for EIS.
  • The tag 'data_quality' is just set to zeros.

TO DO:

  • get numbers for gain, yield and dark current noise. The gain is the number of electrons released in the detector that yield 1 DN. Note that dark_unc is specified in DN. The quantum yield is the number of electrons released by a single incident photon on the detector.
  • calibration procedure to be run when /calib has been set
  • hot to handle axes for rolled cases?
⚠️ **GitHub.com Fallback** ⚠️