Building Observing Blocks (OBs)
The basic unit of KPF nighttime operations is the Observing Block (OB). An OB describes a single visit to a science target and the observations made there. The data contained in the OB is a set of keyword-value pairs.
Observers can create OBs in 3 ways:
- As text files which can be read in by the KPF software and executed.
- As a database entry by filling out an OB via the KPF-CC Web Form. Please note that the KPF-CC web form is not capable of recording all features of an OB, but should cover 90+% of use cases. Classical observers are also welcome to use the form.
- Building an OB "live" using the KPF OB GUI.
The data in an OB can be divided in to three categories:
Target: The OB will contain information about the target beyond what is in a typical Keck Star List entry in order to flow that information to the FITS header and the data reduction pipeline (DRP). The target section is only needed if the OB has observations (i.e. it is not purely a calibration OB). Here is a description of all Target Properties.
Calibrations: An OB can contain calibrations, these are not typically used by the observer (slewcals are handled separately). Here is a description of all Calibration Properties. The Calibrations section of an ON is a list of Calibration entries.
Observations: Finally, the OB will contain a list of observations to be made of the target. For typical KPF observers, this will only have one entry, but multiple entries are supported. Each entry describes a set of exposures on the target and contains the information on how those exposures should be executed. Here is a description of all Observation Properties. The Observations section of an ON is a list of Observation entries.
Note that not all properties are needed in every case. For example, an observation with ExpMeterMode: 'monitor'
will not need values for ExpMeterBin
and ExpMeterThreshold
.
Example On Sky Science OB
This is an example of what the text file form of an OB might look like. The file is a yaml
format which resolves in to a python dict with keys for "Target", "Calibrations" and "Observations" (not all are required). The "Target" entry is a dict with the various Target Properties. The "Calibrations" entry (if present) is a list of dictionaries, each with the various Calibration Properties. Similarly, the "Observations" entry is a list of dictionaries, each with the various Observation Properties.
The example below has a Target, no Calibrations, and a single Observaton:
Target:
TargetName: HR 4710
GaiaID: DR3 5859393710380907776
twoMASSID: J12231377-6737534
Parallax: 19.730
RadialVelocity: 33.910
Gmag: 6.11
Jmag: 4.97
Teff: 4750
RA: 12:23:11.79
Dec: -67:37:49.47
Equinox: J2000
PMRA: -11.258
PMDEC: 0.256
Epoch: 2016.00
DRA: 0.000
DDEC: 0.000
Observations:
- Object: test1
nExp: 1
ExpTime: 60
TriggerCaHK: True
TriggerGreen: True
TriggerRed: True
BlockSky: False
ExpMeterMode: control
AutoExpMeter: True
ExpMeterBin: 1
ExpMeterThreshold: 10
TakeSimulCal: True
AutoNDFilters: True