pypfilt#
The pypfilt
module provides top-level functions for running forecasts
and simulating observations from simulation models.
- pypfilt.load_instances(sources)#
Iterate over scenario instances defined in one or more TOML sources.
- Parameters:
sources – A list of file-like objects and/or file paths. If
sources
is not a list, it will be treated as the only item of a list.- Return type:
Iterator[Instance]
- Examples:
>>> import pypfilt >>> import pypfilt.build >>> import pypfilt.examples.predation >>> pypfilt.examples.predation.write_example_files() >>> forecast_times = [1.0, 3.0, 5.0, 7.0, 9.0] >>> config_file = 'predation.toml' >>> data_file = 'output.hdf5' >>> for instance in pypfilt.load_instances(config_file): ... context = instance.build_context() ... state = pypfilt.forecast( ... context, forecast_times, filename=data_file ... ) >>> # Remove the output file when it is no longer needed. >>> import os >>> os.remove(data_file)
- pypfilt.forecast(ctx, times, filename)#
Generate forecasts from various times during a simulation.
- Parameters:
ctx (pypfilt.build.Context) – The simulation context.
times – The times at which forecasts should be generated.
filename – The output file to generate (can be
None
).
- Returns:
The simulation results for each forecast.
- Return type:
- Examples:
>>> from datetime import datetime >>> import pypfilt >>> import pypfilt.build >>> import pypfilt.examples.predation >>> pypfilt.examples.predation.write_example_files() >>> config_file = 'predation-datetime.toml' >>> fs_times = [datetime(2017, 5, 5), datetime(2017, 5, 10)] >>> data_file = 'output.hdf5' >>> for instance in pypfilt.load_instances(config_file): ... context = instance.build_context() ... results = pypfilt.forecast(context, fs_times, filename=data_file) >>> # Remove the example files when they are no longer needed. >>> pypfilt.examples.predation.remove_example_files() >>> # Remove the output file when it is no longer needed. >>> import os >>> os.remove(data_file)
- pypfilt.fit(ctx, filename)#
Run a single estimation pass over the entire simulation period.
- Parameters:
ctx (pypfilt.build.Context) – The simulation context.
filename – The output file to generate (can be
None
).
- Returns:
The simulation results for the estimation pass.
- Return type:
- Examples:
>>> import pypfilt >>> import pypfilt.build >>> import pypfilt.examples.predation >>> pypfilt.examples.predation.write_example_files() >>> config_file = 'predation.toml' >>> data_file = 'output.hdf5' >>> for instance in pypfilt.load_instances(config_file): ... context = instance.build_context() ... results = pypfilt.fit(context, filename=data_file) >>> # Remove the example files when they are no longer needed. >>> pypfilt.examples.predation.remove_example_files() >>> # Remove the output file when it is no longer needed. >>> import os >>> os.remove(data_file)
- pypfilt.adaptive_fit(ctx, filename, save_when=None, save_to=None)#
Run a series of adaptive fits over all observations.
- Parameters:
ctx (pypfilt.build.Context) – The simulation context.
filename – The output file to generate (can be
None
).save_when – Times at which to save the particle history matrix during the final estimation pass.
save_to – The filename for saving the particle history matrix.
- Returns:
The simulation results for the estimation passes.
- Return type:
The fitting method must be defined in
filter.adaptive_fit.method
. The supported methods are:"fit_effective_fraction"
: each pass tunes the observation models to achieve a target effective particle fraction."fixed_exponents"
: each pass raises the log-likelihoods to a fixed exponent.
- pypfilt.simulate_from_model(instance, particles=1, observations=1, common_prng_seed=False)#
Simulate observations from a model.
- Parameters:
instance (pypfilt.scenario.Instance) – The scenario instance.
particles – The number of particles; set this to
None
to use the number of particles defined ininstance
.observations – The number of observations to simulate for each particle, at each time unit.
common_prng_seed – Whether the simulated observation tables should use a common PRNG seed to generate the simulated observations.
- Returns:
A dictionary of simulated observation tables. The dictionary will be empty if no observations were simulated (e.g., if no time-steps were performed).
- Return type:
Dict[str, numpy.ndarray]
Note
The
instance
should not be reused after calling this function. To prevent this from happening, the instance settings will be deleted.- Examples:
>>> import pypfilt >>> import pypfilt.examples.predation >>> pypfilt.examples.predation.write_example_files() >>> config_file = 'predation.toml' >>> for instance in pypfilt.load_instances(config_file): ... obs_tables = pypfilt.simulate_from_model(instance, particles=1) ... # Print the first four simulated 'x' observations. ... x_obs = obs_tables['x'] ... print(x_obs[:4]) ... # Print the first four simulated 'y' observations. ... y_obs = obs_tables['y'] ... print(y_obs[:4]) [(0., 1.35192613) (1., 1.54453284) (2., 1.92039984) (3., 1.21684457)] [(0., -0.14294339) (1., 0.51294785) (2., 1.14303379) (3., 0.84072101)] >>> print(instance.settings) {} >>> # Remove the example files when they are no longer needed. >>> pypfilt.examples.predation.remove_example_files()
The pypfilt
module also re-exports a number of items from sub-modules: