NEID

Level 2

class rvdata.instruments.neid.level2.NEIDRV2

Bases: RV2

Read a NEID Level 2 file and convert it to the EPRV L2 standard format Python object.

This class extends the RV2 base class to handle the reading of NEID Level 2 files and converts them into a standardized EPRV Level 2 data format. Relevant extensions are taken from the NEID FITS file and stored as attributes of the data standard Python object.

_read(hdul: fits.HDUList) None

Reads the input FITS HDU list, extracts specific extensions related to the science data for different chips and fibers, and stores them in a standardized format.

The method processes data from different fibers depending on the NEID observation mode. There are three traces (SCI/SKY/CAL) for HR mode and two traces (SCI/SKY) for HE mode.

extensions

A dictionary containing all the created extensions (e.g., INSTRUMENT_HEADER, TRACE1_FLUX, EXPMETER) where the keys are the extension names and the values are the data type (e.g., ImageHDU, BinTableHDU).

Type:

dict

headers

A dictionary containing metadata headers relevant for each extension. These are largely taken from the input NEID FITS file, but some metadata is added in the translator (e.g., the instrument RV era).

Type:

dict

data

A dictionary containing the data entries for each extension. These are largely directly taken from the input NEID FITS file, but some are reorganized (e.g., exposure meter data).

Type:

dict

Notes

To construct an RVData Level 2 object, only a NEID Level 2 FITS file is required. The classmethod from_fits should be used to instantiate the object from these files. The _read method is not intended to be called directly by users.

Example

>>> from rvdata.instruments.neid.level2 import NEIDRV2
>>> hdul = fits.open('neidL2_YYYYMMDDTHHMMSS.fits')
>>> neid_rv2_obj = NEIDRV2.from_fits("neidL2_YYYYMMDDTHHMMSS.fits", instrument="NEID")
>>> neid_rv2_obj.to_fits("neid_L2_standard.fits")