EPRV PRIMARY FITS Header

Noteable Extensions & Header Keywords

The Receipt Extension

The EPRV data standard makes use of a receipt extension, inspired by the KPF data reduction pipeline. The receipt is structured as a pandas.Dateframe table and keeps track of the data process history, so that the information stored by this instance can be reproduced from the original data. Each row of the receipt should capture an individual data processing event.

Translators that generate/modify the content of an EPRV standard data product are expected to also write to the receipt. The receipt is inherited from lower order data products (e.g., L2) to higher order data products (e.g., L3) to preserve the data processing history.

Three string inputs are required: name, any relevant parameters, and a status. The receipt will also automatically fill in additional information, such as the time of execution, code release version, current branch, ect.

The Config Extension

This extension contains a two-column dataframe that stores each line of the input configuration file.

This file is based on the configuration language that the Python ConfigPaser class implements for Python programs. The syntax of the configuration language primarily consists of key = value statements and # comments (or ; comments).

The creation of the key/value pairs, in general, follows the convention as those provided by the ConfigParser classs. As used in the KPF and NEID Pipelines, the keys consists of alphanumerics and underscores (e.g. KPFPIPE_TEST_DATA) while the value is in the form of a string, a number, a boolean, or a list.

PRIMARY Header Keywords

MULTIPLICITY : Keyword in the PRIMARY extension that indicates whether or not an extension can be duplicated to have multiple HDUs based on, e.g., the number of traces.

REQUIRED : Keyword in the PRIMARY extension that indicates whether or not an extension must be present and meaningfully populated in the FITS file in order for the file to be compliant with the EPRV Data Standard.

INSTERA : Tag for the “instrument era” used to track permanent changes to instrument (e.g., 1.1.2). Major changes that result in RV offset are recorded in the first numeral space. Small but permanent changes, (changes in the calibration light sources, etc) that don’t necessarily introduce RV offsets but do represent an ongoing status change in the instrument, are recorded in the second numeral. Anything that could impact the calibration or science outputs goes here. Even smaller changes, or things that you only recognize retrospectively, are recorded in the third numeral.

Note: Each team will place a csv file into the config directory with 1 line per era that has the start and end dates of each timespan. If this file is already maintained elsewhere by the instrument team then link to that instead so the file doesn’t need to be maintained in multiple places.

Keyword Table

Keyword

Description

Units

Data type

Example Value

Default

Required

Comments

INSTRUME

Instrument name

N/A

String

NEID or HARPS

UNKNOWN

Y

ORGANIZA

Organization the data belongs to, for licensing purposes

N/A

String

ESO or CC-0

CC-0

N

ORIGIN

Entity that created this file

N/A

String

ESO or NOIRLab

N

DATALVL

Data Product Base Level

N/A

String

L2 or L3

UNKNOWN

Y

OBSERVER

Observer

N/A

String

Bender

UNKNOWN

Y

PROGRAM

Observing program name

N/A

String

Bender01

UNKNOWN

N*

For data filtering and attribution; default to Unknown if it does not exist

PINAME

Program PI Name

N/A

String

Bender

UNKNOWN

N*

For data filtering and attribution; default to Unknown if it does not exist

OBSTYPE

Observation type

N/A

String

Sci or Eng

UNKNOWN

Y

OBSMODE

Observing mode

N/A

String

HR or HE

N

READMODE

Readout Mode

N/A

String

Fast; Slow; UTR; FowlerN; or CDS

N

BINNING

Binning Mode

N/A

String

1x1 or 2x2

UNKNOWN

Y

NUMTRACE

Iterator for Number of Object related keywords

N/A

UInt

1

UNDEFINED

Y

NUMORDER

Number of Orders

N/A

Uint

172

UNDEFINED

Y

OBJECT

Primary Object Name

N/A

String

HD 10700

UNKNOWN

Y

For multi-object observing this corresponds to center of field object

ALIASES

user defined name(s) for the object, ; separated

N/A

String

Tau Ceti; My Favorite Star

N

FILENAME

Name of the FITS file

N/A

String

InstL#_YYYYMMDDThhmmss.fits

UNKNOWN

Y

DATE

Last modification date/time of this file

UTC

String

2018-04-26T15:53:13.456

UNKNOWN

Y

DATE-OBS

Date/time at start of exposure

UTC

String

2018-04-26T15:53:13.456

UNKNOWN

Y

JD_UTC

Julian date of DATE-OBS

day

Double

2450000

UNDEFINED

Y

EXPTIME

Exposure time

s

Float

29.43664

UNDEFINED

Y

TRACE1 … TRACE#

Type of object in trace 1 to #

N/A

String

SCI or CAL or SKY

UNKNOWN

Y

Can be expanded to multiple keywords indexed 1 to #

CLSRC1 … CLSRC#

Name of calibration source in trace 1 to # [if used]

N/A

String

LFC or Etalon or UrNe

UNKNOWN

Y

Can be expanded to multiple keywords indexed 1 to #

CSRC1 … CSRC#

Catalog source for object in trace 1 to #

N/A

String

GaiaDR2

UNKNOWN

