Data levels

A data level labels how far a file has been processed through the reduction pipeline. It is the first argument to almost every query method (e.g. query_datetime('l2', ...)) and it picks which underlying table you search, so getting it right is the first decision you make.

Frame it as one question: how processed do you need the data to be?

Level

What it contains

Who wants it

L0

Raw 2D detector frames, straight off the CCD

Only if you run your own reduction

L1

Calibrated, wavelength-solved 1D extracted spectra

Custom spectral / line / activity analysis

L2

RV-ready products: the CCF and the radial velocity

Most science users

eng (engineering level)

Engineering / calibration frames

Instrument debugging only

Levels map to tables

Each archive maps its data_level strings to its own server tables (for example, NEID’s 'l2' is the table neidl2). You pass the level string, never the table name; the package translates for you, and archive.data_levels lists the levels an archive offers.

The solar variants

Archives with a solar feed mirror the same hierarchy for Sun-as-a-star data, with levels named solarl0, solarl1, solarl2, and so on. An archive may offer only some levels; each archive’s page has its table of levels.

Practical default

Start with the level that holds the radial velocities — 'l2', or 'solarl2' for solar data — since that is what most users came for. Drop to 'l1' only when you want the spectra themselves, and to 'l0' only when you intend to reduce raw frames yourself.

Once you have picked a level, see Choosing a query for picking the query method.