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.
- exemple de fichier netcdf peu comprehensible
- un fichier NetCDF peu compréhensible
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
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 **
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
- http://cfconventions.org/ : Version 1.11 en Février 2024 :
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
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:
- exemple de variables standardisées CF et OceanSite:
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
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é
- exemple de métadonnées de variables:
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 estUPAA
: UPAA dans ce thesaurus signifieDegrees 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.
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"
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
http://cfconventions.org/Data/cf-standard-names/current/build/cf-standard-name-table.html
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:
- http://vocab.nerc.ac.uk/collection/
- exemple la table L22 contient tous les constructeurs de matériel
- la table P01 contient le nom standards des variables mesurées
- la table P06 contient le nom standards des unités de mesure
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
La valeur attribuée à l'attribut featureType doit être l'une des valeurs de chaîne énumérées dans le tableau ci dessous :
Cet item doit etre placé dans les "Global attributes" du Header netCDF