1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
.. _terminology:
***********
Terminology
***********
Scheduling
==========
Scheduling observations is a common task in astronomy, but there is a lack of
formal terminology. Here we define the terminology as it will be used in astroplan
for scheduling tasks. This is for consistency within the code and the documentation.
The terms used are as follows:
* **observing block** (**OB**): an observation of a target for an amount of time
and a particular instrument configuration.
* **priority**: number assigned to the **observing block** by the user that
defines its precedence within the set of blocks to be scheduled. Should probably
also be on a 0->1 (0=no good, 1=good) scale, or rescaled within the scheduler
* **rank**: like a **priority**, but defined for a specific set of **OB**s, often set
by an agent other than the observer. (e.g. a proposal is **ranked** by a time
allocation committee (TAC))
* **constraint**: sets limits and can yield **scores** based on inputs. Currently
only boolean scores are implemented in the code.
* **score**: the value returned by evaluating a **constraint** or **constraints**. Can be
boolean or floats between 0 and 1 inclusive (0=no good, 1=good), with a flag in the
``Constraint`` call that selects which is used. Can be combined by a **scorekeeper**
into a cumulative score for an **observing block** given a start time.
* **scorekeeper**: assigns a cumulative score to the **OB** based on some function that
would be applied to all the individual **scores** (result should be in (0, 1))
* **scheduler**: the entity that consumes the results of the **scorekeeper** and the
**observing blocks** and produces a schedule
* **Weights** (“user defined”?): preferences for which constraint's **scores** matter most
(e.g. I care more about getting dark time than getting a low airmass). **weights** can be
floats between 0 and 1 inclusive (0=not important, 1 = important)
This is a list of possible schedulers, none are implemented yet. Once implemented they
will have different methods for creating their schedule. Below is a list of ideas for
the scheduler descriptors and the related scheduler would work. Each scheduler will be
able to be called with ``DescriptorScheduler(args)`` using the descriptor defined below.
* **Sequential**: starts from the beginning of the time range and schedules the **OB**
with the best **score**, that hasn't already been scheduled, for that time.
* **Priority**: starts from the highest **priority** **OB** and schedules it at the time
where it has its highest **score**. Then schedules the next-highest priority without
overlapping blocks
|