io

io

Classes

Name Description
EUV_CDF EUV NetCDF reader class.
FUV_CDF FUV NetCDF reader class.
HSP Class for reading NetCDF UVIS HSP data files.
PDSReader Class to support the correct binary reading of the PDS DAT files.
UVPDS Class to manage a PDS product.

EUV_CDF

io.EUV_CDF(fname, freq='1s')

EUV NetCDF reader class.

Methods

Name Description
save_spectrums plotting spectrums over time summing all pixels
save_spectrums
io.EUV_CDF.save_spectrums()

plotting spectrums over time summing all pixels

FUV_CDF

io.FUV_CDF(fname, freq='1s')

FUV NetCDF reader class.

Parameters

fname: str or pathlib.Path Path to file to read freq: str String indicating the sampling frequency, e.g. ‘1s’, ‘2s’

Examples

fuv = FUV_CDF(‘path’, ‘1s’)

Methods

Name Description
save_spectrums plotting spectrums over time summing all pixels
save_spectrums
io.FUV_CDF.save_spectrums()

plotting spectrums over time summing all pixels

HSP

io.HSP(fname, freq)

Class for reading NetCDF UVIS HSP data files.

Parameters

fname: {str, pathlib.Path} Path to file to read freq: str String indicating the sampling frequency, e.g. ‘1ms’, ‘2ms’

Examples

hsp = hsp(‘path’, ‘1ms’)

Attributes

Name Description
cleaned_data_copy Filtering out 0.5, 99.5 % outliers.
times HSP times are different in that one needs to stack all rows.

PDSReader

io.PDSReader(datapath)

Class to support the correct binary reading of the PDS DAT files.

This class focuses on reading the DAT files. For a more complete reader, look below at the UVPDS

UVPDS

io.UVPDS(uvis_id, skip_download=False)

Class to manage a PDS product.

One PDS product has a PRODUCT_ID like FUV2003_358_05_59 and hence provides either EUV or FUV data.

If the calibration matrix PDS file is available, the wavelengths are being read from the calmatrix label file, correctly binned for BAND_BIN, if required, otherwise default wavelengths are being assumed, as given per UVIS manual.

See UVISOBS for a class that manages all data related to one observation, i.e. both EUV and FUV, and also HDAC and HSP data.

Attributes

Name Description
calibrated Following the instructions in self.caliblabel.QUBE.DESCRIPTION
n_integrations last item of the CORE_ITEMS label field is number of integrations.

Methods

Name Description
plot Create default hvplot for the data.
set_cal_wavelengths Retrieve the wavelengths for this observation, in nm, using cal_matrix
set_default_wavelengths If calibration matrix is not present, set to default wavelengths.
plot
io.UVPDS.plot(
    precise=False,
    percentiles=(0.5, 99.5),
    clim=None,
    cmap='viridis',
    calibrated=False,
)

Create default hvplot for the data.

Due to non-equidistant wavelengths, one should use the quadmesh plot, but that is less performant than a constant raster and creates an annoying aliasing structure when zoomed out (however correct, though).

I am investigating if that aliasing can be avoided, it might come from gridlines. So I leave it to the user to switch to the raster plot using the precise switch.

set_cal_wavelengths
io.UVPDS.set_cal_wavelengths()

Retrieve the wavelengths for this observation, in nm, using cal_matrix

Sets wavelengths to np.array of np.double values in nanometers (nm) The wavelengths for each spectral bin of the QUBE observation

set_default_wavelengths
io.UVPDS.set_default_wavelengths()

If calibration matrix is not present, set to default wavelengths.