FeatureScheduler

class lsst.ts.scheduler.driver.FeatureScheduler(models, raw_telemetry, parameters=None, log=None)

Bases: Driver

Feature scheduler driver.

Attributes Summary

default_observation_database_name

Methods Summary

assert_survey_observing_script(survey_name)

Assert that the input survey name has a dedicated observing script.

cold_start(observations)

Rebuilds the internal state of the scheduler from a list of Targets.

configure_scheduler([config])

This method is responsible for running the scheduler configuration and returning the survey topology, which specifies the number, name and type of projects running by the scheduler.

configure_survey_observing_script(...)

Configure survey-based observing script.

convert_efd_observations_to_targets(...)

Convert EFD dataframe into list of driver targets.

fbs_observation_named_parameter_map()

Return the mapping between feature scheduler observation parameter keywords and the Observation parameter name keywords

get_state_as_file_object()

Get the current state of the scheduling algorithm as a file object.

get_stop_tracking_target()

get_survey_observing_script(survey_name)

Return the appropriate survey observing script.

get_survey_topology(config)

Get the survey topology.

load(config)

Load a new set of targets.

parse_observation_database(filename)

Parse an observation database into a list of observations.

register_observation(target)

Register observation.

register_observed_target(target)

Validates observation and returns a list of successfully completed observations.

reset_from_state(filename)

Load the state from a file.

save_state()

Save the current state of the scheduling algorithm to a file.

select_next_target()

Pick a target and return it as a target object.

select_next_targets()

Pick a target and return it as a list of target objects.

update_conditions()

Update conditions on the scheduler.

Attributes Documentation

default_observation_database_name = PosixPath('/home/saluser/fbs_observation_database.sql')

Methods Documentation

assert_survey_observing_script(survey_name: str) None

Assert that the input survey name has a dedicated observing script.

Parameters:
survey_namestr

Name of the survey.

Raises:
AssertError:

If survey_name is not in the list of valid survey observing scripts.

cold_start(observations: List[DriverTarget]) None

Rebuilds the internal state of the scheduler from a list of Targets.

Parameters:
observationslist of DriverTarget
configure_scheduler(config=None)

This method is responsible for running the scheduler configuration and returning the survey topology, which specifies the number, name and type of projects running by the scheduler.

By default it will just return a test survey topology.

Parameters:
configtypes.SimpleNamespace

Configuration, as described by schema/Scheduler.yaml

Returns:
survey_topology: lsst.ts.scheduler.kernel.SurveyTopology
Raises:
RuntimeError:

If config does not have a scheduler_config attribute or if it points to a non-existing file.

NoSchedulerError:

If scheduler configuration does not define scheduler attribute.

NoNsideError:

If scheduler configuration does not define nside attribute.

configure_survey_observing_script(survey_observing_script: Dict[str, Any]) None

Configure survey-based observing script.

Parameters:
survey_observing_scriptdict

Dictionary with survey name as key and a dictionary with observing_script_name (string) and observing_script_is_standard (boolean) values.

See also

get_survey_observing_script

Returns survey-specific observing script.

convert_efd_observations_to_targets(efd_observations: DataFrame) List[DriverTarget]

Convert EFD dataframe into list of driver targets.

Parameters:
efd_observationspandas.DataFrame

Data frame returned from a query to the EFD for observations.

static fbs_observation_named_parameter_map() Dict[str, str]

Return the mapping between feature scheduler observation parameter keywords and the Observation parameter name keywords

Returns:
dict

Mapping between fbs observations keywords and Observation keywords.

get_state_as_file_object()

Get the current state of the scheduling algorithm as a file object.

Returns:
file_objectio.BytesIO

File object with the current.

get_stop_tracking_target() DriverTarget
get_survey_observing_script(survey_name: str) Tuple[str, bool]

Return the appropriate survey observing script.

If the script contains a especial script, return it, if not, return defaults.

Parameters:
survey_namestr

Name of the survey.

Returns:
observing_script_namestr

Name of the observing script.

observing_script_is_standardbool

Is the observing script standard?

See also

configure_survey_observing_script

Configure survey specific observing script.

get_survey_topology(config: SimpleNamespace) SurveyTopology

Get the survey topology.

Parameters:
configtypes.SimpleNamespace

Configuration, as described by schema/Scheduler.yaml

Returns:
survey_topologySurveyTopology

Survey topology.

load(config)

Load a new set of targets.

parse_observation_database(filename: str) None

Parse an observation database into a list of observations.

Parameters:
filenamestr
Returns:
observationslist of DriverTarget
register_observation(target: FeatureSchedulerTarget) None

Register observation.

Write the target observation into the observation database.

Parameters:
targetFeatureSchedulerTarget

Target to register.

register_observed_target(target: DriverTarget) Observation

Validates observation and returns a list of successfully completed observations.

Add target observation to the feature based scheduler.

Parameters:
observationlist of Target

Python list of Targets observed.

Returns:
Observation
reset_from_state(filename)

Load the state from a file.

Parameters:
filenamestr

Name of the file with the state.

save_state()

Save the current state of the scheduling algorithm to a file.

Returns:
filenamestr

Name of the file with the state.

select_next_target() FeatureSchedulerTarget

Pick a target and return it as a target object.

Returns:
Target
select_next_targets() list[lsst.ts.scheduler.driver.feature_scheduler_target.FeatureSchedulerTarget]

Pick a target and return it as a list of target objects.

Instead of requesting a single target like select_next_target, this method will inquire the scheduling algorithm for a list of potential next targets.

Returns:
desired_observations: list`[`FeatureSchedulerTarget]

List of desired observations.

update_conditions()

Update conditions on the scheduler.