NetCDF : les "conventions"

NetCDF permet de fournir des métadonnées dans le "header" du fichier, mais n’impose rien ! aussi on peut mettre rien ou n’importe quoi… ce qui ne nous avance pas beaucoup

Par exemple appeler une variable “v” ,”T”, n’a jamais indiqué ce qu’elle mesurait. A fortiori sans unité, on ne sait plus de quoi on parle.

Les “conventions” sont donc des recommandations couramment acceptées par plusieurs communautés scientifiques pour permettre de standardiser les métadonnées, embarquées dans l’entête des fichiers.

Une convention de nommage facilite donc le partage , et la réutilisation des fichiers NetCDF, et aide les utilisateurs de données de sources différentes à identifier ce qui est mesuré et déterminer des mesures comparables !.

  • Quelle convention choisir ?

Il existe plusieurs conventions internationales pour décrire des métadonnées, dont on peut voir un listing sur le site de Unidata : https://www.unidata.ucar.edu/software/netcdf/conventions.html

Conventions NetCDF

Il est nécessaire de connaitre quelle convention est utilisée. Le nom de la convention doit être indiqué avec l'attribut Conventions en tant qu'attribut global dans le header du fichier netCDF.

  • Dans un projet scientifique multipartenaires national, europeen dans lequel les fichiers seront partagés et analysés, il faut se mettre d'accord sur les conventions utiliser.

Note

NB: On peut utiliser plusieurs conventions dans un fichier, il FAUT les désigner avec l'attribut Conventions (avec un "C" majuscule)

:Conventions = "OceanSITES v1.4,SeaDataNet_1.0,COARDS, CF-1.6" ;

  • Les conventions indiquent quelles sont les metadonnées requises et optionnelles qu'il FAUT mettre et avec quels attributs décrire ces métadata dans un fichier netCDF

La convention COARDS

"Cooperative Ocean/Atmosphere Research Data Service", établie par la NOAA/université pour le partage et la distribution d'ensembles de données de recherche atmosphérique et océanographique à l'échelle mondiale.

c'est une des premieres convention, un peu l'ancêtre des convention, les autres enrichissent celle ci

La convention OceanSites

Pour chaque discipline scientifique il est bon de se renseigner sur les conventions existantes pour bien décrire le contenu de vos fichiers NetCDF

En oceanographie par exemple une des conventions très utilisée est la convention "OceanSites". Le document de référence de la convention "oceanSites" est ici :

exemple de ce qu'on peut trouver dans une convention:

  • le format de la date (souvent un casse tête)
Where time is specified as a string, the ISO8601 standard "YYYY-MM-
DDThh:mm:ssZ" is used; this applies to attributes and to the base date in the
‘units’ attribute for time. There is no default time zone; UTC must be used, and
specified.
  • **les attributs de découverte et d'identification des données ** conseils oceansite

Focus sur la convention “CF”

