Group observations into grid cells and preserve only one observation in each cell.
More...
|
| Gaussian_Thinning (ioda::ObsSpace &obsdb, const GaussianThinningParameters ¶ms, std::shared_ptr< ioda::ObsDataVector< int > > flags, std::shared_ptr< ioda::ObsDataVector< float > > obserr) |
|
| FilterBase (ioda::ObsSpace &, const FilterParametersBaseWithAbstractAction ¶meters, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) |
|
| FilterBase (ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) |
|
| ~FilterBase () |
|
| ObsProcessorBase (ioda::ObsSpace &, bool deferToPost, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) |
|
| ~ObsProcessorBase () |
|
void | preProcess () override |
|
void | priorFilter (const GeoVaLs &) override |
|
void | postFilter (const ioda::ObsVector &, const ioda::ObsVector &, const ObsDiagnostics &) override |
|
oops::Variables | requiredVars () const override |
|
oops::Variables | requiredHdiagnostics () const override |
|
|
void | print (std::ostream &) const override |
|
void | applyFilter (const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override |
|
int | qcFlag () const override |
|
ObsAccessor | createObsAccessor () const |
|
void | groupObservationsBySpatialLocation (const std::vector< size_t > &validObsIds, const DistanceCalculator &distanceCalculator, const ObsAccessor &obsAccessor, RecursiveSplitter &splitter, std::vector< float > &distancesToBinCenter) const |
|
void | groupObservationsByVerticalCoordinate (const std::vector< size_t > &validObsIds, const DistanceCalculator &distanceCalculator, const ObsAccessor &obsAccessor, RecursiveSplitter &splitter, std::vector< float > &distancesToBinCenter) const |
|
void | groupObservationsByTime (const std::vector< size_t > &validObsIds, const DistanceCalculator &distanceCalculator, const ObsAccessor &obsAccessor, RecursiveSplitter &splitter, std::vector< float > &distancesToBinCenter) const |
|
std::vector< bool > | identifyThinnedObservations (const std::vector< size_t > &validObsIds, const ObsAccessor &obsAccessor, const RecursiveSplitter &splitter, const std::vector< float > &distancesToBinCenter) const |
|
std::function< bool(size_t, size_t)> | makeObservationComparator (const std::vector< size_t > &validObsIds, const std::vector< float > &distancesToBinCenter, const ObsAccessor &obsAccessor) const |
|
Group observations into grid cells and preserve only one observation in each cell.
Cell assignment can be based on an arbitrary combination of:
- horizontal position
- vertical position (in terms of height or pressure)
- time
- category (arbitrary integer associated with each observation).
Selection of the observation to preserve in each cell is based on
- its position in the cell
- optionally, its priority.
See GaussianThinningParameters for the documentation of the available options.
Definition at line 59 of file Gaussian_Thinning.h.