pypfilt.state¶
- class pypfilt.state.History(ctx, matrix=None, offset=0, times=None)¶
A simulation history stores the current and past states of each particle, as well as each particle’s weight and parent index.
Note
The
matrixandoffsetarguments should only be provided when restoring a cached history matrix.- Parameters
ctx – The simulation context.
matrix – The (optional) history matrix; a new matrix will be created if this is
None(default behaviour).offset – The (optional) offset that maps time step numbers to slices of the history matrix.
times – The (optional) list of times associated with each slice of the history matrix.
- create_backcast(ctx)¶
Return a new simulation history that represents the backcast from the current particle states, extending as far back as the oldest recorded particle states.
- Parameters
ctx – The simulation context.
Note
All particle states in the backcast will be assigned the current particle weights.
- static load_state(ctx, group)¶
Load the history matrix state from a cache file and return a new
Historyobject.- Parameters
ctx – The simulation context.
group – The h5py Group object from which to load the history matrix state.
- save_state(ctx, group)¶
Save the history matrix state to a cache file.
- Parameters
ctx – The simulation context.
group – The h5py Group object in which to save the history matrix state.
- set_time_step(step_num, time)¶
Update
history.indexto point to the specified time step.
- reached_window_end()¶
Return
Trueif the current time step lies outside the current history window, in which case the window must be shifted before the time step can be simulated.
- shift_window_back(shift)¶
Shift the history window by
shiftsteps.
- set_resampled(was_resampled)¶
Record whether the particles were resampled at the current time step.
- summary_window(ctx, start, end)¶
Return a list of
Snapshotvalues for each time unit in the summary window, fromstarttoend(inclusive).- Parameters
ctx – The simulation context.
start – The starting time for the summary window (inclusive).
end – The ending time for the summary window (inclusive).
- class pypfilt.state.Snapshot(time, steps_per_unit, matrix, hist_ix)¶
Captures the particle states at a single moment in time.
The following instance variables are defined:
time – The simulation time (
time, below).hist_ix – The index of this snapshot (
hist_ix, below).weights – The array of particle weights.
vec – The history matrix slice for this time.
state_vec – The particle state vectors at this time.
- Parameters
time – The simulation time.
steps_per_unit – The number of time-steps per unit time.
matrix – The history matrix.
hist_ix – The index of this snapshot in the history matrix.
- sliced()¶
Return
Trueif the snapshot captures a slice of the ensemble.
- back_n_steps(n)¶
Return the history matrix slice
ntime-steps before this snapshot.Note
This returns an array, not a
Snapshot.- Parameters
n – The number of time-steps to step back.
- back_n_steps_state_vec(n)¶
Return the particle state vectors
ntime-steps before this snapshot.Note
This returns the state vectors as an array, not as a
Snapshot.- Parameters
n – The number of time-steps to step back.
- pypfilt.state.history_matrix(ctx)¶
Allocate a particle history matrix of sufficient size to store an entire particle filter simulation.
- Parameters
ctx – The simulation context.
- Returns
A particle history matrix.
- Return type
numpy.ndarray
- pypfilt.state.earlier_states(hist, ix, steps)¶
Return the particle states at a previous time-step, ordered with respect to their current arrangement.
- Parameters
hist – The particle history matrix.
ix – The current time-step index.
steps – The number of steps back in time.
- pypfilt.state.is_history_matrix(ctx, arr)¶
Check whether the provided array includes all columns (including, e.g., the particle weights and parent indices).
- Parameters
ctx – The simulation context.
arr – The array to check.
- Returns
Trueif the check is successful, otherwiseFalse.
- pypfilt.state.require_history_matrix(ctx, arr)¶
Check whether the provided array includes all columns (including, e.g., the particle weights and parent indices).
- Parameters
ctx – The simulation context.
arr – The array to check.
- Raises
ValueError – if the check fails.
- pypfilt.state.is_state_vec_matrix(ctx, arr)¶
Check whether the provided array includes only the particle state vector columns.
- Parameters
ctx – The simulation context.
arr – The array to check.
- Returns
Trueif the check is successful, otherwiseFalse.
- pypfilt.state.require_state_vec_matrix(ctx, arr)¶
Check whether the provided array includes only the particle state vector columns.
- Parameters
ctx – The simulation context.
arr – The array to check.
- Raises
ValueError – if the check fails.
- pypfilt.state.repack(svec, astype=<class 'float'>)¶
Return a copy of the array
svecwhere the fields are contiguous and viewed as a regular Numpy array ofastype.- Raises
ValueError – if
sveccontains any fields that are incompatible withastype.- Examples
>>> import numpy as np >>> from pypfilt.state import repack >>> xs = np.array([(1.2, (2.2, 3.2)), (4.2, (5.2, 6.2))], ... dtype=[('x', float), ('y', float, 2)]) >>> ys = repack(xs) >>> assert np.array_equal(ys, np.array([[1.2, 2.2, 3.2], ... [4.2, 5.2, 6.2]]))