IODA
|
Observation data class for IODA. More...
#include <ObsSpace.h>
Public Types | |
typedef std::map< std::size_t, std::vector< std::size_t > > | RecIdxMap |
typedef RecIdxMap::const_iterator | RecIdxIter |
Public Member Functions | |
ObsSpace (const eckit::Configuration &config, const eckit::mpi::Comm &comm, const util::DateTime &bgn, const util::DateTime &end, const eckit::mpi::Comm &timeComm) | |
Config based constructor for an ObsSpace object. More... | |
ObsSpace (const ObsSpace &) | |
virtual | ~ObsSpace () |
const util::DateTime & | windowStart () const |
const util::DateTime & | windowEnd () const |
const eckit::mpi::Comm & | comm () const |
const ObsSpaceParameters & | params () const |
void | save () |
save the obs space data into a file (if obsdataout specified) More... | |
std::size_t | globalNumLocs () const |
return the total number of locations in the corresponding obs spaces across all MPI tasks More... | |
std::size_t | globalNumLocsOutsideTimeWindow () const |
return number of locations from obs source that were outside the time window More... | |
size_t | nlocs () const |
return the number of locations in the obs space. Note that nlocs may be smaller than global unique nlocs due to distribution of obs across multiple process elements. More... | |
size_t | nchans () const |
return the number of channels in the container. If this is not a radiance obs type, then this will return zero. More... | |
std::size_t | nrecs () const |
return the number of records in the obs space container More... | |
std::size_t | nvars () const |
return the number of variables in the obs space container. "Variables" refers to the quantities that can be assimilated as opposed to meta data. More... | |
std::string | get_dim_name (const ObsDimensionId dimId) const |
return the standard dimension name for the given dimension id More... | |
std::size_t | get_dim_size (const ObsDimensionId dimId) const |
return the standard dimension size for the given dimension id More... | |
ObsDimensionId | get_dim_id (const std::string &dimName) const |
return the standard dimension id for the given dimension name More... | |
const std::vector< std::string > & | obs_group_vars () const |
return YAML configuration parameter: obsdatain.obsgrouping.group variables More... | |
std::string | obs_sort_var () const |
return YAML configuration parameter: obsdatain.obsgrouping.sort variable More... | |
std::string | obs_sort_order () const |
return YAML configuration parameter: obsdatain.obsgrouping.sort order More... | |
const std::string & | obsname () const |
return the name of the obs type being stored More... | |
std::string | distname () const |
return the name of the MPI distribution More... | |
const std::vector< std::size_t > & | recnum () const |
return reference to the record number vector More... | |
const std::vector< std::size_t > & | index () const |
return reference to the index vector More... | |
bool | has (const std::string &group, const std::string &name) const |
return true if group/variable exists More... | |
ObsDtype | dtype (const std::string &group, const std::string &name) const |
return data type for group/variable More... | |
void | get_db (const std::string &group, const std::string &name, std::vector< int > &vdata, const std::vector< int > &chanSelect={ }) const |
transfer data from the obs container to vdata More... | |
void | get_db (const std::string &group, const std::string &name, std::vector< float > &vdata, const std::vector< int > &chanSelect={ }) const |
void | get_db (const std::string &group, const std::string &name, std::vector< double > &vdata, const std::vector< int > &chanSelect={ }) const |
void | get_db (const std::string &group, const std::string &name, std::vector< std::string > &vdata, const std::vector< int > &chanSelect={ }) const |
void | get_db (const std::string &group, const std::string &name, std::vector< util::DateTime > &vdata, const std::vector< int > &chanSelect={ }) const |
void | put_db (const std::string &group, const std::string &name, const std::vector< int > &vdata, const std::vector< std::string > &dimList={ "nlocs" }) |
transfer data from vdata to the obs container More... | |
void | put_db (const std::string &group, const std::string &name, const std::vector< float > &vdata, const std::vector< std::string > &dimList={ "nlocs" }) |
void | put_db (const std::string &group, const std::string &name, const std::vector< double > &vdata, const std::vector< std::string > &dimList={ "nlocs" }) |
void | put_db (const std::string &group, const std::string &name, const std::vector< std::string > &vdata, const std::vector< std::string > &dimList={ "nlocs" }) |
void | put_db (const std::string &group, const std::string &name, const std::vector< util::DateTime > &vdata, const std::vector< std::string > &dimList={ "nlocs" }) |
const RecIdxIter | recidx_begin () const |
Return the begin iterator associated with the recidx_ data member. More... | |
const RecIdxIter | recidx_end () const |
Return the end iterator associated with the recidx_ data member. More... | |
bool | recidx_has (const std::size_t recNum) const |
true if given record number exists in the recidx_ data member More... | |
bool | obsAreSorted () const |
true if the groups in the recidx data member are sorted More... | |
std::size_t | recidx_recnum (const RecIdxIter &irec) const |
return record number pointed to by the given iterator More... | |
const std::vector< std::size_t > & | recidx_vector (const RecIdxIter &irec) const |
return record number vector pointed to by the given iterator More... | |
const std::vector< std::size_t > & | recidx_vector (const std::size_t recNum) const |
return record number vector selected by the given record number More... | |
std::vector< std::size_t > | recidx_all_recnums () const |
return all record numbers from the recidx_ data member More... | |
const oops::Variables & | obsvariables () const |
return oops variables object (simulated variables) More... | |
std::shared_ptr< const Distribution > | distribution () const |
return MPI distribution object More... | |
template<> | |
bool | readObsSource (ObsFrameRead &obsFrame, const std::string &varName, std::vector< std::string > &varValues) |
Private Member Functions | |
ObsSpace & | operator= (const ObsSpace &)=delete |
disable the "=" operator More... | |
void | print (std::ostream &os) const |
print function for oops::Printable class More... | |
void | createObsGroupFromObsFrame (ObsFrameRead &obsFrame) |
Initialize the database from a source (ObsFrame ojbect) More... | |
void | extendObsSpace (const ObsExtendParameters ¶ms) |
Extend the ObsSpace according to the method requested in the configuration file. More... | |
void | saveToFile () |
Dump the database into the output file. More... | |
void | buildSortedObsGroups () |
Create the recidx data structure holding sorted record groups. More... | |
void | buildRecIdxUnsorted () |
Create the recidx data structure with unsorted record groups. More... | |
void | initFromObsSource (ObsFrameRead &obsFrame) |
initialize the in-memory obs_group_ (ObsGroup) object from the ObsIo source More... | |
void | resizeNlocs (const Dimensions_t nlocsSize, const bool append) |
resize along nlocs dimension More... | |
template<typename VarType > | |
bool | readObsSource (ObsFrameRead &obsFrame, const std::string &varName, std::vector< VarType > &varValues) |
read in values for variable from obs source More... | |
template<typename VarType > | |
void | storeVar (const std::string &varName, std::vector< VarType > &varValues, const Dimensions_t frameStart, const Dimensions_t frameCount) |
store a variable in the obs_group_ object More... | |
template<typename DataType > | |
DataType | getFillValue () |
get fill value for use in the obs_group_ object More... | |
template<typename VarType > | |
void | loadVar (const std::string &group, const std::string &name, const std::vector< int > &chanSelect, std::vector< VarType > &varValues) const |
load a variable from the obs_group_ object More... | |
template<typename VarType > | |
void | saveVar (const std::string &group, std::string name, const std::vector< VarType > &varValues, const std::vector< std::string > &dimList) |
save a variable to the obs_group_ object More... | |
std::size_t | createChannelSelections (const Variable &variable, std::size_t nchansDimIndex, const std::vector< int > &channels, Selection &memSelect, Selection &obsGroupSelect) const |
Create selections of slices of the variable variable along dimension nchansDimIndex corresponding to channels channels . More... | |
void | createVariables (const Has_Variables &srcVarContainer, Has_Variables &destVarContainer, const VarDimMap &dimsAttachedToVars) |
create set of variables from source variables and lists More... | |
template<typename VarType > | |
Variable | openCreateVar (const std::string &varName, const std::vector< std::string > &varDimList) |
open an obs_group_ variable, create the varialbe if necessary More... | |
void | fillChanNumToIndexMap () |
fill in the channel number to channel index map More... | |
void | splitChanSuffix (const std::string &group, const std::string &name, const std::vector< int > &chanSelect, std::string &nameToUse, std::vector< int > &chanSelectToUse) const |
split off the channel number suffix from a given variable name More... | |
template<typename DataType > | |
void | extendVariable (Variable &extendVar, const size_t startFill) |
Extend the given variable. More... | |
Private Attributes | |
const eckit::LocalConfiguration | config_ |
Configuration file. More... | |
const util::DateTime | winbgn_ |
Beginning of DA timing window. More... | |
const util::DateTime | winend_ |
End of DA timing window. More... | |
const eckit::mpi::Comm & | commMPI_ |
MPI communicator. More... | |
std::size_t | gnlocs_ |
total number of locations More... | |
std::size_t | gnlocs_outside_timewindow_ |
number of nlocs from the obs source that are outside the time window More... | |
std::size_t | nrecs_ |
number of records More... | |
ObsDimInfo | dim_info_ |
dimension information for variables in this obs space More... | |
std::map< int, int > | chan_num_to_index_ |
map to go from channel number (not necessarily consecutive) to channel index (consecutive, starting from zero). More... | |
ObsGroup | obs_group_ |
observation data store More... | |
ObsSpaceParameters | obs_params_ |
obs io parameters More... | |
std::string | obsname_ |
name of obs space More... | |
oops::Variables | obsvars_ |
Observation "variables" to be simulated. More... | |
std::shared_ptr< const Distribution > | dist_ |
MPI distribution object. More... | |
std::vector< std::size_t > | indx_ |
indexes of locations to extract from the input obs file More... | |
std::vector< std::size_t > | recnums_ |
record numbers associated with the location indexes More... | |
RecIdxMap | recidx_ |
profile ordering More... | |
bool | recidx_is_sorted_ |
indicator whether the data in recidx_ is sorted More... | |
VarDimMap | dims_attached_to_vars_ |
map showing association of dim names with each variable name More... | |
std::map< std::vector< std::string >, Selection > | known_fe_selections_ |
cache for frontend selection More... | |
std::map< std::vector< std::string >, Selection > | known_be_selections_ |
cache for backend selection More... | |
Observation data class for IODA.
This class handles the memory store of observation data. It handles the transfer of data between memory and files, the distribution of obs data across multiple process elements, the filtering out of obs data that is outside the DA timing window, the transfer of data between UFO, OOPS and IODA, and data type conversion that is "missing value aware".
During the DA run, all data transfers are done in memory. The only time file I/O is invoked is during the constructor (read from the file into the obs container) and optionally during the the destructor (write from obs container into the file).
Definition at line 116 of file src/ObsSpace.h.
typedef RecIdxMap::const_iterator ioda::ObsSpace::RecIdxIter |
Definition at line 120 of file src/ObsSpace.h.
typedef std::map<std::size_t, std::vector<std::size_t> > ioda::ObsSpace::RecIdxMap |
Definition at line 119 of file src/ObsSpace.h.
ioda::ObsSpace::ObsSpace | ( | const eckit::Configuration & | config, |
const eckit::mpi::Comm & | comm, | ||
const util::DateTime & | bgn, | ||
const util::DateTime & | end, | ||
const eckit::mpi::Comm & | timeComm | ||
) |
Config based constructor for an ObsSpace object.
This constructor will read in from the obs file and transfer the variables into the obs container. Obs falling outside the DA timing window, specified by bgn and end, will be discarded before storing them in the obs container.
config | eckit configuration segment holding obs types specs |
comm | MPI communicator for model grouping |
bgn | DateTime object holding the start of the DA timing window |
end | DateTime object holding the end of the DA timing window |
timeComm | MPI communicator for ensemble |
Config based constructor for an ObsSpace object. This constructor will read in from the obs file and transfer the variables into the obs container. Obs falling outside the DA timing window, specified by bgn and end, will be discarded before storing them in the obs container.
[in] | config | ECKIT configuration segment holding obs types specs |
[in] | comm | MPI communicator containing all processes that hold the observations for a given time slot or sub-window. |
[in] | bgn | DateTime object holding the start of the DA timing window |
[in] | end | DateTime object holding the end of the DA timing window |
[in] | time | MPI communicator across time so that the 2D array of processes represented by the product of the comm and time communicators hold all observations in the ObsSpace. |
Definition at line 112 of file ObsSpace.cc.
ioda::ObsSpace::ObsSpace | ( | const ObsSpace & | ) |
|
inlinevirtual |
Definition at line 139 of file src/ObsSpace.h.
|
private |
Create the recidx data structure with unsorted record groups.
This method will initialize the recidx structure without any particular ordering of the record groups.
Definition at line 995 of file ObsSpace.cc.
|
private |
Create the recidx data structure holding sorted record groups.
This method will construct a data structure that holds the location order within each group sorted by the values of the specified sort variable.
Definition at line 946 of file ObsSpace.cc.
|
inline |
This method will return the associated MPI communicator
Definition at line 148 of file src/ObsSpace.h.
|
private |
Create selections of slices of the variable variable
along dimension nchansDimIndex
corresponding to channels channels
.
Definition at line 761 of file ObsSpace.cc.
|
private |
Initialize the database from a source (ObsFrame ojbect)
obsFrame | obs source object |
Definition at line 407 of file ObsSpace.cc.
|
private |
create set of variables from source variables and lists
srcVarContainer | Has_Variables object from source |
destVarContainer | Has_Variables object from destination |
dimsAttachedToVars | Map containing list of attached dims for each variable |
Definition at line 863 of file ObsSpace.cc.
|
inline |
return the name of the MPI distribution
Definition at line 219 of file src/ObsSpace.h.
|
inline |
return MPI distribution object
Definition at line 335 of file src/ObsSpace.h.
ObsDtype ioda::ObsSpace::dtype | ( | const std::string & | group, |
const std::string & | name | ||
) | const |
return data type for group/variable
Definition at line 240 of file ObsSpace.cc.
|
private |
Extend the ObsSpace according to the method requested in the configuration file.
params | object containing specs for extending the ObsSpace |
Definition at line 1094 of file ObsSpace.cc.
|
private |
Extend the given variable.
extendVar | database variable to be extended |
startFill | nlocs index indicating the start of the extended region |
Definition at line 1075 of file ObsSpace.cc.
|
private |
fill in the channel number to channel index map
Definition at line 906 of file ObsSpace.cc.
void ioda::ObsSpace::get_db | ( | const std::string & | group, |
const std::string & | name, | ||
std::vector< double > & | vdata, | ||
const std::vector< int > & | chanSelect = { } |
||
) | const |
Definition at line 282 of file ObsSpace.cc.
void ioda::ObsSpace::get_db | ( | const std::string & | group, |
const std::string & | name, | ||
std::vector< float > & | vdata, | ||
const std::vector< int > & | chanSelect = { } |
||
) | const |
Definition at line 276 of file ObsSpace.cc.
void ioda::ObsSpace::get_db | ( | const std::string & | group, |
const std::string & | name, | ||
std::vector< int > & | vdata, | ||
const std::vector< int > & | chanSelect = { } |
||
) | const |
transfer data from the obs container to vdata
The following get_db methods are the same except for the data type of the data being transferred (integer, float, double, string, DateTime). The caller needs to allocate the memory that the vdata parameter points to
group | Name of container group (ObsValue, ObsError, MetaData, etc.) |
name | Name of container variable |
vdata | Vector where container data is being transferred to |
chanSelect | Channel selection (list of channel numbers) |
Definition at line 270 of file ObsSpace.cc.
void ioda::ObsSpace::get_db | ( | const std::string & | group, |
const std::string & | name, | ||
std::vector< std::string > & | vdata, | ||
const std::vector< int > & | chanSelect = { } |
||
) | const |
Definition at line 291 of file ObsSpace.cc.
void ioda::ObsSpace::get_db | ( | const std::string & | group, |
const std::string & | name, | ||
std::vector< util::DateTime > & | vdata, | ||
const std::vector< int > & | chanSelect = { } |
||
) | const |
|
inline |
return the standard dimension id for the given dimension name
Definition at line 202 of file src/ObsSpace.h.
|
inline |
return the standard dimension name for the given dimension id
Definition at line 192 of file src/ObsSpace.h.
|
inline |
return the standard dimension size for the given dimension id
Definition at line 197 of file src/ObsSpace.h.
|
inlineprivate |
get fill value for use in the obs_group_ object
Definition at line 463 of file src/ObsSpace.h.
|
inline |
return the total number of locations in the corresponding obs spaces across all MPI tasks
Definition at line 168 of file src/ObsSpace.h.
|
inline |
return number of locations from obs source that were outside the time window
Definition at line 171 of file src/ObsSpace.h.
bool ioda::ObsSpace::has | ( | const std::string & | group, |
const std::string & | name | ||
) | const |
return true if group/variable exists
This method checks for the existence of the group, name combination in the obs container. If the combination exists, "true" is returned, otherwise "false" is returned.
Definition at line 230 of file ObsSpace.cc.
|
inline |
return reference to the index vector
This method returns a reference to the index vector data member. This is for read only access. The returned vector has length nlocs() and contains the original indices of locations from the input ioda file corresponding to locations stored in this ObsSpace object – i.e. those that were selected by the timing window filter and the MPI distribution.
Example 1: Suppose the RoundRobin distribution is used and and there are two MPI tasks (ranks 0 and 1). The even-numbered locations from the file will go to rank 0, and the odd-numbered locations will go to rank 1. This means that ObsSpace::index()
will return the vector 0, 2, 4, 6, ...
on rank 0 and 1, 3, 5, 7, ...
on rank 1.
Example 2: Suppose MPI is not used and the file contains 10 locations in total, but locations 2, 3 and 7 are outside the DA timing window. In this case, ObsSpace::index()
will return 0, 1, 4, 5, 6, 8, 9
.
Definition at line 241 of file src/ObsSpace.h.
|
private |
initialize the in-memory obs_group_ (ObsGroup) object from the ObsIo source
obsIo | obs source object |
Definition at line 540 of file ObsSpace.cc.
|
private |
load a variable from the obs_group_ object
This function will load data from the obs_group_ object into the memory buffer (vector) varValues. The chanSelect parameter is only used when the variable is 2D radiance data (nlocs X nchans), and contains a list of channel numbers to be selected from the obs_group_ variable.
group | Name of Group in obs_group_ |
name | Name of Variable in group |
selectChan | Vector of channel numbers for selection |
varValues | memory to load from obs_group_ variable |
Definition at line 660 of file ObsSpace.cc.
|
inline |
return the number of channels in the container. If this is not a radiance obs type, then this will return zero.
Definition at line 180 of file src/ObsSpace.h.
|
inline |
return the number of locations in the obs space. Note that nlocs may be smaller than global unique nlocs due to distribution of obs across multiple process elements.
Definition at line 176 of file src/ObsSpace.h.
|
inline |
return the number of records in the obs space container
This is the number of sets of locations after applying the optional grouping.
Definition at line 185 of file src/ObsSpace.h.
std::size_t ioda::ObsSpace::nvars | ( | ) | const |
return the number of variables in the obs space container. "Variables" refers to the quantities that can be assimilated as opposed to meta data.
Definition at line 189 of file ObsSpace.cc.
const std::vector< std::string > & ioda::ObsSpace::obs_group_vars | ( | ) | const |
return YAML configuration parameter: obsdatain.obsgrouping.group variables
Definition at line 210 of file ObsSpace.cc.
std::string ioda::ObsSpace::obs_sort_order | ( | ) | const |
return YAML configuration parameter: obsdatain.obsgrouping.sort order
Definition at line 220 of file ObsSpace.cc.
std::string ioda::ObsSpace::obs_sort_var | ( | ) | const |
return YAML configuration parameter: obsdatain.obsgrouping.sort variable
Definition at line 215 of file ObsSpace.cc.
|
inline |
true if the groups in the recidx data member are sorted
Definition at line 314 of file src/ObsSpace.h.
|
inline |
return the name of the obs type being stored
Definition at line 216 of file src/ObsSpace.h.
|
inline |
return oops variables object (simulated variables)
Definition at line 332 of file src/ObsSpace.h.
|
inlineprivate |
open an obs_group_ variable, create the varialbe if necessary
Definition at line 519 of file src/ObsSpace.h.
|
inline |
This method will return the associated parameters
Definition at line 151 of file src/ObsSpace.h.
|
private |
print function for oops::Printable class
os | output stream |
This method provides a way to print an ObsSpace object in an output stream.
Definition at line 397 of file ObsSpace.cc.
void ioda::ObsSpace::put_db | ( | const std::string & | group, |
const std::string & | name, | ||
const std::vector< double > & | vdata, | ||
const std::vector< std::string > & | dimList = { "nlocs" } |
||
) |
void ioda::ObsSpace::put_db | ( | const std::string & | group, |
const std::string & | name, | ||
const std::vector< float > & | vdata, | ||
const std::vector< std::string > & | dimList = { "nlocs" } |
||
) |
void ioda::ObsSpace::put_db | ( | const std::string & | group, |
const std::string & | name, | ||
const std::vector< int > & | vdata, | ||
const std::vector< std::string > & | dimList = { "nlocs" } |
||
) |
transfer data from vdata to the obs container
The following put_db methods are the same except for the data type of the data being transferred (integer, float, double, string, DateTime). The caller needs to allocate and assign the memory that the vdata parameter points to.
group | Name of container group (ObsValue, ObsError, MetaData, etc.) |
name | Name of container variable |
vdata | Vector where container data is being transferred from |
dimList | Vector of dimension names (for creating variable if needed) |
Definition at line 306 of file ObsSpace.cc.
void ioda::ObsSpace::put_db | ( | const std::string & | group, |
const std::string & | name, | ||
const std::vector< std::string > & | vdata, | ||
const std::vector< std::string > & | dimList = { "nlocs" } |
||
) |
void ioda::ObsSpace::put_db | ( | const std::string & | group, |
const std::string & | name, | ||
const std::vector< util::DateTime > & | vdata, | ||
const std::vector< std::string > & | dimList = { "nlocs" } |
||
) |
bool ioda::ObsSpace::readObsSource | ( | ObsFrameRead & | obsFrame, |
const std::string & | varName, | ||
std::vector< std::string > & | varValues | ||
) |
|
private |
read in values for variable from obs source
obsFrame | obs frame object |
varName | Name of variable in obs source object |
varValues | values for variable |
Definition at line 493 of file ObsSpace.cc.
std::vector< std::size_t > ioda::ObsSpace::recidx_all_recnums | ( | ) | const |
return all record numbers from the recidx_ data member
Definition at line 382 of file ObsSpace.cc.
const ObsSpace::RecIdxIter ioda::ObsSpace::recidx_begin | ( | ) | const |
Return the begin iterator associated with the recidx_ data member.
Definition at line 344 of file ObsSpace.cc.
const ObsSpace::RecIdxIter ioda::ObsSpace::recidx_end | ( | ) | const |
Return the end iterator associated with the recidx_ data member.
Definition at line 349 of file ObsSpace.cc.
bool ioda::ObsSpace::recidx_has | ( | const std::size_t | recNum | ) | const |
true if given record number exists in the recidx_ data member
recNum | Record number being searched for |
Definition at line 354 of file ObsSpace.cc.
std::size_t ioda::ObsSpace::recidx_recnum | ( | const RecIdxIter & | irec | ) | const |
return record number pointed to by the given iterator
irec | Iterator into the recidx_ data member |
Definition at line 360 of file ObsSpace.cc.
const std::vector< std::size_t > & ioda::ObsSpace::recidx_vector | ( | const RecIdxIter & | irec | ) | const |
return record number vector pointed to by the given iterator
irec | Iterator into the recidx_ data member |
Definition at line 365 of file ObsSpace.cc.
const std::vector< std::size_t > & ioda::ObsSpace::recidx_vector | ( | const std::size_t | recNum | ) | const |
return record number vector selected by the given record number
recNum | Record number being searched for |
Definition at line 370 of file ObsSpace.cc.
|
inline |
return reference to the record number vector
Definition at line 222 of file src/ObsSpace.h.
|
private |
resize along nlocs dimension
nlocsSize | new size to either append or reset |
append | when true append nlocsSize to current size, otherwise reset size |
Definition at line 645 of file ObsSpace.cc.
void ioda::ObsSpace::save | ( | ) |
save the obs space data into a file (if obsdataout specified)
This function will save the obs space data into a file, but only if the obsdataout parameter is specified in the YAML configuration. Note that this function will do nothing if the obsdataout specification is not present.
The purpose of this save function is to fix an issue where the hdf5 library closes the file (via a C API) during the time when the ObsSpace destructor (C++) is still writing to that file. These actions can sometimes get out of sync since they are being triggered from different sources during the clean up after a job completes.
Definition at line 171 of file ObsSpace.cc.
|
private |
Dump the database into the output file.
Definition at line 1003 of file ObsSpace.cc.
|
private |
save a variable to the obs_group_ object
group | Name of Group in obs_group_ |
name | Name of Variable in group. |
varValues | values to be saved |
dimList | Vector of dimension names (for creating variable if needed) |
If the group group
does not contain a variable with the specified name, but this name has the form <string>_<integer> and obs_group_
contains an nchans
dimension, this function will save varValues
in the slice of variable <string> corresponding to channel <integer>. If channel <integer> does not exist or the variable <string> already exists but is not associated with the nchans
dimension, an exception will be thrown.
Definition at line 706 of file ObsSpace.cc.
|
private |
split off the channel number suffix from a given variable name
If the given variable name does not exist, the channelSelect vector is empty, and the given variable name has a suffix matching "_[0-9][0-9]*" (ie, a numeric suffix), then this routine will strip off the channel number from the name and place that channel number into the ouput canSelectToUse vector. The new name will be returned in the nameToUse string. This is being done for backward compatibility until the ufo Variables class and its clients are modified to handle a single variable name and a vector of channel numbers.
group | Name of Group in obs_group_ |
name | Name of Variable in group |
selectChan | Vector of channel numbers for selection |
varName | Name of Variable after splitting off the channel number |
Definition at line 931 of file ObsSpace.cc.
|
private |
store a variable in the obs_group_ object
obsIo | obs source object |
varName | Name of obs_group_ variable for obs_group_ object |
varValues | Values for obs_group_ variable |
frameStart | is the start of the ObsFrame |
frameCount | is the size of the ObsFrame |
Definition at line 822 of file ObsSpace.cc.
|
inline |
This method will return the end of the DA timing window
Definition at line 145 of file src/ObsSpace.h.
|
inline |
This method will return the start of the DA timing window
Definition at line 142 of file src/ObsSpace.h.
|
private |
map to go from channel number (not necessarily consecutive) to channel index (consecutive, starting from zero).
Definition at line 365 of file src/ObsSpace.h.
|
private |
MPI communicator.
Definition at line 349 of file src/ObsSpace.h.
|
private |
Configuration file.
Definition at line 340 of file src/ObsSpace.h.
|
private |
dimension information for variables in this obs space
Definition at line 361 of file src/ObsSpace.h.
|
private |
map showing association of dim names with each variable name
Definition at line 395 of file src/ObsSpace.h.
|
private |
MPI distribution object.
Definition at line 380 of file src/ObsSpace.h.
|
private |
total number of locations
Definition at line 352 of file src/ObsSpace.h.
|
private |
number of nlocs from the obs source that are outside the time window
Definition at line 355 of file src/ObsSpace.h.
|
private |
indexes of locations to extract from the input obs file
Definition at line 383 of file src/ObsSpace.h.
|
private |
cache for backend selection
Definition at line 401 of file src/ObsSpace.h.
|
private |
cache for frontend selection
Definition at line 398 of file src/ObsSpace.h.
|
private |
number of records
Definition at line 358 of file src/ObsSpace.h.
|
private |
observation data store
Definition at line 368 of file src/ObsSpace.h.
|
private |
obs io parameters
Definition at line 371 of file src/ObsSpace.h.
|
private |
name of obs space
Definition at line 374 of file src/ObsSpace.h.
|
private |
Observation "variables" to be simulated.
Definition at line 377 of file src/ObsSpace.h.
|
private |
profile ordering
Definition at line 389 of file src/ObsSpace.h.
|
private |
indicator whether the data in recidx_ is sorted
Definition at line 392 of file src/ObsSpace.h.
|
private |
record numbers associated with the location indexes
Definition at line 386 of file src/ObsSpace.h.
|
private |
Beginning of DA timing window.
Definition at line 343 of file src/ObsSpace.h.
|
private |
End of DA timing window.
Definition at line 346 of file src/ObsSpace.h.