6.12. pypfilt.cache¶
-
pypfilt.cache.
default
(ctx, forecast_dates)¶ Return the default (i.e., empty) cached state.
If no cache file is defined in
ctx.settings['files']['cache_file']
, this will create a temporary cache file that will be automatically deleted when the process terminates (either normally, or in response to the SIGTERM signal).Parameters: - ctx – The simulation context.
- forecast_dates – The dates at which forecasts will be run.
Returns: A dictionary with keys:
'state'
: Either a simulation state (seepypfilt.pfilter.run()
) orNone
if there is no cached state from which to resume.'start'
: Either the time from which to begin the simulation, orNone
if there is no cached state.'end'
: Either the time at which to end the simulation, orNone
if there is no cached state.'fs_dates'
: The dates at which forecasts should be generated.'save_to'
: The filename for saving the particle history matrix.'clean'
: A cleanup function to remove any temporary files, and which will have been registered to execute at termination.
-
pypfilt.cache.
save_state
(cache_file, ctx, when, **kwargs)¶ Save the particle history matrix to a cache file, to allow future forecasting runs to resume from this point.
Parameters: - cache_file – The name of the cache file.
- ctx – The simulation context.
- when – The current simulation time.
- **kwargs – The data sets to store in the cached state; at a
minimum this should include
'hist'
(the particle history matrix) and'offset'
(the index of the current time-step in the particle history matrix).
Examples: cache_file = 'cache.hdf5' cache.save_state(cache_file, context, current_time, offset=np.int32(hist_ix), hist=hist)
-
pypfilt.cache.
load_state
(cache_file, ctx, forecast_dates)¶ Load the particle history matrix from a cache file, allowing forecasting runs to resume at the point of the first updated/new observation.
Parameters: - cache_file – The name of the cache file.
- ctx – The simulation context.
- forecast_dates – The dates at which forecasts will be run.
Returns: Either
None
, if there was no suitable cached state, or a dictionary with following keys:'start'
: The time from which to begin the simulation.'end'
: The time from which to end the simulation.'state'
: A dictionary that contains the following keys:'hist'
: The particle history matrix.'offset'
: The index of the current time-step in the particle history matrix.
Note that if the cache file already contains a suitable state for each of the provided forecast dates, this will return a dictionary as described above, where the
'start'
and'end'
values are the same (i.e., there is no need to run an estimation pass).
-
pypfilt.cache.
save_rng_states
(group, dataset_name, rngs)¶ Save random number generator states to a cached dataset.
Parameters: - group – The HDF5 group that will contain the saved states.
- dataset_name – The name of the HDF5 dataset to create.
- rngs – A dictionary that maps names (strings) to random number generators.
-
pypfilt.cache.
load_rng_states
(group, dataset_name, rngs)¶ Restore random number generator states from a cached dataset.
Parameters: - group – The HDF5 group that contains the saved states.
- dataset_name – The name of the HDF5 dataset.
- rngs – A dictionary that maps names (strings) to random number generators, whose states will be updated.
Raises: ValueError – if there are missing names or additional names in the dataset.