Quickstart Guide

The PythonLevel1Services package reads Osiris Level 1 data from HDF files stored on our servers, and stores the data as xarray Dataset data structures. We currently have data on the Odin satellite’s attitude, data from the OSIRIS optical spectrograph (OS), housekeeping data on the instrument status, data from the OSIRIS three channel infrared detector (IRI) and ECMWF data on atmospheric conditions. These data products are stored in HDF file format for several thousand orbits.

The PythonLevel1Services package is intended to be a pythonic interface to this data, while providing powerful functionality to assist in the process of data analysis. There are two user modules within the package. These are:

  • osirisl1services.readlevel1

  • osirisl1services.services

The package requires the environment variable ODINORBITDIR to be set to the folder that points to the Level 1 orbital data, e.g. \UTLS\OsirisDataProducts\Level1\orbit

To use the RSAS correction it is also necessary to specify the ODINFLIGHTDIR environment variable, e.g., \UTLSOsirisDataProductsOsirisConfigurationDatabaseflightduration

Reading the Data

The python module within PythonLevel1Services that provides a user interface to the level 1 data products is osirisl1services.readlevel1. The module contains several methods, each designed to read data from the level 1 HDF/Onyx files and store it in a usable data structure. We implement xarray’s Dataset object as this data structure.

Each of these methods takes a readlevel1.Orbit object as its first positional argument. The readlevel1.Orbit class handles the retrieval of the desired HDF file from the server. The output of every method is an xarray Dataset. For example, when opening an attitude file,

from osirisl1services.readlevel1 import open_level1_attitude

att = open_level1_attitude(orbit=6432, load_pointing=True)

Most file opening methods take optional positional arguments which, if set True, load additional data. In the case shown above, we also load pointing data which is used to calculate the instrument’s line of sight and tangent position information.

Using the Services

Additional data analysis functionality is provided by the osirisl1services.services module within the python package. This module contains methods designed to give the user more information and control over the level 1 data. The additional functionality provided by this module includes the calculation of the satellite position, look vectors, latitude, longitude, altitude, and solar zenith angle of tangent points. There is also a method that returns the set of scans in an orbit which satisfy a maximum solar zenith angle. For example,

from osirisl1services.readlevel1 import open_level1_spectrograph
from osirisl1services.services import Level1Services

spect = open_level1_spectrograph(scanno=6432012)

print(spect.l1.latitude)
print(spect.l1.altitude)
print(spect.l1.sza)

For more examples see Examples.