8 #ifndef UFO_PROFILE_PROFILEINDICES_H_
9 #define UFO_PROFILE_PROFILEINDICES_H_
19 #include "ioda/ObsDataVector.h"
20 #include "ioda/ObsSpace.h"
44 const std::vector <bool> &apply);
82 typedef std::map<std::size_t, std::vector<std::size_t>>
ProfIdxMap;
Options controlling the operation of the EntireSampleDataHandler and ProfileDataHandler classes.
Determine indices of observations making up individual profiles. The indices are computed with respec...
size_t profileNumToFind_
Next profile number to find in the sample.
ProfileIndices(ioda::ObsSpace &obsdb, const DataHandlerParameters &options, const std::vector< bool > &apply)
const std::vector< bool > & apply_
Observations to apply the filter to.
int numProfileLevels_
Number of profile levels to which QC checks should be applied.
ProfIdxMap::const_iterator ProfIdxIter
Profile index map iterator.
ioda::ObsSpace & obsdb_
Observation database.
void validateTotalNumProf()
Ensure number of profiles is consistent with quantity reported by obsdb.
size_t profileNumCurrent_
Current profile number in the sample.
std::set< size_t > uniqueProfileNums_
Unique profile numbers for the entire sample.
ProfIdxIter profidx_current_
Iterator pointing to current profile index (initially points to beginning).
const std::vector< size_t > profileNums_
Profile numbers for the entire sample.
size_t getProfileNumCurrent() const
Get number of current profile, accounting for distribution across processors.
std::map< std::size_t, std::vector< std::size_t > > ProfIdxMap
Profile index map.
const DataHandlerParameters & options_
Configurable parameters.
const std::vector< size_t > & getProfileIndices() const
Return indices for the current profile.
void updateNextProfileIndices()
Determine indices in entire sample for the next profile.
void reset()
Reset profile indices to point to the beginning of the sample.
std::vector< size_t > profileIndices_
Indices for this profile.
ProfIdxMap profidx_
Iterator over profile indices (used for sorting).
int getNumProfileLevels() const
Return number of levels to which QC checks should be applied.