Y

Can be expanded to multiple keywords indexed 1 to #; Should define hierarchy of catalogs

CID1 … CID#

Catalog name/designation for object in trace 1 to #

N/A

String

DR2 NNNNNNNNNNNNNNNNNNN

UNKNOWN

Y

Can be expanded to multiple keywords indexed 1 to #

CRA1 … CRA#

Catalog right ascension for object in trace 1 to #

sexagesimal

String

HH:MM:SS.sss

UNKNOWN

Y

Can be expanded to multiple keywords indexed 1 to #

CDEC1 … CDEC#

Catalog declination for object in trace 1 to #

sexagesimal

String

DD.mm.ss.sss

UNKNOWN

Y

Can be expanded to multiple keywords indexed 1 to #

CEQNX1 … CEQNX#

Catalog equinox for object in trace 1 to #

yr

Float

2000

UNDEFINED

Y

Can be expanded to multiple keywords indexed 1 to #

CEPCH1 … CEPCH#

Catalog epoch for object in trace 1 to #

yr

Float

2015.5

UNDEFINED

Y

Can be expanded to multiple keywords indexed 1 to #

CRV1 … CRV#

Catalog Systemic RV for for object in trace 1 to #

km/s

Float

45.654

UNDEFINED

Y

Can be expanded to multiple keywords indexed 1 to #

CPLX1 … CPLX#

Catalog parallax for object in trace 1 to #

mas

Float

20.45

N

Can be expanded to multiple keywords indexed 1 to #

CPMR1 … CPMR#

Catalog proper motion RA for object in trace 1 to #

arcsec/yr

Float

0.0345

N

Can be expanded to multiple keywords indexed 1 to #

CPMD1 … CPMD#

Catalog proper motion DEC for object in trace 1 to #

arcsec/yr

Float

0.345

N

Can be expanded to multiple keywords indexed 1 to #

CZ1 … CZ#

Catalog Z for for object in trace 1 to #

N/A

Float

0.00000454

N

Can be expanded to multiple keywords indexed 1 to #

CCLRN1 … CCLRN#

Catalog color 1 - color 2 name for object in trace 1 to #

N/A

String

Gaia B-R

N

Can be expanded to multiple keywords indexed 1 to #

CCLR1 … CCLR#

Catalog color 1 - color 2 for object in trace 1 to #

mag

Float

0.47

N

Can be expanded to multiple keywords indexed 1 to #

OBSERVAT

Observatory name

N/A

String

KPNO

UNKNOWN

Y

TELESCOP

Telescope name

N/A

String

ESO-VLT-U1234 WIYN or NEIDSOLARFEED

UNKNOWN

Y

For solar observations - if solarfeed has its own name use that otherwise use an instrument + solarfeed type entry

NUMTEL

Number of telescopes used in the observation

N/A

UInt

1

UNDEFINED

Y

TELEID1 … TELEID#

Labels for telescopes as indexed in TCS keywords

N/A

String

ESO-VLT-U1

UNKNOWN

Y

GEOSYS

Coordinate system for observatory / telesccope location

N/A

String

GRS80

UNKNOWN

Y

OBSLON

Longitude used for barycentric correction

deg

Float

-111.600562

UNDEFINED

Y

Recommend 6 decimal places which is ~1m accuracy

OBSLAT

Latitude used for barycentric correction

deg

Float

31.958092

UNDEFINED

Y

Recommend 6 decimal places which is ~1m accuracy

OBSALT

Altitude used for barycentric correction

meters

Float

2091

UNDEFINED

Y

Recommend 6 decimal places which is ~1m accuracy

OBSGEO-X

Cartesian Coordinate X used for barycentric correction

meters

Float

5327395.964

N

geocentric Cartesian triple incarnation of the traditional lat/lon/alt position on earth

OBSGEO-Y

Cartesian Coordinate Y used for barycentric correction

meters

Float

-1719170.488

N

geocentric Cartesian triple incarnation of the traditional lat/lon/alt position on earth

OBSGEO-Z

Cartesian Coordinate Z used for barycentric correction

meters

Float

3051490.766

N

geocentric Cartesian triple incarnation of the traditional lat/lon/alt position on earth

ISSOLAR

Boolean to indicate if observation is of the sun

N/A

Boolean

FALSE

UNKNOWN

Y

SEEING

Seeing at beginning of exposure

arcsec

Float

1.2

N

AIRMASS

Airmass at center field at beginning of exposure

secZ

Float

1.3

N

TTIME

TCS-data date/time

UTC

String

2018-04-26T15:53:13

N

TEQNX

TCS equinox

yr

String

J2000

N

TEPCH

TCS epoch

yr

String

J2000

N

TLST1 … TLST#

TCS local sidereal time for telescope 1 to #

sexagesimal

String

14:23:43

N

Can be expanded to multiple keywords indexed 1 to #

TRA1 … TRA#

TCS RA for telescope 1 to #

sexagesimal

String

13:43:42.3456

N

Can be expanded to multiple keywords indexed 1 to #

TDEC1 … TDEC#

TCS DEC for telescope 1 to #

