Source code for sorcha.modules.PPDropObservations

from sorcha.utilities.sorchaModuleRNG import PerModuleRNG


[docs] def PPDropObservations(observations, module_rngs, probability="detection probability"): """ Drops rows where the probabilty of detection is less than sample drawn from a uniform distribution. Used by PPFadingFunctionFilter and DESFadingFunctionFilter. Parameters ----------- observations : Pandas dataframe Dataframe of observations with a column containing the probability of detection. module_rngs : PerModuleRNG A collection of random number generators (per module). probability : string, default="detection probability" Name of column containing detection probability. Returns ---------- out : Pandas dataframe New dataframe of 'observations' modified to remove observations that could not be observed. """ # Set the module specific seed as an offset from the base seed. rng = module_rngs.getModuleRNG(__name__) num_obs = len(observations.index) uniform_distr = rng.random(num_obs) out = observations[observations[probability] >= uniform_distr] return out