Read Level 1

Code to load the OSIRIS Level 1 data from the standard HDF4 / onyx files.

The methods open_level1_*(orbit: Orbit) all perform the same basic function of opening an OSIRIS Level 1 HDF4 data file, reading the data and organizing it into an xarray dataset for convenience / usability.

There are optional parameters to load audit / extra data on some of the methods.

Module osirisl1services.readlevel1

class readlevel1.Orbit(value: int)[source]

L1 Orbit class with directory helpers.

Parameters

Orbit (int) – the orbit number

readlevel1.open_level1_attitude(orbit: int, scanno: int = None, load_pointing=False, load_ssc_los=False) Dataset[source]

Load the OSIRIS Level 1 attitude data for an orbit (or scan). Optinally load the pointing and SSC’s LOS data.

Parameters
  • orbit (Orbit) – The orbit class handling the data retrieval, specified by orbit number

  • scanno (int) – The scan number to limit the data to, default is None

  • load_pointing (bool) – If True, pointing data is included in the dataset

  • load_ssc_los (bool) – If True, SSC’s line of sight data is included in the dataset

The returned data structure contains:

<xarray.Dataset> Dimensions: (Q: 4, ScanNumber: 66, mjd: 5464, xyz: 3) Coordinates:

  • mjd (mjd) float64 5.239e+04 5.239e+04 5.239e+04 …

  • xyz (xyz) <U1 ‘x’ ‘y’ ‘z’

  • ScanNumber (ScanNumber) int64 6432000 6432001 6432002 6432003 …

Data variables:
mjdorbitstate (mjd) float64 5.239e+04 5.239e+04 5.239e+04 …

** the mjd used to compute the orbit state parameters (position, velocity) **

stw (mjd) int64 598896805 598896822 598896839 …

** satellite time word **

position (mjd, xyz) float64 -4.252e+06 5.54e+06 1.196e+03 …

** satellite position in ECI coordinate system **

velocity (mjd, xyz) float64 823.0 615.0 7.485e+03 828.0 …

** satellite velocity in ECI coordinate system **

version (mjd) float64 17.1 17.1 17.1 17.1 17.1 17.1 17.1 …

** The current version of satellite software? **

StartMJD (ScanNumber) float64 5.239e+04 5.239e+04 5.239e+04 …

** Start time of each scan in modified Julian date **

EndMJD (ScanNumber) float64 5.239e+04 5.239e+04 5.239e+04 …

** End time of each scan in modified Julian date **

ACSState (ScanNumber) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

** The current state of the ACS system. 1. limb scanning 2. limb staring 3. other **

MinAltitude (ScanNumber) float64 14.43 14.41 14.41 14.4 14.4 …

MaxAltitude (ScanNumber) float64 76.24 76.24 76.26 76.26 76.31 …

** min / max altitude of the control frame, not either of the instruments

ScanRate (ScanNumber) float64 0.7095 0.7098 0.7099 0.71 …

** km / sec

Direction (ScanNumber) int64 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 …

** 1. Up 2. Down **

If the pointing data is loaded, the returned data structure also contains:
Coordinates:
  • 1ijk (1ijk) <U1 ‘1’ ‘i’ ‘j’ ‘k’

Data variables:

Qtarget (mjd, 1ijk) float64 0.7487 0.335 -0.5648 0.0901 0.7488 …

Qachieved (mjd, 1ijk) float64 -0.7487 -0.335 0.5649 -0.0902 -0.7488 …

Qerror (mjd, 1ijk) float64 15.0 5.0 3.0 0.0 15.0 6.0 3.0 0.0 …

If the SSC line of sight data is loaded, the returned data structure also contains:
Data variables:
osiris_los_latitude (mjd) float64 23.72 23.78 23.82 23.86 23.91 23.95 …

** osiris latitude data computed by SSC (differs from level1services) **

osiris_los_longitude (mjd) float64 134.9 134.9 134.9 134.9 134.9 134.9 …

** osiris longitude data computed by SSC (differs from level1 services) **

osiris_los_height (mjd) float64 7.989 8.956 9.889 10.76 11.59 12.4 …

** osiris altitude data computed by SSC (differs from level1 services) **

For example:

>>> attitude = open_level1_attitude(orbit=6432)
readlevel1.open_level1_housekeeping(orbit: int) Dataset[source]

