#include <Hdf5DataReader.hpp>
Public Member Functions | |
Hdf5DataReader (const std::string &rDirectory, const std::string &rBaseName, bool makeAbsolute=true) | |
std::vector< double > | GetVariableOverTime (const std::string &rVariableName, unsigned nodeIndex) |
void | GetVariableOverNodes (Vec data, const std::string &rVariableName, unsigned timestep=0) |
std::vector< double > | GetUnlimitedDimensionValues () |
unsigned | GetNumberOfRows () |
std::vector< std::string > | GetVariableNames () |
std::string | GetUnit (const std::string &rVariableName) |
bool | IsDataComplete () |
std::vector< unsigned > | GetIncompleteNodeMap () |
void | Close () |
~Hdf5DataReader () | |
Private Attributes | |
std::string | mDirectory |
std::string | mBaseName |
hid_t | mFileId |
hid_t | mVariablesDatasetId |
unsigned | mVariablesDatasetRank |
hsize_t | mVariablesDatasetSizes [MAX_DATASET_RANK] |
bool | mIsUnlimitedDimensionSet |
hid_t | mTimeDatasetId |
hsize_t | mNumberTimesteps |
std::vector< std::string > | mVariableNames |
std::map< std::string, unsigned > | mVariableToColumnIndex |
std::map< std::string, std::string > | mVariableToUnit |
bool | mIsDataComplete |
std::vector< unsigned > | mIncompleteNodeIndices |
Static Private Attributes | |
static const unsigned | MAX_DATASET_RANK = 3 |
A concrete HDF5 data reader class.
Definition at line 45 of file Hdf5DataReader.hpp.
Hdf5DataReader::Hdf5DataReader | ( | const std::string & | rDirectory, | |
const std::string & | rBaseName, | |||
bool | makeAbsolute = true | |||
) |
Read data from the given files into memory.
rDirectory | The directory the files are stored in | |
rBaseName | The base name of the files to read (i.e. without the extensions) | |
makeAbsolute | Whether to convert directory to an absolute path using the OutputFileHandler (defaults to true) |
Definition at line 35 of file Hdf5DataReader.cpp.
References OutputFileHandler::GetOutputDirectoryFullPath(), MAX_DATASET_RANK, mBaseName, mFileId, mIncompleteNodeIndices, mIsDataComplete, mIsUnlimitedDimensionSet, mNumberTimesteps, mTimeDatasetId, mVariableNames, mVariablesDatasetId, mVariablesDatasetRank, mVariablesDatasetSizes, mVariableToColumnIndex, and mVariableToUnit.
Hdf5DataReader::~Hdf5DataReader | ( | ) |
void Hdf5DataReader::Close | ( | ) |
Close any open files.
Definition at line 334 of file Hdf5DataReader.cpp.
References mFileId, mIsUnlimitedDimensionSet, mTimeDatasetId, and mVariablesDatasetId.
Referenced by ~Hdf5DataReader().
std::vector< unsigned > Hdf5DataReader::GetIncompleteNodeMap | ( | ) |
Get method for mIncompleteNodeIndices.
Definition at line 372 of file Hdf5DataReader.cpp.
References mIncompleteNodeIndices.
unsigned Hdf5DataReader::GetNumberOfRows | ( | ) |
Get the number of rows in the data file.
Definition at line 352 of file Hdf5DataReader.cpp.
References mVariablesDatasetSizes.
Referenced by AbstractHdf5Converter< ELEMENT_DIM, SPACE_DIM >::AbstractHdf5Converter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::PostProcessingWriter(), PseudoEcgCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PseudoEcgCalculator(), Hdf5ToMeshalyzerConverter< ELEMENT_DIM, SPACE_DIM >::Write(), and Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Write().
std::string Hdf5DataReader::GetUnit | ( | const std::string & | rVariableName | ) |
Get the units in which a given variable is measured.
rVariableName | name of a variable in the data file |
Definition at line 362 of file Hdf5DataReader.cpp.
References mVariableToUnit.
std::vector< double > Hdf5DataReader::GetUnlimitedDimensionValues | ( | ) |
Get the unlimited dimension values.
Definition at line 307 of file Hdf5DataReader.cpp.
References mIsUnlimitedDimensionSet, mNumberTimesteps, and mTimeDatasetId.
Referenced by AbstractHdf5Converter< ELEMENT_DIM, SPACE_DIM >::AbstractHdf5Converter(), PropagationPropertiesCalculator::CalculateAboveThresholdDepolarisationsForLastAp(), PropagationPropertiesCalculator::CalculateActionPotentialDuration(), PropagationPropertiesCalculator::CalculateAllAboveThresholdDepolarisations(), PropagationPropertiesCalculator::CalculateAllActionPotentialDurations(), PropagationPropertiesCalculator::CalculateAllConductionVelocities(), PropagationPropertiesCalculator::CalculateAllMaximumUpstrokeVelocities(), PropagationPropertiesCalculator::CalculateConductionVelocity(), PropagationPropertiesCalculator::CalculateMaximumUpstrokeVelocity(), PropagationPropertiesCalculator::CalculateUpstrokeTimes(), AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), Hdf5ToMeshalyzerConverter< ELEMENT_DIM, SPACE_DIM >::Write(), and Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Write().
std::vector< std::string > Hdf5DataReader::GetVariableNames | ( | ) |
Get the variable names.
Definition at line 357 of file Hdf5DataReader.cpp.
References mVariableNames.
Referenced by AbstractHdf5Converter< ELEMENT_DIM, SPACE_DIM >::AbstractHdf5Converter().
void Hdf5DataReader::GetVariableOverNodes | ( | Vec | data, | |
const std::string & | rVariableName, | |||
unsigned | timestep = 0 | |||
) |
Get the values of a given variable at each node at a given time step.
data | Petsc vec to hold the data | |
rVariableName | name of a variable in the data file | |
timestep | the time step for which the data is obtained (defaults to 0) |
Definition at line 245 of file Hdf5DataReader.cpp.
References mIsDataComplete, mIsUnlimitedDimensionSet, mNumberTimesteps, mVariablesDatasetId, mVariablesDatasetSizes, and mVariableToColumnIndex.
Referenced by PseudoEcgCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::ComputePseudoEcgAtOneTimeStep(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), AbstractCardiacProblem< ELEMENT_DIM, ELEMENT_DIM, 1 >::load(), Hdf5ToMeshalyzerConverter< ELEMENT_DIM, SPACE_DIM >::Write(), and Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Write().
std::vector< double > Hdf5DataReader::GetVariableOverTime | ( | const std::string & | rVariableName, | |
unsigned | nodeIndex | |||
) |
Get the values of a given variable at each time step at a given node.
rVariableName | name of a variable in the data file | |
nodeIndex | the index of the node for which the data is obtained |
Definition at line 183 of file Hdf5DataReader.cpp.
References mIncompleteNodeIndices, mIsDataComplete, mIsUnlimitedDimensionSet, mVariablesDatasetId, mVariablesDatasetSizes, and mVariableToColumnIndex.
Referenced by PropagationPropertiesCalculator::CalculateAboveThresholdDepolarisationsForLastAp(), PropagationPropertiesCalculator::CalculateActionPotentialDuration(), PropagationPropertiesCalculator::CalculateAllAboveThresholdDepolarisations(), PropagationPropertiesCalculator::CalculateAllActionPotentialDurations(), PropagationPropertiesCalculator::CalculateAllConductionVelocities(), PropagationPropertiesCalculator::CalculateAllMaximumUpstrokeVelocities(), PropagationPropertiesCalculator::CalculateConductionVelocity(), PropagationPropertiesCalculator::CalculateMaximumUpstrokeVelocity(), PropagationPropertiesCalculator::CalculatePeakMembranePotential(), PropagationPropertiesCalculator::CalculateUpstrokeTimes(), AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge(), and PseudoEcgCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PseudoEcgCalculator().
bool Hdf5DataReader::IsDataComplete | ( | ) |
Get method for mIsDataComplete.
Definition at line 367 of file Hdf5DataReader.cpp.
References mIsDataComplete.
const unsigned Hdf5DataReader::MAX_DATASET_RANK = 3 [static, private] |
Defined in HDF5 writer too.
Definition at line 49 of file Hdf5DataReader.hpp.
Referenced by Hdf5DataReader().
std::string Hdf5DataReader::mBaseName [private] |
The base name for the output data files.
Definition at line 52 of file Hdf5DataReader.hpp.
Referenced by Hdf5DataReader().
std::string Hdf5DataReader::mDirectory [private] |
Directory output files will be stored in.
Definition at line 51 of file Hdf5DataReader.hpp.
hid_t Hdf5DataReader::mFileId [private] |
The data file ID.
Definition at line 54 of file Hdf5DataReader.hpp.
Referenced by Close(), and Hdf5DataReader().
std::vector<unsigned> Hdf5DataReader::mIncompleteNodeIndices [private] |
Vector of node indices for which the data file does not contain data.
Definition at line 69 of file Hdf5DataReader.hpp.
Referenced by GetIncompleteNodeMap(), GetVariableOverTime(), and Hdf5DataReader().
bool Hdf5DataReader::mIsDataComplete [private] |
Whether the data file is complete.
Definition at line 68 of file Hdf5DataReader.hpp.
Referenced by GetVariableOverNodes(), GetVariableOverTime(), Hdf5DataReader(), and IsDataComplete().
bool Hdf5DataReader::mIsUnlimitedDimensionSet [private] |
Is the unlimited dimension set
Definition at line 60 of file Hdf5DataReader.hpp.
Referenced by Close(), GetUnlimitedDimensionValues(), GetVariableOverNodes(), GetVariableOverTime(), and Hdf5DataReader().
hsize_t Hdf5DataReader::mNumberTimesteps [private] |
The number of time steps recorded in the data file.
Definition at line 62 of file Hdf5DataReader.hpp.
Referenced by GetUnlimitedDimensionValues(), GetVariableOverNodes(), and Hdf5DataReader().
hid_t Hdf5DataReader::mTimeDatasetId [private] |
The time data set ID.
Definition at line 61 of file Hdf5DataReader.hpp.
Referenced by Close(), GetUnlimitedDimensionValues(), and Hdf5DataReader().
std::vector<std::string> Hdf5DataReader::mVariableNames [private] |
The variable names.
Definition at line 64 of file Hdf5DataReader.hpp.
Referenced by GetVariableNames(), and Hdf5DataReader().
hid_t Hdf5DataReader::mVariablesDatasetId [private] |
The variables data set ID.
Definition at line 56 of file Hdf5DataReader.hpp.
Referenced by Close(), GetVariableOverNodes(), GetVariableOverTime(), and Hdf5DataReader().
The rank of the variables data set.
Definition at line 57 of file Hdf5DataReader.hpp.
Referenced by Hdf5DataReader().
hsize_t Hdf5DataReader::mVariablesDatasetSizes[MAX_DATASET_RANK] [private] |
The sizes of each variable data set.
Definition at line 58 of file Hdf5DataReader.hpp.
Referenced by GetNumberOfRows(), GetVariableOverNodes(), GetVariableOverTime(), and Hdf5DataReader().
std::map<std::string, unsigned> Hdf5DataReader::mVariableToColumnIndex [private] |
Map between variable names and data column numbers.
Definition at line 65 of file Hdf5DataReader.hpp.
Referenced by GetVariableOverNodes(), GetVariableOverTime(), and Hdf5DataReader().
std::map<std::string, std::string> Hdf5DataReader::mVariableToUnit [private] |
Map between variable names and variable units.
Definition at line 66 of file Hdf5DataReader.hpp.
Referenced by GetUnit(), and Hdf5DataReader().