NetCDF

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Network Common Data Form
Extension .nc
.cdf
Type MIME application/netcdf
application/x-netcdf
Développé par UCAR
Type de format Format de données
Format ouvert
Extension du CDF

NetCDF (Network Common Data Form) est constitué, d'une part, d'un ensemble de bibliothèques logicielles et d'autre part, d'un format de données « auto-documenté », indépendant de l'architecture matérielle qui permet la création, l'accès et le partage de données scientifiques stockées sous la forme de tableaux. Le site internet du projet est hébergé par le Unidata program à l'University Corporation for Atmospheric Research (UCAR). Ils sont par ailleurs les mainteneurs principaux des programmes, des spécifications, etc. Il s'agit d'un format ouvert.

La version 4.0 datant de 2008 améliore le format en ajoutant le support du modèle de données HDF5.

Le format, à l'origine, avait pour modèle conceptuel le format CDF issu de la NASA mais il a depuis divergé de façon telle qu'aujourd'hui ces deux formats ne sont plus compatibles.

Description du format[modifier | modifier le code]

Le format de données est « auto-documenté » c'est-à-dire qu'il existe un en-tête qui décrit la disposition des données dans le reste du fichier, et en particulier des tableaux de données. Cet en-tête contient aussi une liste arbitraire de métadonnées se présentant sous la forme d'attribut de type nom/valeur. Le format est indépendant de l'architecture matérielle, notamment grâce à la prise en charge par la bibliothèque des questions de boutisme. Les tableaux de données sont linéaires et sont stockés de manière simple de façon à permettre un accès efficace à un sous-ensemble d'un tableau.

La version 4.0 de l'API netCDF[1] permet l'utilisation du format de données HDF5. Ce nouveau format étend les possibilités de l'ancien notamment en ajoutant:

  • six nouveaux types primitifs,
  • la possibilité pour les utilisateurs de définir des types de données personnalisés,
  • la possibilité de définir des dimensions illimitées,
  • la possibilité de définir des groupes permettant d'organiser hiérarchiquement les données et de fournir, aux noms, une portée.

Par défaut, la bibliothèque netCDF utilise le format binaire classique. Cette version est totalement rétro-compatible en lecture avec l'ancien format de fichier netCDF.

Logiciels[modifier | modifier le code]

Bibliothèques[modifier | modifier le code]

Les bibliothèques fournies par l'UCAR permettent un accès en lecture/écriture aux fichiers netCDF. La bibliothèque principale est écrite en C, et fournit une API pour les applications codées dans les langages C, C++ et Fortran. Une implémentation alternative, aussi développée et maintenue par Unidata, est écrite en Java; cette implémentation étend le modèle de données et ajoute de nouvelles fonctionnalités. La manipulation de la bibliothèque C par d'autres langages ou des logiciels peut se faire à l'aide des nombreux bindings existants : R, Perl, Python, Ruby, Matlab, IDL, et Octave. De même tous les langages fournissant une FFI peuvent utiliser la bibliothèque C et ainsi manipuler les fichiers netCDF. Les conventions d'appels spécifiques à une version de la bibliothèque sont préservés pour des raisons de rétro-compatibilité.

Utilitaires[modifier | modifier le code]

Il existe de nombreuses applications qui utilisent le format de fichier netCDF. Cela va de l'utilitaire en ligne de commande à l'application de visualisation. Vous trouverez, ci-dessous, une liste succincte. Une liste[2] plus détaillée est disponible sur le site de l'UCAR.

  • Un ensemble d'utilitaires en ligne de commande pour les fichiers netCDF appelé NetCDF Operators (NCO). Cet ensemble fournit des commandes pour la manipulation et l'analyse des fichiers netCDF.
  • ncBrowse[3] est une visionneuse générique de fichier netCDF.
  • ncview[4] est un explorateur de fichiers netCDF. Ce programme est un outil graphique simple, rapide permettant de la visualisation des champs des fichiers netCDF.
  • Panoply[5] est un visualisateur développé par le Goddard Institute for Space Studies de la NASA. Il a été développé en Java.
  • Le langage NCAR Command Language est utilisé pour analyser et visualiser les données de fichiers netCDF (en autres).
  • PyNIO[6] est un module Python qui permet de lire et d'écrire dans de nombreux formats de fichiers notamment le netCDF.
  • nCDF_Browser[7] est un explorateur de fichiers netCDF, écrit en IDL.

Champs d'utilisation[modifier | modifier le code]

Ce format est couramment utilisé dans des applications de climatologie, de météorologie et d'océanographie (ex., prévision météorologique, Changement climatique) et dans les applications des S.I.G.).

Il s'agit d'un format de choix pour les entrées/sorties de nombreuses S.I.G. et pour l'échange de données scientifiques. Le site définit le format NetCDF comme "une interface pour un accès aux données orienté tableaux et une bibliothèque qui fournit une implémentation de cette interface. La bibliothèque netCDF définit en sus un format de représentation des données scientifiques indépendant de l'architecture machine".

Parallel-NetCDF[modifier | modifier le code]

Il existe une extension du format netCDF pour le calcul parallèle appelé Parallel-NetCDF (ou PnetCDF) qui a été développé par l'Argonne National Laboratory et l'université Northwestern[8]. Elle est construite au-dessus de MPI-IO, l'extension d'E/S des communications MPI. En utilisant les structures de données de haut niveau de netCDF, la bibliothèque PnetCDF peut utiliser les optimisations pour répartir la charge des lectures et des écritures du fichier sur de nombreux processeurs. PnetCDF peut seulement lire/écrire le format classique et son extension 64-bits. PnetCDF est incapable de lire ou d'écrire le modèle de données HDF5 disponible avec netCDF-4.0.

Les E/S parallèles sont disponibles depuis la version 4 de l'implémentation d'Unidata de la bibliothèque netCDF, mais uniquement pour le modèle de données HDF5.

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Cet article est fondé sur une traduction de la Free On-line Dictionary of Computing et est utilisé avec permission selon la GFDL.