Load the OSIRIS Level 1 housekeeping data for an orbit.

Parameters
  • orbit (Orbit) – The orbit id to load data from

  • scanno (int) – The scan number to limit data to, if given

The returned data structure contains:

<xarray.Dataset> Dimensions: (dettempmjd: 1940, mjd: 90, statmjd: 39) Coordinates:

  • mjd (mjd) float64 5.239e+04 5.239e+04 5.239e+04 …

  • statmjd (statmjd) float64 5.239e+04 5.239e+04 5.239e+04 …

  • dettempmjd (dettempmjd) float64 5.239e+04 5.239e+04 …

Data variables:

stw (mjd) int64 598897088 598898128 598899168 … plus_28v (mjd) float64 30.14 30.16 30.11 30.16 30.16 … milliamps (mjd) float64 569.3 565.0 575.7 568.2 501.1 … plus_5v (mjd) float64 4.947 4.928 4.91 4.91 4.928 4.91 … plus_12v (mjd) float64 11.81 11.85 11.85 11.81 11.85 … plus_24v (mjd) float64 23.53 23.72 23.53 23.53 23.53 … plus_36v (mjd) float64 35.6 35.47 35.6 35.33 35.47 35.6 … neg_5v (mjd) float64 -5.002 -4.984 -4.984 -5.002 -5.002 … neg_12v (mjd) float64 -12.08 -12.08 -11.99 -12.03 -11.99 … gnd_mux1 (mjd) float64 0.7912 0.8029 0.7971 0.7853 0.7971 … gnd_mux2 (mjd) float64 0.0119 0.01776 0.0119 0.0119 … CPU (mjd) float64 49.53 48.79 49.16 49.16 48.79 … PS1 (mjd) float64 65.17 65.83 67.2 65.17 65.83 65.83 … PS2 (mjd) float64 67.92 68.65 67.92 67.2 67.2 68.65 … IRStrap (mjd) float64 -13.5 -13.34 -13.5 -13.5 -13.5 … OSStrap (mjd) float64 -18.43 -18.36 -18.43 -18.36 -18.36 … IFPlate (mjd) float64 26.85 26.85 26.85 26.68 27.03 … Optics (mjd) float64 22.83 22.83 23.15 22.83 22.99 … IR1 (mjd) float64 -13.17 -13.09 -12.84 -13.0 -13.09 … IR2 (mjd) float64 -17.29 -17.51 -17.35 -17.35 -17.43 … IR3 (mjd) float64 -16.4 -16.4 -16.31 -16.24 -16.4 … CCD (mjd) float64 -12.54 -12.54 -12.62 -12.46 -12.46 … RadiatorPlate (mjd) float64 -30.76 -30.69 -30.69 -30.69 -30.69 … OS_TecIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … OS_TecDutyCycle (mjd) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … IR_TecIsOn (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … IR_TecDutyCycle (mjd) float64 74.74 74.74 74.74 74.74 74.74 … CCD_HtrIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IR1_HtrIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IR2_HtrIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IR3_HtrIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … CCD_HtrSetPoint (mjd) int64 14179 14179 14179 14179 14179 14179 … IR1_HtrSetPoint (mjd) int64 15360 15360 15360 15360 15360 15360 … IR2_HtrSetPoint (mjd) int64 15360 15360 15360 15360 15360 15360 … IR3_HtrSetPoint (mjd) int64 15360 15360 15360 15360 15360 15360 … IR_State (mjd) int64 10 9 10 10 10 10 10 10 10 10 10 10 … OS_State (mjd) int64 10 10 10 10 10 10 10 10 10 10 10 10 … IR_SciProg (mjd) int64 34062 34062 34062 34062 34062 34062 … OS_SciProg (mjd) int64 21 21 21 21 21 21 21 21 21 21 21 21 … SPM_IsBusy (mjd) int64 0 0 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 … TargetIndex (mjd) int64 57879 58935 59727 57879 59463 57615 … LastError (mjd) int64 286 286 286 286 286 286 286 286 286 … NumErrors (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … OSShutterPos (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IRShutterPos (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IRShutterDriverIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … OSShutterDriverIsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IRLamp1IsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … IRLamp2IsOn (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … SEUTriggerOccured (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … SEUDetectorIsActive (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … SEUCounter (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … FifoStatus (mjd) int64 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 … FifoOverrun (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … FormatsAreLost (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … MassMemoryIsAvailable (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … MassMemoryCounter (mjd) int64 6903 19004 18865 18648 18467 18276 … SciWordsPerFormat (mjd) int64 156 156 156 156 156 156 156 156 156 … DataIsPendingInSciBuf (mjd) int64 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … UpperFlashOk (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … LowerFlashOk (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … FlashLoadOk (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … InOrbitEnabled (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … VerboseMessagesEnabled (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … TraceEnabled (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … UsingACDC1 (mjd) int64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … UsingACDC2 (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … BootSource (mjd) int64 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 … fswrev (mjd) int64 50 50 50 50 50 50 50 50 50 50 50 50 … ROM_Checksum (mjd) int64 4164 16452 16452 16452 16452 16452 … LowerFlash_Checksum (mjd) int64 227357 247837 202781 100381 145437 … UpperFlash_Checksum (mjd) int64 177071 164783 156591 144303 132015 … osiris_stw (mjd) int64 1209092 1210132 1211172 1212212 … LastCommand (mjd) int64 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 … NumCommandWordsPending (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … NumBadCommands (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … NumMarginalCommands (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … NumLostCommandwords (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … NumTotalCommands (mjd) int64 49 49 49 49 49 49 49 49 49 49 49 49 … statstw (statmjd) int64 598897404 598899804 598902204 … statsnumpoints (statmjd) int64 2400 2400 2400 2400 2400 2400 … plus5v_minval (statmjd) float64 4.883 4.852 4.852 4.881 4.853 … plus5v_maxval (statmjd) float64 5.041 5.005 5.004 5.022 5.022 … plus5v_average (statmjd) float64 4.934 4.933 4.933 4.934 4.934 … plus12v_minval (statmjd) float64 11.73 11.73 11.72 11.73 11.72 … plus12v_maxval (statmjd) float64 12.04 12.01 12.0 11.99 12.01 … plus12v_average (statmjd) float64 11.85 11.85 11.85 11.85 11.85 … plus24v_minval (statmjd) float64 23.34 23.34 23.36 23.43 23.25 … plus24v_maxval (statmjd) float64 24.08 24.1 24.1 24.01 24.19 … plus24v_average (statmjd) float64 23.66 23.65 23.66 23.66 23.66 … plus36v_minval (statmjd) float64 34.95 34.95 34.95 35.09 34.92 … plus36v_maxval (statmjd) float64 36.14 36.04 36.01 36.14 36.01 … plus36v_average (statmjd) float64 35.5 35.5 35.5 35.5 35.5 35.51 … neg5v_minval (statmjd) float64 -5.041 -5.037 -5.055 -5.055 … neg5v_maxval (statmjd) float64 -4.913 -4.927 -4.908 -4.89 … neg5v_average (statmjd) float64 -4.979 -4.979 -4.979 -4.979 … neg12v_minval (statmjd) float64 -12.2 -12.14 -12.14 -12.17 … neg12v_maxval (statmjd) float64 -11.82 -11.87 -11.84 -11.87 … neg12v_average (statmjd) float64 -12.01 -12.01 -12.01 -12.01 … gnd_mux1_minval (statmjd) float64 0.7703 0.7703 0.7659 0.7736 … gnd_mux1_maxval (statmjd) float64 0.822 0.8322 0.8322 0.8234 … gnd_mux1_average (statmjd) float64 0.7982 0.7985 0.7993 0.7996 … gnd_mux2_minval (statmjd) float64 -0.01044 -0.001648 -0.01044 … gnd_mux2_maxval (statmjd) float64 0.03534 0.03021 0.0412 0.03534 … gnd_mux2_average (statmjd) float64 0.0141 0.0141 0.0141 0.0141 … CPU_minval (statmjd) float64 47.6 47.86 47.77 48.03 48.06 … CPU_maxval (statmjd) float64 50.29 50.29 51.07 50.68 50.36 … CPU_average (statmjd) float64 49.09 49.16 49.2 49.27 49.3 … PS1_minval (statmjd) float64 63.23 63.08 63.38 63.54 63.38 … PS1_maxval (statmjd) float64 68.1 68.01 69.21 68.65 67.92 … PS1_average (statmjd) float64 65.83 65.83 65.83 65.83 65.83 … PS2_minval (statmjd) float64 66.21 65.79 65.29 65.79 65.12 … PS2_maxval (statmjd) float64 73.05 71.37 71.42 70.97 71.27 … PS2_average (statmjd) float64 68.65 68.7 68.65 68.7 68.7 … IRStrap_minval (statmjd) float64 -13.77 -13.73 -13.83 -13.77 … IRStrap_maxval (statmjd) float64 -13.01 -13.09 -13.17 -13.17 … IRStrap_average (statmjd) float64 -13.42 -13.42 -13.43 -13.43 … OSStrap_minval (statmjd) float64 -18.63 -18.61 -18.64 -18.68 … OSStrap_maxval (statmjd) float64 -18.04 -18.1 -18.13 -18.13 … OSStrap_average (statmjd) float64 -18.36 -18.37 -18.37 -18.36 … IFPlate_minval (statmjd) float64 26.23 26.32 26.19 26.49 26.23 … IFPlate_maxval (statmjd) float64 27.65 27.67 27.44 27.57 27.57 … IFPlate_average (statmjd) float64 26.93 26.93 26.93 26.94 26.95 … Optics_minval (statmjd) float64 22.38 22.46 22.34 22.34 22.5 … Optics_maxval (statmjd) float64 23.47 23.49 23.5 23.63 23.47 … Optics_average (statmjd) float64 22.95 22.94 22.93 22.93 22.93 … IR1_minval (statmjd) float64 -13.35 -13.35 -13.42 -13.43 … IR1_maxval (statmjd) float64 -12.74 -12.72 -12.74 -12.75 … IR1_average (statmjd) float64 -13.02 -13.05 -13.07 -13.08 … IR2_minval (statmjd) float64 -17.69 -17.6 -17.72 -17.67 … IR2_maxval (statmjd) float64 -17.05 -17.1 -17.12 -17.12 … IR2_average (statmjd) float64 -17.35 -17.37 -17.39 -17.41 … IR3_minval (statmjd) float64 -16.57 -16.63 -16.65 -16.63 … IR3_maxval (statmjd) float64 -16.03 -15.99 -15.99 -16.07 … IR3_average (statmjd) float64 -16.29 -16.31 -16.33 -16.34 … CCD_minval (statmjd) float64 -12.79 -12.81 -12.89 -12.89 … CCD_maxval (statmjd) float64 -12.29 -12.22 -12.29 -12.29 … CCD_average (statmjd) float64 -12.53 -12.55 -12.57 -12.57 … dettempstw (dettempmjd) int64 598896850 598896897 598896945 … dettempCCD_T (dettempmjd) float64 -12.52 -12.52 -12.53 -12.53 … dettempIR1_T (dettempmjd) float64 -13.01 -13.02 -13.02 -13.01 … dettempIR2_T (dettempmjd) float64 -17.33 -17.34 -17.35 -17.34 … dettempIR3_T (dettempmjd) float64 -16.26 -16.27 -16.27 -16.3 …

For example:

>>> housekeeping = open_level1_housekeeping(orbit=6432)
readlevel1.open_level1_spectrograph(scanno: int, valid=True, load_radiation_hits=True, load_audit=False, load_psf=False, apply_rsas=False) Dataset[source]

Load the OSIRIS Level 1 Spectrograph data for a scan.

Parameters
  • scanno (int) – The scan number to load data for

  • load_radiation_hits (bool) – If True, loads radiation hit file and invalidates radiated data.

  • load_audit (bool) – If True, includes audit data in returned dataset

  • valid (bool) – If True, nans out data points that do not meet specifications

  • load_psf (bool) – If true, the dataset returns the wavelengths shifted by the shift parameter returned by :class:PointSpreadFunctionFit. Also returns the fwhm for the scan.

  • apply_rsas (bool) – If True or ‘angular’, the pointing is shifted by a precomputed angular rsas value. If ‘distance’, the pointing is shifted by a precomputed tangent height offset (older method). If False (default), the pointing is not shifted.

The returned data structure contains:

<xarray.Dataset> Dimensions: (mjd: 24, pixel: 1353) Coordinates:

  • pixel (pixel) int64 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …

  • mjd (mjd) float64 5.239e+04 5.239e+04 5.239e+04 …

  • stw (mjd) int32 598913554 598913602 598913650 598913697 …

Data variables:

exposureTime (mjd) float64 0.0334 0.0336 0.0336 0.0334 0.0334 … temperature (mjd) float64 -12.52 -12.57 -12.46 -12.54 -12.45 … tempavg (mjd) float64 -12.53 -12.48 -12.51 -12.47 -12.49 … opticstemp (mjd) float64 22.83 22.83 22.83 22.83 22.83 22.83 … straptemp (mjd) float64 -18.22 -18.22 -18.21 -18.21 -18.21 … mode (mjd) int32 4094 4094 4094 4094 4094 4094 4094 4094 …

** The unique id code of the OSIRIS imaging mode used to collect this data. **

scienceprog (mjd) int32 21 21 21 21 21 21 21 21 21 21 21 21 21 …

** The unique id code of the OSIRIS science mode used to collect this data. **

roe (mjd) int32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** The configuration code of the OSIRIS OS CCD readout-electronics. The pre-launch values are

defined as follows:

0 = 32x1353. No on-chip binning. 1 = 16x1353. On-chip binning of 2 reduces 32 rows to 16. 2 = 8x1353. On-chip binning of 4 reduces 32 rows to 8. 3 = 286x1353. Full CCD including storage area. Used for engineering. 4 = 143x1353. CCD imaging area. Used for engineering. 7 = 2x1353. Obsolete and unsupported mode. **

shuttermode (mjd) int32 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 …
** Indicates the mode of the OSIRIS OS shutter

0 = Close, Open, Close 1 = Closed 2 = Open **

spm_baserow (mjd) int32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** The base row used by OSIRIS in the Science Processing Module to bin the data off-chip but before

transmission to ground **

spm_numrows (mjd) int32 32 32 32 32 32 32 32 32 32 32 32 32 32 …

** The number of rows, spatially binned in the OSIRIS Science Processing Module. **

spm_processingMode (mjd) int32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …
** The OSIRIS Science Processing Mode. The valid values are:

0 = not binned (1353xn) 1 = spatial binning (1353x1) 2 = McDade & Stegman binning (849x1) 3 = Llewellyn & Evans binning (11x32) **

targetIndex (mjd) int32 57615 57615 57615 57615 57615 57615 …

** The real-time ACDC target index at the start of the exposure. **

exceptions (mjd) int32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** 32 bits of flags used to determine various exceptions that have occurred in processing. The most

significant bit, bit 31, indicates severity. If bit 31 is set then the record has a serious problem and is probably unusable. If bit 31 is clear then the record has exceptions but may be usable depending upon context. All bit fields (except bit 31) are currently t.b.d. All definitions require consultation with level1 and level 2 OS processing groups. **

processingflags (mjd) int32 15 15 15 15 15 15 15 15 15 15 15 15 15 …
** 32 bits of flags used to indicate which processing steps have been applied to the data.

For example data collected with the shutter closed do not have the dark current removed while all other data do have the dark current removed. All bit fields are currently t.b.d. **

numcolumns (mjd) int32 1353 1353 1353 1353 1353 1353 1353 1353 … numrows (mjd) int32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 … data (mjd, pixel) float64 9.979e+10 1.286e+11 1.202e+11 … error (mjd, pixel) float64 3.002e+10 5.304e+10 3.555e+10 … flags (mjd, pixel) int32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …

** Values of 0 mean the data is good. **

wavelength (pixel) float64 275.0 275.4 275.7 276.1 276.5 276.9 …

** Wavelengths that match up to spectrograph pixels **

fwhm (pixel) float64 0.7763 0.7799 0.7834 0.787 0.7905 …

** Full Width Half Max of the spectrograph point spread function **

If the audit data is loaded, the returned data structure also contains:
Coordinates:
  • store (store) int64 0 1 2 3

Data variables:
audit (mjd, store) float64 5.369e+04 5.509e+04 0.0 0.0 …
** Level 1, Audit, store=1
1.Less than 53675.0 (pre 2005-11-01)

Original software decoding.

  1. 53675.0 (2005-11-01)

Fixed mjdfield to reflect the changes at Level 0.

  1. 53745.0 (2006-01-10)

Applied Vega Absolute Calibration to spectrograph data. **

If the point spread function is calculated, the returned data structure also contains:
Data variables:
wavelength_error float64 0.002607

** Error in pixel / wavelength registration **

fwhm_error float64 0.005531

** Error in Full Width Half Max of the spectrograph point spread function **

For example:

>>> spectrograph = open_level1_spectrograph(scanno=6432012)

Or to get the psf adjusted wavelength and fwhm:

>>> spectrograph = open_level1_spectrograph(scanno=6432012, load_psf=True)

Or to get the raw spectrograph data:

>>> spectrograph = open_level1_spectrograph(scanno=6432012, valid=False)
readlevel1.open_level1_ir(orbit: int, channel: int, valid=True, load_audit=False) Dataset[source]

Load the OSIRIS Level 1 IR data for an orbit and channel. Optinally load the audit.

Parameters
  • channel (int) – IR channel number to load data from

  • scanno (int) – The scan number to limit the data to, default is None

  • valid (bool) – If True, returns the data masked to give only data points without exceptions or flags set

  • load_audit (bool) – If True, includes audit data in returned dataset

The returned data structure contains:

<xarray.Dataset> Dimensions: (mjd: 43, pixel: 128) Coordinates:

  • mjd (mjd) float64 5.239e+04 5.239e+04 5.239e+04 5.239e+04 …

  • pixel (pixel) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 …

Data variables:

stw (mjd) int32 598913516 598913548 598913579 598913610 … exposureTime (mjd) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 … temperature (mjd) float64 -13.09 -12.97 -13.08 -13.21 -13.09 -13.24 … tempavg (mjd) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … mode (mjd) int32 1294 1294 1294 1294 1294 1294 1294 1294 …

** The unique id code of the OSIRIS imaging mode used to collect this data. **

scienceprog (mjd) int32 4092 4092 4092 4092 4092 4092 4092 4092 …

** The unique id code of the OSIRIS science mode used to collect this data. **

shutter (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** Indicates the status of the OSIRIS IR shutter
  1. Open

  2. Closed **

lamp1 (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** Indicates the status of the first OSIRIS IR lamp
  1. Off

  2. On **

lamp2 (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** Indicates the status of the second OSIRIS IR lamp
  1. Off

  2. On **

targetIndex (mjd) int32 57615 57615 57615 57615 57615 57615 57615 …

** The real-time ACDC target index at the start of the exposure. **

exceptions (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** 32 bits of flags used to determine various exceptions that have occurred in processing. The most

significant bit, bit 31, indicates severity. If bit 31 is set then the record has a serious problem and is probably unusable. If bit 31 is clear then the record has exceptions but may be usable depending upon context. All bit fields (except bit 31) are currently t.b.d. All definitions require consultation with level1 and level 2 OS processing groups. **

processingflags (mjd) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …
** 32 bits of flags used to indicate which processing steps have been applied to the data.

For example data collected with the shutter closed do not have the dark current removed while all other data do have the dark current removed. All bit fields are currently t.b.d. **

data (mjd, pixel) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … error (mjd, pixel) float64 2.3e+10 2.3e+10 2.3e+10 2.3e+10 … flags (mjd, pixel) int64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …

** Values of 0 mean the data is good. **

If the audit data is loaded, the returned data structure also contains:

Coordinates:
  • store (store) int64 0 1 2 3

Data variables:
audit (mjd, store) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 …
** Level 1, Audit, store=1
1.Less than 53675.0 (pre 2005-11-01)

Original software decoding.

  1. 53675.0 (2005-11-01)

Fixed mjdfield to reflect the changes at Level 0.

  1. 53745.0 (2006-01-10)

Applied Vega Absolute Calibration to spectrograph data. **

For example:

>>> ir = open_level1_ir(orbit=6432, channel=1)

Or if you only want the raw data:

>>> ir_raw = open_level1_ir(orbit=6432, channel=1, valid=False)
readlevel1.open_level1_ecmwf(scanno: int) Dataset[source]

Load the OSIRIS Level 1 ECMWF data for a scan.

Parameters

scanno (int) – Scan number for the data

The returned data structure contains:

<xarray.Dataset> Dimensions: (Altitude: 201)

Coordinates:
  • ScanNumber int32 6432012

  • Altitude (Altitude) float64 0.0 500.0 1e+03 1.5e+03 2e+03 2.5e+03 …

Data variables:

density (ScanNumber, Altitude) float64 2.839e+19 2.652e+19 …..

** Air Density **

temperature (ScanNumber, Altitude) float64 261.1 260.3 261.4 261.7 …

** Air Temperature **

For example:

>>> osiris_ecmwf = open_level1_ecmwf(6432012)