Une des conventions, recommandée, et répandue en “environnement” est la Convention "CF" (pour Climate Forecast"). Elle répond suffisamment aux besoins des communautés Atmosphériques, météo, Oceanographiques Elle s'appuie (est compatible avec) sur la convention COARDS et l'enrichit

L'objectif de la convention CF est d'exiger que les ensembles de données contiennent suffisamment de métadonnées pour être autodescriptifs, c'est-à-dire que chaque variable du fichier :

  • est associée à une description de ce qu'elle représente,
  • comporte les unités physiques des mesures, et
  • soit localisée dans l'espace (coordonnées terrestres évidemment) et dans le temps.

CF-netCDF s'appuie sur des vocabulaires contrôlés contenant des termes choisis pour être explicites.

Cela permet aux utilisateurs de données provenant de différentes sources de pouvoir comparer des données, et facilite la création d'applications dotées de capacités d'extraction, de recadrage et d'affichage.

  • Elle permet de **représenter les propriétés spatiales et temporelles des données incluant la description précise de chaque variable **

  • Elle permet de minimiser les erreurs basiques (unités, etc...)

Cette convention reste cependant très orientée océan et atmosphère. Il reste des efforts à faire dans les différentes communautés scientifiques.

  • Il peut être nécessaire parfois de s’appuyer sur plusieurs conventions et thesaurus, pour décrire les variables dans diverses communautés scientifiques.

CF : description générale d'un jeu de donnée

  • Ces attributs suivants sont destinés à fournir des informations sur l'origine des données et sur ce qui leur a été fait. Ces informations sont principalement destinées aux lecteurs humains, et sont en général placés dans les "Global Attributes" du fichier NetCDF

A lire

http://cfconventions.org/Data/cf-conventions/cf-conventions-1.10/cf-conventions.html#description-of-file-contents

title un titre explicite : Que contient le fichier ?
institution Ou a-t-il été produit ?
source methode de production des données (modèle, type d'instrument, etc...)
history inquer les divers traitements effectues
licence dataset is licensed under a Creative Commons Attribution 4.0 International license type CC-BY-NC https://creativecommons.org/licenses/by-nc/4.0/"
citation en cas de publication par un DOI
references Publication de référence, documentation
acknowledgement remerciements
comment Commentaires divers sur les methodes de production des données
  • exemple de métadonnées globales:

Global attributes

- exemple de variables standardisées CF et OceanSite:

Global attributes Global attributes

CF : description des variables

Ces items de métadonnées sont en général placés au niveau de chaque variables du fichier NetCDF

A lire

Units Unité internationale (degC, Pa, …) Ne pas utiliser "psu, dB,"degree" ...
standard_name nom standard, conventionné et clair de la donnée : exemple : sea_surface_temperature
long_name Nommage libre : exemple : « température de surface de la mer »
FillValue et/ou missingvalue Valeur des données manquantes : -999 ou autre choix
flag_value et/ou flag_meaning Permet d’attribuer des flags de qualités de la donnée
valid_min et valid_max Min et max possible de la variable
ancillary_variable variable dépendante d'une autre, comme un code qualité
  • exemple d'utilisation des flags sur une variable code qualité

Texte alternatif

  • exemple de métadonnées de variables:

metadonnees de variablesf

cet exemple permet de voir qu’on peut intégrer d'autres convention que CF dans un fichier NetCDF, comme par exemple les conventions du BODC utilisées par SeadataNet

exemple :

  • SDN:P06::UPAA signifie qu'on utilise le thesaurus (vocabulaire contrôlé) "P06" de Seadatanet , et que l'unité provenant de ce thesaurus pour la variable Temperature est UPAA : UPAA dans ce thesaurus signifie Degrees Celsius
  • SDN:P01:TEMPPR01 donne le nom standardisé de la Temperature dans le thesaurus SeadataNet

CF : les Coordonnées

L'utilisation la plus courante des variables de coordonnées est la localisation des données dans l'espace et le temps, mais des coordonnées peuvent être fournies pour toute autre quantité géophysique continue (par exemple, la densité, la température, la longueur d'onde du rayonnement, l'angle zénithal de la radiance, la fréquence des ondes de surface de la mer)

  • Quatre types de coordonnées font l'objet d'un traitement particulier dans le cadre de ces conventions : la latitude, la longitude, la verticale et le temps.

A lire http://cfconventions.org/Data/cf-conventions/cf-conventions-1.10/cf-conventions.html#coordinate-types

Latitude float lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; lat:standard_name = "latitude" :axis = "X";
Longitude float lon(lon) ; lat:long_name = "longitude" ; lat:units = "degrees_east" ; lat:standard_name = "longitude" axis = "Y";
**Height or Depth ** :axis = "Z"; :positive = "up"; :standard_name = "depth"; :long_name = "Profondeur"; :units = "m" ;
Time :units = "minutes since 1970-01-01 00:00:00 UTC"; :calendar = "standard"; # gregorian :long_name = "date de prelevement"; :standard_name = "time";:origin = "01-JAN-1970 00:00:00";
  • exemples de variales "Coordinate"

coordonnée Latitude Longitude
coordonnée Depth coordonnée Time

CF : la table des noms standards CF

La convention CF utilise une table de noms standards qui permet de fournir la dénomination standardisée de certaines variables et la description des variables que contient un fichier netCDF. Quelques exemples :

  • standard_name : le nom standardisé par la convention CF permet d’utiliser un nom de variable qui a un sens international dans une communauté disciplinaire ("time" pour le temps par exemple)
  • units : les unités des mesures du paramètre considéré (degree_C pour la température par exemple)

La table des noms standards CF

A lire http://cfconventions.org/Data/cf-standard-names/current/build/cf-standard-name-table.html

table nom standard

la table des noms standards du BODC

Cependant il existe de nombreuses autres références de Thesaurus*. En oceanographie ** le thesaurus du BODC* (British Oceanographic Data Center) est une référence Européenne !**

exemple:

CF : Les types de “dimensions”

La convention CF permet de décrire des type d’échantillonnages discrets (DSG) avec un attribut appelé featureType

A partir de CF v1.6 toutes les variables de données contenues dans un seul fichier NetCDF doivent être du même type d'élément indiqué par l'attribut global featureType

A lire https://cfconventions.org/Data/cf-conventions/cf-conventions-1.10/cf-conventions.html#discrete-sampling-geometries

La valeur attribuée à l'attribut featureType doit être l'une des valeurs de chaîne énumérées dans le tableau ci dessous :

featuretype

Cet item doit etre placé dans les "Global attributes" du Header netCDF

featuretype