HDF5

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Description

HDF5 (Hierarchical Data Format) est une bibliothèque pour gérer la mise en forme de données scientifiques. Elle permet de stocker, de lire, de visualiser, de manipuler et d'analyser les données de façon efficace.

Avantages et inconvénients

Voici une courte liste des avantages et inconvénients de la bibliothèque HDF5 :

  • Les données sont indépendantes de l'architecture (boutisme).
  • Les données sont structurées de façon à retenir toute information pertinente (e.g., unité physique).
  • Peut être utilisée en parallèle (MPI-IO).
  • Il est possible de compresser les données à l'écriture (zlib ou szip).
  • Interface pour C, C++, Fortran 90, Java et Python.
  • Permet de gérer n'importe quel type de données (plus d'options que NetCDF)
  • Permet de lire ou d'écrire au format .mat de Matlab.
  • C'est un logiciel libre disponible pour la plupart des plateformes.
  • Documentation, tutoriels et exemples disponibles en ligne sur le site web.
  • L'interface est plus complexe que celle de NetCDF.

Exemple

Voici un exemple de création d'un ensemble de données dans un fichier :


Fichier : ex_hdf5.c
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * Copyright by the Board of Trustees of the University of Illinois.         *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the files COPYING and Copyright.html.  COPYING can be found at the root   *
 * of the source code distribution tree; Copyright.html can be found at the  *
 * root level of an installed copy of the electronic HDF5 document set and   *
 * is linked from the top-level documents page.  It can also be found at     *
 * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
 * access to either file, you may request a copy from help@hdfgroup.org.     *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
/*
 *  L'exemple illustre comment créer un ensemble de données dans un tableau 
 *  4 x 6.  Il provient du tutoriel de HDF5.
 */
 
#include "hdf5.h"
#define FILE "dset.h5"
 
int main() {
 
   hid_t       file_id, dataset_id, dataspace_id;
   hsize_t     dims[2];
   herr_t      status;
 
   /* Crée un nouveau fichier en utilisant les propriétés par défaut */
   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
 
   /* Crée le domaine pour l'ensemble de données */
   dims[0] = 4; 
   dims[1] = 6; 
   dataspace_id = H5Screate_simple(2, dims, NULL);
 
   /* Crée l'ensemble de données */
   dataset_id = H5Dcreate2(file_id, "/dset", H5T_STD_I32BE, dataspace_id, 
                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
 
   /* Relâche les ressources utilisées par l'ensemble de données */
   status = H5Dclose(dataset_id);
 
   /* Ferme l'accès au domaine */
   status = H5Sclose(dataspace_id);
 
   /* Ferme le fichier */
   status = H5Fclose(file_id);
}


La compilation de l'exemple est très simple :

[nom@serveur $] icc ex_hdf5.c -lhdf5


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager