atomica.scenarios.CombinedScenario

class atomica.scenarios.CombinedScenario(name=None, active=True, parsetname=None, progsetname=None, scenario_values=None, instructions=None, interpolation='linear')[source]

Bases: Scenario

Define combined (budget+program) scenario

This object stores both a set of scenario values and a set of program instructions. This allows it to simultaneously apply parameter, budget, and coverage overwrites.

As usual, parameter values from programs take precedence over parameter values from parsets, and within programs, coverage takes precedence ovetoxr budgets.

Parameters:
  • name (str) – The name of the scenario. This will also be used to name the result

  • active (bool) – If running via Project.run_scenarios this flags whether to run the scenario

  • parsetname (str) – If running via Project.run_scenarios this identifies which parset to use from the project

  • progsetname (str) – If running via Project.run_scenarios this identifies which progset to use. If set to None then programs will not be used

  • scenario_values (dict) – Parameter value overwrites, used as input to ParameterScenario

  • instructions (ProgramInstructions) – A :class`ProgramInstructions` instance containing required program overwrites (budget, capacity, coverage)

NamedItem constructor

A name must be a string

Parameters:

name (str) –

Attributes

scenario_values

Parameter scenario values (see ParameterScenario)

interpolation

Interpolation method to use for parameter overwrite

parsetname

Specify parset name when run via Project.run_scenarios

progsetname

Specify progset name when run via Project.run_scenarios

active

Flag whether the scenario should be run via Project.run_scenarios

Methods

copy

get_instructions

Get scenario instructions

get_parset

Get scenario parset

get_progset

Get scenario progset

run

Run scenario

active

Flag whether the scenario should be run via Project.run_scenarios

get_instructions(progset, project)[source]

Get scenario instructions

If the derived scenario class produces program instructions, return them here.

Parameters:

progset (ProgramSet) – Input ProgramSet

Return type:

ProgramInstructions

Returns:

ProgramInstructions instance, or None if no instructions (in which case, programs will not be used)

get_parset(parset, project)[source]

Get scenario parset

If the derived scenario class modifies the parset, return the modified version

Parameters:

parset – Input ParameterSet

Return type:

ParameterSet

Returns:

Modified parset for use in the simulation

get_progset(progset, project)

Get scenario progset

If the derived scenario class modifies the progset, return the modified version

Parameters:

progset (ProgramSet) – Input ProgramSet

Return type:

ProgramSet

Returns:

Modified progset for use in the simulation

interpolation

Interpolation method to use for parameter overwrite

parsetname

Specify parset name when run via Project.run_scenarios

progsetname

Specify progset name when run via Project.run_scenarios

run(project, parset=None, progset=None, store_results=True)

Run scenario

Parameters:
  • project – A Project instance

  • parset (ParameterSet) – Optionally a ParameterSet instance, otherwise will use self.parsetname

  • progset (ProgramSet) – Optionally a ProgramSet instance, otherwise will use self.progsetname

  • store_results (bool) – If True, the results will be copied into the project

Return type:

Result

Returns:

A Result object

scenario_values

Parameter scenario values (see ParameterScenario)