vair2cdf
VERSION 1.2
 

Le convertisseur de format Vairmer->Netcdf du CERFACS
(récupération de l'existant)

----------------------------






Vair2cdf est un script Unix utilisant des exécutables C et Fortran. Il permet de transformer vos anciens fichiers au format Vairmer en fichiers Netcdf, plus aisément lisibles par les logiciels actuels de traitement et de visualisation de données.
 

Une version papier de cette page est disponible (version 1.2).

 

Utilisation:

Quatre arguments peuvent être fournis en entrée du script sh_vair2cdf:

sh_vair2cdf   "fichiers_Vairmer"    [ champ_Vairmer ]       [  type_de_calendrier  ]       [   pas_de_temps_forcé  ]
 
 

Dimensions:

Le fichier Netcdf en sortie comporte autant de dimensions que le (ou les) fichier(s) Vairmer donné(s) en entrée.. On lui ajoute une dimension temporelle. Contrairement aux fichiers Vairmer, un fichier Netcdf peut contenir plusieurs échéances temporelles. Voilà pourquoi plusieurs fichiers Vairmer en entrée (un par échéance temporelle) sont concaténés dans un seul fichier Netcdf.
 
 

Contrainte sur les fichiers d'entrée:

L'argument fichiers_Vairmer peut contenir des méta-caractères (*,?, etc ...). Si c'est le cas, il doit être placé entre guillemets "".  Le chemin complet doit être spécifié.

Les fichiers d'entrée doivent respecter la norme d'entête Vairmer:

character *8   Nom_du_champ
character *8   Nom_de_la_grille
character *8   Date
character *8   Experience (facultatif)

Ils sont nommés suivant la norme: 

EEE.FF.YYYYMMDD

ou EEE est l'acronyme en 3 lettres de l'experience, FF est l'acronyme de la frequence (DA, MO, SE ou YR) et YYYYMMDD est la date (YYYY seulement si frequence annuelle, MM seulement si climatologie, YYYYMM seulement si frequence mensuelle, etc ...)

Les fichiers d'entrée doivent tous contenir les mêmes champs.
Tous les champs doivent avoir la même dimension. Ils doivent être tous 2D ou tous 3D.

Si plusieurs champs d'un même fichier sont sur des grilles légèrement différentes, en cela qu'ils comportent le même nombre de points mais à des latitudes/longitudes différentes (par exemple: grilles ORCA T et  ORCA U), tous les champs se retrouveront, en Netcdf,  sur la grille du premier champ lu.
La solution pour remplir plusieurs fichiers Netcdf, contenant des variables sur des grilles différentes, est d'opérer champ par champ.
 

Variables:

On peut ne réaliser la conversion que pour 1 champ particulier, en le spécifiant dans le deuxième argument du script vair2cdf.
Seule cette variable sera alors extraite des fichiers Vairmer, sur la grille décrite dans son entête Vairmer.

A noter que le nom du fichier Netcdf en sortie ne comporte pas d'indication concernant la (ou les) variable(s) extraites.
Le script de conversion peut donc être lancé plusieurs fois sur les mêmes fichiers Vairmer en entrée, mais sur des variables différentes; toutes les variables se retrouveront dans le même fichier en sortie (ou dans plusieurs fichiers de grilles différentes, si les champs Vairmer en entrée sont définis sur des grilles différentes).

Attention  !   Le fichier Vairmer NE DOIT PAS contenir plusieurs champs avec un nom identique. Pourquoi ? Parce que c'est ABSURDE !
 

Dates:

Dans le troisième argument en entrée du script sh_vair2cdf, on peut spécifier le calendrier qui va être utilisé pour la conversion. Le calendrier peut être:

1: pour calendrier grégorien (années bissextiles tous les 4 ans, sauf année multiple de 100, sauf année multiple de 400). Attribut Netcdf:"gregorian"
2: pour calendrier julien (années bissextiles tous les 4 ans). Attribut Netcdf:"julian"
3: si pas d'année bissextile (année de 365 jours). Attribut Netcdf:"no leap year"

Par défaut, le calendrier est grégorien.


Vair2cdf va donc lire la première date qui se trouve dans le fichier Vairmer et la transformer en attribut Netcdf "time_origin".
L'attribut "units" sera également rempli avec cette date, précédé de l'unité (par exemple "months since ...").
L'unité est déterminée par le nom du fichier Vairmer.

Pour chaque échéance temporelle, on lit la date contenue dans l'entête Vairmer, on calcule le nombre de jours qui la separe de la prèmiere échéance temporelle (dans le calendrier considéré) et on remplit la variable "time_counter" avec cette valeur.
 
Si l'on ne souhaite pas lire la date contenue dans l'entête Vairmer, on peut préciser un pas de temps en quatrième argument de sh_vair2cdf.
La variable "time_counter" Netcdf sera alors remplie à chaque nouvelle échéance temporelle par une variable incrémentée du pas de temps.




Installation:

 

Installation au Cerfacs:

Pour les utilisateur du Cerfacs, l'installation est déjà faite sur les machines elnino/vortex et imhotep. Pour les opérations de conversions massives, il est préférable d'utiliser la machine de calcul imhotep.

Sur imhotep:
Définir la variable d'environnement VAIR2CDF dans votre .cshrc : setenv VAIR2CDF /home/globc_home/maisonna/Vair2cdf et l'ajouter dans votre path

Sur elnino:
Définir la variable d'environnement VAIR2CDF dans votre .cshrc : setenv VAIR2CDF /home/evian/eric/Vair2cdf et l'ajouter dans votre path
 
 

Installation sur d'autres machines:

Systèmes reconnus: AIX (IBM), OSF1 (COMPAQ ALPHASERVER), IRIX64 (SGI) et Linux.

Un fichier vair2cdf.tar est disponible.
Il crée une arborescence Vair2cdf:
 
Vair2cdf/ sh_vair2cdf

vair2cdf.f90

conv.c

diff_1900.c

grid_vair.f90

Grids/ header_*.nc


Vairmer2Cdf.dat
(Liste des grilles supportees)


1ere utilisation:
Définir tout d'abord la variable d'environnement VAIR2CDF dans votre .cshrc (ou .kshrc). Elle doit contenir le répertoire dans lequel se trouve l'arborescence Vair2cdf.
A la première utilisation du script sh_vair2cdf, le programme compile les routines c et fortran nécessaires à la lecture/écriture des données.
Vérifier les options de compilation, définie au début du script sh_vair2cdf:
CC_F90_FLAG:  options de compilation fortran 90
LK_F90_FLAG: options de link fortran 90
CC_C_FLAG: option de compilation langage C
On lance le script une première fois: les fichiers .o et les exécutables vair2cdf et grid_vair apparaissent dans le répertoire Vair2cdf.
On relance le même script: cette fois, le programme est prêt à exécuter la conversion voulue.

Attention  !  Outils recommandés: suite NCO


Mise à jour: juin 2003