sexagesimal

String

-13:34:12.7787

N

Can be expanded to multiple keywords indexed 1 to #

TEL1 … TEL#

TCS elevation angle for telescope 1 to #

deg

Float

43.5

N

Can be expanded to multiple keywords indexed 1 to #

TZA1 … TZA#

TCS zenith angle for telescope 1 to #

deg

Float

35.5435

N

Can be expanded to multiple keywords indexed 1 to #

TAZ1 … TAZ#

TCS azimuth angle for telescope 1 to #

deg

Float

124.3

N

Can be expanded to multiple keywords indexed 1 to #

THA1 … THA#

TCS hour angle for telescope 1 to #

sexagesimal

String

-2:34:43.3455

N

Can be expanded to multiple keywords indexed 1 to #

PARST1 … PARST#

Parallactic angle at exposure start for telescope 1 to #

deg

Float

175.2

N

Can be expanded to multiple keywords indexed 1 to #

PAREND1 … PAREND#

Parallactic angle at exposure end for telescope 1 to #

deg

Float

180.7

N

Can be expanded to multiple keywords indexed 1 to #

ROTANG

Rotator angle

deg

Float

80.3

N

SUNEL

Sun Elevation Angle

deg

Float

-18.5

N

MOONANG

Target-Moon Angle

deg

Float

34.56

N

MOONEL

Moon Elevation Angle

deg

Float

26.8

N

MOONILLU

Moon illumination

%

Float

23.4

N

MOONRV

RV of reflected sunlight off moon

km/s

Float

1.3

N

INHUM

relative humidity inside dome

%

Float

56.6

N

INHUMT

INHUM timestamp

UTC

String

2024-02-20T03:31:33

N

OUTTMP

Outside temperature

deg C

Float

0.0

N

OUTTMPT

OUTTMP timestamp

UTC

String

2024-02-20T03:31:33

N

OUTHUM

Outside relative humidity

%

Float

56.6

N

OUTHUMT

OUTHUM timestamp

UTC

String

2024-02-20T03:31:33

N

ENVWINDS

Wind speed

m/s

Float

23.4

N

Details are obs specific and not uniform; best effort as available from the observatory

ENVWINDD

Wind direction

angle

Float

133.5

N

Details on where wind is measured (position of weather station) should be captured in documentation

DRPTAG

RV DRP version

N/A

String

v1.1.0

UNKNOWN

Y

EPRVTAG

Version of EPRV standard applied

N/A

String

v1.1.0

UNKNOWN

Y

VOCLASS

Version of EPRV standard applied

N/A

String

EPRVSTANDARDv1.1.0

UNKNOWN

Y

DRPHASH

Git commit hash

N/A

String

a1b2c3d4e5f67890abcdef1234567890abcdef12

N

INSTERA

Tag to track permanent changes to instrument

N/A

String

v2.3.0

UNKNOWN

Y

EXTRACT

Type of 1D extraction

N/A

String

sum or flatrelative or optimal

N

EXSNR1 … EXSNR#

Extracted signal-to-noise at EXSNRW1 to EXSNRW#

SNR/1-D pixel

FLOAT

245.35

N

Can be expanded to multiple keywords indexed 1 to #; Meant to be a set of useful SNR checks, not one for every order

EXSNRW1 … EXSNRW#

Wavelength at which EXTSNR1 to EXTSNR# is measured

Angstroms

FLOAT

5530

N

Can be expanded to multiple keywords indexed 1 to #; Meant to be a set of useful SNR checks, not one for every order

FULLCOMP

Is this file fully compliant with the RVSTAND EPRV standard?

N/A

String

Yes or No

UNKNOWN

Y

TELFLAG

Issues with observatory or telescope?

N/A

String

Pass or Fail or Warn

PASS

N

Default to Pass. If Fail or Warn then more detail should be provided via the bitfields

INSTFLAG

Issues with instrument?

N/A

String

Pass or Fail or Warn

PASS

N

Default to Pass. If Fail or Warn then more detail should be provided via the bitfieldsx

DRPFLAG

Issues with pipeline?

N/A

String

Pass or Fail or Warn

PASS

N

Default to Pass. If Fail or Warn then more detail should be provided via the bitfields

ADDFLAG

Additional team defined flag

N/A

String

Pass or Fail or Warn

N

Note what this corresponds to in documentation

OBSFLAG

Observer pass/fail for exposure

N/A

String

Pass or Fail

N

SUMMFLAG

Summary roll up of other flag keywords

N/A

String

Pass or Fail

UNKNOWN

Y

DQLVL0

Quality check bitfield of N characters

N/A

UInt

0

UNDEFINED

Y

see e.g. https://neid.ipac.caltech.edu/docs/NEID-DRP/bitfields.html

DQLVL1

Quality check bitfield of N characters

N/A

UInt

0

UNDEFINED

Y

see e.g. https://neid.ipac.caltech.edu/docs/NEID-DRP/bitfields.html

DQLVL2

Quality check bitfield of N characters

N/A

UInt

0

UNDEFINED

Y

Standardize first few bits then leave remaining for instruent specific checks