XMLIOSERVER 0.4
Serveur d'Entrées/Sorties parallèles
|
Classe permettant de lire les fichiers de données au format netCDF-4. Plus de détails...
#include <inetcdf4.hpp>
Types publics | |
typedef std::vector< std::string > | CNetCDF4Path |
Redéfinition de std::vector<std::string> pour simplification d'écriture. | |
Fonctions membres publiques | |
CINetCDF4 (void) | |
Constructeur simple. | |
CINetCDF4 (const std::string &_filename) | |
Constructeur à partir d'un nom de fichier au format netCDF4. | |
CINetCDF4 (const CINetCDF4 &_inetcdf4) | |
Constructeur par copie . | |
CINetCDF4 (const CINetCDF4 *const _inetcdf4_ptr) | |
Constructeur par copie. | |
virtual | ~CINetCDF4 (void) |
Destructeur de l'objet (le fichier est clos lors de son appel). | |
std::size_t | getNbOfTimestep (void) |
std::string | getUnlimitedDimensionName (void) |
std::map< std::string, std::size_t > | getDimensions (const std::string *const _varname=NULL) |
std::vector< std::string > | getDimensionsIdList (const std::string *_varname) |
std::vector< std::string > | getAttributes (const std::string *const _varname=NULL) |
std::vector< std::string > | getGroups (void) |
std::vector< std::string > | getVariables (void) |
void | setCurrentPath (const CNetCDF4Path &_path) |
const CNetCDF4Path & | getCurrentPath (void) const |
template<class DataType > | |
void | readAttribute (const std::string &_attname, std::vector< DataType > &_value, const std::string *_varname=NULL) |
void | readAttribute (const std::string &_attname, std::string &_value, const std::string *_varname=NULL) |
template<class DataType , std::size_t ndim> | |
void | readData (boost::multi_array< DataType, ndim > &_data, const std::string &_varname, std::size_t _record=0, const std::vector< std::size_t > *_start=NULL, const std::vector< std::size_t > *_count=NULL) |
template<> | |
void | readData_ (int _grpid, int _varid, const std::vector< std::size_t > &_sstart, const std::vector< std::size_t > &_scount, float *_data) |
template<> | |
void | readData_ (int _grpid, int _varid, const std::vector< std::size_t > &_sstart, const std::vector< std::size_t > &_scount, int *_data) |
template<> | |
void | readData_ (int _grpid, int _varid, const std::vector< std::size_t > &_sstart, const std::vector< std::size_t > &_scount, double *_data) |
template<> | |
void | readAttribute_ (const std::string &_attname, double *_value, int _grpid, int _varid) |
template<> | |
void | readAttribute_ (const std::string &_attname, float *_value, int _grpid, int _varid) |
template<> | |
void | readAttribute_ (const std::string &_attname, int *_value, int _grpid, int _varid) |
template<> | |
void | readAttribute_ (const std::string &_attname, char *_value, int _grpid, int _varid) |
Attributs publics | |
std::vector< std::string > | path |
Chemin vers le groupe de données en cours de lecture. | |
int | ncidp |
Identifiant de fichiers netCDF. | |
Fonctions membres protégées | |
int | getCurrentGroup (void) |
Retourne l'identifiant du groupe courant (le chemin est gardée en mémoire dans la variable path). | |
int | getGroup (const CNetCDF4Path &_path) |
Retourne l'identifiant du groupe dont le chemin est passé en argument. | |
int | getVariable (const std::string &_varname) |
Retourne l'identifiant d'une variable dans le groupe courant. | |
int | getDimension (const std::string &_dimname) |
Retourne l'identifiant d'une dimension dans le groupe courant. | |
std::vector< std::size_t > | getDimensions (const std::string &_varname) |
Retourne les dimensions d'une variable. | |
int | getUnlimitedDimension (void) |
Retourne l'identifiant de la dimension non limité dans le fichier. | |
bool | varExist (const std::string &_varname) |
Indique si une variable existe dans le groupe courant. | |
Fonctions membres privées | |
void | getReadDataInfos (const std::string &_varname, std::size_t _record, std::size_t &_array_size, std::vector< std::size_t > &_sstart, std::vector< std::size_t > &_scount, const std::vector< std::size_t > *_start, const std::vector< std::size_t > *_count) |
template<class DataType > | |
void | readData_ (int _grpid, int _varid, const std::vector< std::size_t > &_sstart, const std::vector< std::size_t > &_scount, DataType *_data) |
template<class DataType > | |
void | readAttribute_ (const std::string &_attname, DataType *_value, int _grpid, int _varid=NC_GLOBAL) |
Fonctions membres privées statiques | |
static void | CheckError (int _status) throw (CException) |
Vérifie le code d'erreur retourné lors de l'appel d'une fonction dans la bibliothèque netCDF afin de détecter les erreurs. |
Classe permettant de lire les fichiers de données au format netCDF-4.
Définition à la ligne 51 du fichier inetcdf4.hpp.
typedef std::vector<std::string> xmlioserver::io::CINetCDF4::CNetCDF4Path |
Redéfinition de std::vector<std::string> pour simplification d'écriture.
Définition à la ligne 56 du fichier inetcdf4.hpp.
xmlioserver::io::CINetCDF4::CINetCDF4 | ( | void | ) |
Constructeur simple.
xmlioserver::io::CINetCDF4::CINetCDF4 | ( | const std::string & | _filename | ) | [explicit] |
Constructeur à partir d'un nom de fichier au format netCDF4.
_filename | : un nom de fichier au format netCDF4. |
Définition à la ligne 25 du fichier inetcdf4.cpp.
Références CheckError(), et ncidp.
xmlioserver::io::CINetCDF4::CINetCDF4 | ( | const CINetCDF4 & | _inetcdf4 | ) |
Constructeur par copie .
_inetcdf4 | : référence de l'objet à copier. |
xmlioserver::io::CINetCDF4::CINetCDF4 | ( | const CINetCDF4 *const | _inetcdf4_ptr | ) |
Constructeur par copie.
_inetcdf4_ptr | : le pointeur sur l'objet à copier. |
xmlioserver::io::CINetCDF4::~CINetCDF4 | ( | void | ) | [virtual] |
Destructeur de l'objet (le fichier est clos lors de son appel).
Définition à la ligne 32 du fichier inetcdf4.cpp.
Références CheckError(), et ncidp.
void xmlioserver::io::CINetCDF4::CheckError | ( | int | _status | ) | throw (CException) [static, private] |
Vérifie le code d'erreur retourné lors de l'appel d'une fonction dans la bibliothèque netCDF afin de détecter les erreurs.
_status | : le code d'erreur retourné par l'appel d'une fonction netCDF. |
Exemple d'utilisation:
//> Retourne l'identifiant d'une variable netCDF dont le nom est 'varname' dans le groupe grpid CheckError(nc_inq_varid (grpid, varname, varid));
Définition à la ligne 39 du fichier inetcdf4.cpp.
Références XIOS_ERROR.
Référencé par CINetCDF4(), getAttributes(), getDimension(), getDimensions(), getDimensionsIdList(), getGroup(), getGroups(), getUnlimitedDimension(), getUnlimitedDimensionName(), getVariable(), getVariables(), readData_(), et ~CINetCDF4().
std::vector< std::string > xmlioserver::io::CINetCDF4::getAttributes | ( | const std::string *const | _varname = NULL | ) |
Définition à la ligne 251 du fichier inetcdf4.cpp.
Références CheckError(), getCurrentGroup(), et getVariable().
Référencé par xmlioserver::io::CINetCDF4Adv::hasAttribute().
int xmlioserver::io::CINetCDF4::getCurrentGroup | ( | void | ) | [protected] |
Retourne l'identifiant du groupe courant (le chemin est gardée en mémoire dans la variable path).
Définition à la ligne 51 du fichier inetcdf4.cpp.
Références getCurrentPath(), et getGroup().
Référencé par getAttributes(), getDimension(), getDimensions(), getDimensionsIdList(), getGroups(), getUnlimitedDimension(), getVariable(), getVariables(), readData(), et varExist().
const CINetCDF4::CNetCDF4Path & xmlioserver::io::CINetCDF4::getCurrentPath | ( | void | ) | const |
Définition à la ligne 127 du fichier inetcdf4.cpp.
Références path.
Référencé par getCurrentGroup().
int xmlioserver::io::CINetCDF4::getDimension | ( | const std::string & | _dimname | ) | [protected] |
Retourne l'identifiant d'une dimension dans le groupe courant.
_dimname | : Le nom d'une dimension dans le fichier de données. |
Définition à la ligne 79 du fichier inetcdf4.cpp.
Références CheckError(), et getCurrentGroup().
std::map< std::string, std::size_t > xmlioserver::io::CINetCDF4::getDimensions | ( | const std::string *const | _varname = NULL | ) |
Définition à la ligne 273 du fichier inetcdf4.cpp.
Références CheckError(), getCurrentGroup(), et getVariable().
Référencé par getNbOfTimestep(), xmlioserver::io::CINetCDF4Adv::getNbVertex(), getReadDataInfos(), xmlioserver::io::CINetCDF4Adv::isCurvilinear(), xmlioserver::io::CINetCDF4Adv::isRectilinear(), xmlioserver::io::CINetCDF4Adv::isTemporal(), et xmlioserver::io::CINetCDF4Adv::isUnstructured().
std::vector< std::size_t > xmlioserver::io::CINetCDF4::getDimensions | ( | const std::string & | _varname | ) | [protected] |
Retourne les dimensions d'une variable.
_varname | : Le nom d'une variable dans le fichier de données. |
Définition à la ligne 95 du fichier inetcdf4.cpp.
Références CheckError(), getCurrentGroup(), getVariable(), et UNLIMITED_DIM.
std::vector< std::string > xmlioserver::io::CINetCDF4::getDimensionsIdList | ( | const std::string * | _varname | ) |
Définition à la ligne 373 du fichier inetcdf4.cpp.
Références CheckError(), getCurrentGroup(), et getVariable().
Référencé par xmlioserver::io::CINetCDF4Adv::getCoordinatesId(), xmlioserver::io::CINetCDF4Adv::getNbVertex(), getReadDataInfos(), et xmlioserver::io::CINetCDF4Adv::isUnstructured().
int xmlioserver::io::CINetCDF4::getGroup | ( | const CNetCDF4Path & | _path | ) | [protected] |
Retourne l'identifiant du groupe dont le chemin est passé en argument.
_path | : Un chemin dans la structure de donnée netCDF. |
Exemple d'utilisation:
//> Retourne l'identifiant d'un group. CINetCDF4 ncinput(std::string("mon_fichier.nc")); CNetCDF4Path path; path.push_back("mes_donnees"); path.push_back("mes_tableaux"); int groupid = ncinput.getGroup(path);
Définition à la ligne 56 du fichier inetcdf4.cpp.
Références CheckError(), et ncidp.
Référencé par getCurrentGroup(), et getUnlimitedDimensionName().
std::vector< std::string > xmlioserver::io::CINetCDF4::getGroups | ( | void | ) |
Définition à la ligne 308 du fichier inetcdf4.cpp.
Références CheckError(), et getCurrentGroup().
std::size_t xmlioserver::io::CINetCDF4::getNbOfTimestep | ( | void | ) |
Définition à la ligne 353 du fichier inetcdf4.cpp.
Références getDimensions(), getUnlimitedDimension(), et getUnlimitedDimensionName().
void xmlioserver::io::CINetCDF4::getReadDataInfos | ( | const std::string & | _varname, |
std::size_t | _record, | ||
std::size_t & | _array_size, | ||
std::vector< std::size_t > & | _sstart, | ||
std::vector< std::size_t > & | _scount, | ||
const std::vector< std::size_t > * | _start, | ||
const std::vector< std::size_t > * | _count | ||
) | [private] |
Définition à la ligne 141 du fichier inetcdf4.cpp.
Références getDimensions(), getDimensionsIdList(), et getUnlimitedDimensionName().
Référencé par readData().
int xmlioserver::io::CINetCDF4::getUnlimitedDimension | ( | void | ) | [protected] |
Retourne l'identifiant de la dimension non limité dans le fichier.
Définition à la ligne 87 du fichier inetcdf4.cpp.
Références CheckError(), et getCurrentGroup().
Référencé par getNbOfTimestep(), getUnlimitedDimensionName(), et xmlioserver::io::CINetCDF4Adv::hasTemporalDim().
std::string xmlioserver::io::CINetCDF4::getUnlimitedDimensionName | ( | void | ) |
Définition à la ligne 360 du fichier inetcdf4.cpp.
Références CheckError(), getGroup(), getUnlimitedDimension(), et path.
Référencé par getNbOfTimestep(), getReadDataInfos(), et xmlioserver::io::CINetCDF4Adv::getTimeCoordName().
int xmlioserver::io::CINetCDF4::getVariable | ( | const std::string & | _varname | ) | [protected] |
Retourne l'identifiant d'une variable dans le groupe courant.
_varname | : Le nom d'une variable dans le fichier de données. |
Définition à la ligne 71 du fichier inetcdf4.cpp.
Références CheckError(), et getCurrentGroup().
Référencé par getAttributes(), getDimensions(), getDimensionsIdList(), et readData().
std::vector< std::string > xmlioserver::io::CINetCDF4::getVariables | ( | void | ) |
Définition à la ligne 331 du fichier inetcdf4.cpp.
Références CheckError(), et getCurrentGroup().
Référencé par xmlioserver::io::CINetCDF4Adv::getBoundVariables(), et xmlioserver::io::CINetCDF4Adv::getCoordVariables().
void xmlioserver::io::CINetCDF4::readAttribute | ( | const std::string & | _attname, |
std::vector< DataType > & | _value, | ||
const std::string * | _varname = NULL |
||
) |
Définition à la ligne 44 du fichier inetcdf4_impl.hpp.
Référencé par xmlioserver::io::CINetCDF4Adv::getBoundsId(), xmlioserver::io::CINetCDF4Adv::getCoordinatesId(), xmlioserver::io::CINetCDF4Adv::getLatCoordName(), xmlioserver::io::CINetCDF4Adv::getLonCoordName(), xmlioserver::io::CINetCDF4Adv::getMissingValue(), xmlioserver::io::CINetCDF4Adv::getTimeCoordName(), et xmlioserver::io::CINetCDF4Adv::getVertCoordName().
void xmlioserver::io::CINetCDF4::readAttribute | ( | const std::string & | _attname, |
std::string & | _value, | ||
const std::string * | _varname = NULL |
||
) |
Définition à la ligne 214 du fichier inetcdf4.cpp.
void xmlioserver::io::CINetCDF4::readAttribute_ | ( | const std::string & | _attname, |
double * | _value, | ||
int | _grpid, | ||
int | _varid | ||
) |
Définition à la ligne 223 du fichier inetcdf4.cpp.
void xmlioserver::io::CINetCDF4::readAttribute_ | ( | const std::string & | _attname, |
float * | _value, | ||
int | _grpid, | ||
int | _varid | ||
) |
Définition à la ligne 230 du fichier inetcdf4.cpp.
void xmlioserver::io::CINetCDF4::readAttribute_ | ( | const std::string & | _attname, |
DataType * | _value, | ||
int | _grpid, | ||
int | _varid = NC_GLOBAL |
||
) | [private] |
void xmlioserver::io::CINetCDF4::readAttribute_ | ( | const std::string & | _attname, |
char * | _value, | ||
int | _grpid, | ||
int | _varid | ||
) |
Définition à la ligne 244 du fichier inetcdf4.cpp.
void xmlioserver::io::CINetCDF4::readAttribute_ | ( | const std::string & | _attname, |
int * | _value, | ||
int | _grpid, | ||
int | _varid | ||
) |
Définition à la ligne 237 du fichier inetcdf4.cpp.
void xmlioserver::io::CINetCDF4::readData | ( | boost::multi_array< DataType, ndim > & | _data, |
const std::string & | _varname, | ||
std::size_t | _record = 0 , |
||
const std::vector< std::size_t > * | _start = NULL , |
||
const std::vector< std::size_t > * | _count = NULL |
||
) |
Définition à la ligne 25 du fichier inetcdf4_impl.hpp.
Références getCurrentGroup(), getReadDataInfos(), getVariable(), et readData_().
void xmlioserver::io::CINetCDF4::readData_ | ( | int | _grpid, |
int | _varid, | ||
const std::vector< std::size_t > & | _sstart, | ||
const std::vector< std::size_t > & | _scount, | ||
DataType * | _data | ||
) | [private] |
void xmlioserver::io::CINetCDF4::readData_ | ( | int | _grpid, |
int | _varid, | ||
const std::vector< std::size_t > & | _sstart, | ||
const std::vector< std::size_t > & | _scount, | ||
double * | _data | ||
) |
Définition à la ligne 204 du fichier inetcdf4.cpp.
Références CheckError().
void xmlioserver::io::CINetCDF4::readData_ | ( | int | _grpid, |
int | _varid, | ||
const std::vector< std::size_t > & | _sstart, | ||
const std::vector< std::size_t > & | _scount, | ||
float * | _data | ||
) |
Définition à la ligne 186 du fichier inetcdf4.cpp.
Références CheckError().
void xmlioserver::io::CINetCDF4::readData_ | ( | int | _grpid, |
int | _varid, | ||
const std::vector< std::size_t > & | _sstart, | ||
const std::vector< std::size_t > & | _scount, | ||
int * | _data | ||
) |
Définition à la ligne 195 du fichier inetcdf4.cpp.
Références CheckError().
void xmlioserver::io::CINetCDF4::setCurrentPath | ( | const CNetCDF4Path & | _path | ) |
Définition à la ligne 134 du fichier inetcdf4.cpp.
Références path.
bool xmlioserver::io::CINetCDF4::varExist | ( | const std::string & | _varname | ) | [protected] |
Indique si une variable existe dans le groupe courant.
_varname | : Le nom d'une variable dans le fichier de données. |
Définition à la ligne 118 du fichier inetcdf4.cpp.
Références getCurrentGroup().
Référencé par xmlioserver::io::CINetCDF4Adv::hasVariable().
Identifiant de fichiers netCDF.
Définition à la ligne 237 du fichier inetcdf4.hpp.
Référencé par CINetCDF4(), getGroup(), et ~CINetCDF4().
std::vector<std::string> xmlioserver::io::CINetCDF4::path |
Chemin vers le groupe de données en cours de lecture.
Définition à la ligne 236 du fichier inetcdf4.hpp.
Référencé par getCurrentPath(), getUnlimitedDimensionName(), et setCurrentPath().