3.1.1 : Description du format de données



Le format de données est très simple : Un tableau à trois dimensions :



Format de données interne



Les "images" seront décrites par des nombres floatant simple précision ce qui sera suffisant pour notre exemple. Ce format de données interne ne sera pas sauvegardé dans des fichiers mais nous permettra de manipuler nos images simplement.

La description de tels images se fait simplement avec la bibliothèque TensorAlloc.

Ces matrices à deux dimensions peuvent être décrites comme suit :

1
PTensor<float> matV(AllocMode::ALIGNED, nbRow, nbCol);		//V concentration


Où :



Afin d'empiller toutes ces images ensemble, nous allons utiliser le format HDF5 (Hierartical Data Format) qui permet de sauvergarder très simplement n'importe quel type de données.

Il convient néanmoins de rappeler que plus un format de données est plat, plus il sera rapide à lire et à écrire et plus il autorisera des calculs efficaces.


Cette tâche sera d'autant simplifiée par l'utilisation d'un générateur de code qui permet de faire cela très simplement :



Note : le format HDF5 est vraiment très puissant et simple à utilser. L'utilisation d'un générateur de code ne permet pas de contourner une éventuelle difficulté mais juste de gagner du temps. Vous pouvez très bien créer cette classe vous-même si vous le souhaitez.


La description en .ph5 est vraiment minimale (appellons ce fichier MatrixHdf5.ph5) :

1
2
3
4
5
///@brief Matrix of the concentation of the U specie
MatrixHdf5[matrix]{
	///Matrix of the concentration of the U specie
	Tensor(float, nbRow, nbCol) tabMat[image];
}


Ce fichier peut être téléchargé ici.

Ensuite, il faut lancer la commande suivante dans le dossier (Examples/GrayScottDataFormat) :

phoenix_hdf5 -i MatrixHdf5.ph5


Qui nous donnera les deux fichiers :



Ils décrivent la classe MatrixHdf5 qui nous permettra de lire et d'écrire nos données en HDF5.