5.8.5 : Format de données et initialisation



Afin d'empiller toutes les images que nous allons générer 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 toujours 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. Et on ne le dira jamais assez, mais plus il sera également simple à utiliser et à comprendre.


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 :

  • PhoenixHDF5 : générateur de code qui permet de créer à la volée des classes qui gèrent des données en HDF5.


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, voire ne pas utiliser de classe du tout.


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 (GrayScottGpuNvcppVector/DataFormat) :

phoenix_hdf5 -i MatrixHdf5.ph5


Qui nous donnera les deux fichiers :

  • MatrixHdf5.h
  • MatrixHdf5.cpp


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