scenic.core.scenarios
Scenario and scene objects.
Summary of Module Members
Classes
A compiled Scenic scenario, from which scenes can be sampled. |
|
A scene generated from a Scenic scenario. |
Member Details
- class Scene[source]
A scene generated from a Scenic scenario.
To run a dynamic simulation from a scene, create an instance of
Simulator
for the simulator you want to use, and pass the scene to itssimulate
method.- Attributes:
- dumpAsScenicCode(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)[source]
Dump Scenic code reproducing this scene to the given stream.
Note
This function does not currently reproduce parts of the original Scenic program defining behaviors, functions, etc. used in the scene. Also, if the scene involves any user-defined types, they must provide a suitable
__repr__
for this function to print them properly.- Parameters:
stream (text file) – Where to print the code (default
sys.stdout
).
- class Scenario[source]
A compiled Scenic scenario, from which scenes can be sampled.
- generate(maxIterations=2000, verbosity=0, feedback=None)[source]
Sample a
Scene
from this scenario.For a description of how scene generation is done, see Scene Generation.
- Parameters:
maxIterations (int) – Maximum number of rejection sampling iterations.
verbosity (int) – Verbosity level.
feedback (float) – Feedback to pass to external samplers doing active sampling. See
scenic.core.external_params
.
- Returns:
A pair with the sampled
Scene
and the number of iterations used.- Raises:
RejectionException – if no valid sample is found in maxIterations iterations.
- resetExternalSampler()[source]
Reset the scenario’s external sampler, if any.
If the Python random seed is reset before calling this function, this should cause the sequence of generated scenes to be deterministic.
- conditionOn(scene=None, objects=(), params={})[source]
Condition the scenario on particular values for some objects or parameters.
This method changes the distribution of the scenario and should be used with care: it does not attempt to check that the new distribution is equivalent to the old one or that it has nonzero probability of satisfying the scenario’s requirements.
For example, to sample object #5 in the scenario once and then leave it fixed in all subsequent samples:
sceneA, _ = scenario.generate() scenario.conditionOn(scene=sceneA, objects=(5,)) sceneB, _ = scenario.generate() # will have the same object 5 as sceneA
- Parameters:
scene (Scene) – Scene from which to take values for the given objects, if any.
objects – Sequence of indices specifying which objects in this scenario should be conditioned on the corresponding objects in scene (i.e. those with the same index in the list of objects).
params (dict) – Dictionary of global parameters to condition and their new values (which may be constants or distributions).