La librairie Ferret de visualisation des modèles
couplés du CERFACS
Cette librairie regroupe certains scripts développés dans l'équipe Global Change par la prodigieuse communauté des utilisateurs Ferret (Carole Cibot, Claire Delon, Marie Drévillon et Andrea Piacentini). Elle s'appuie sur la librairie de scripts standard Ferret et la librairie Fast, developpée à l'IPSL par Patrick Brockman.
Faites remonter vos remarques et communiquez vos nouveaux scripts (Eric.Maisonnave@ cerfacs.fr).
Les codes sources se trouvent sur mon HOME dans ~maisonna/Visualisation/Ferret/Go.
la librairie est en cours de développement. La page Web (http://www.cerfacs.fr/~maisonna/Ferret/scripts.html) sera tenue à jour en fonction des nouveaux scripts et de vos remarques.
SUR LES STATIONS:
1. Ajouter dans le .cshrc_priv:
if ($HOSTTYPE == iris4d && $HOST != baffin && $HOST
!= rossby && $HOST != horus) then
module load MIPSpro.73
alias make '/usr/local/bin/make'
endif
2. Mettre à jour le script de lancement ferret: $HOME/bin/exferret
exferret:
#!/bin/csh
source /usr/local/ferret541/paths/ferret_paths
setenv FER_SYB /home/maisonna/Visualisation/Ferret
setenv FER_FAST /home/dasp/maisonna/ferret/fast
setenv FER_PREDICATE /home/dasp/maisonna/ferret/predicate
setenv FER_GO "$FER_GO $FER_FAST $FER_PREDICATE $FER_SYB/Go"
setenv FER_DATA "$FER_DATA $FER_FAST $FER_SYB/Data"
setenv FER_PALETTE "$FER_PALETTE $FER_FAST $FER_PREDICATE $FER_SYB/Palette"
setenv FER_EXTERNAL_FUNCTIONS "$FER_EXTERNAL_FUNCTIONS $FER_FAST"
setenv PATH "$PATH $FER_FAST"
xrdb -merge /usr/local/ferret541/doc/Ferret_4.40_xdefaults
$FER_DIR/bin/ferret -memsize 10.
xrdb -load -quiet $HOME/.Xdefaults
exit
SUR LA COMPAQ:
Mettre à jour le script de lancement ferret: $HOME/bin/exferret
exferret:
#!/bin/csh
source /usr/local/ferret541/paths/ferret_paths
setenv DB /home/globc_varia/varia/maisonna/Data
setenv FER_SIBYLLE /home/globc_home/maisonna/Sibylle
setenv FER_GO "$FER_GO $FER_SIBYLLE/Go"
setenv FER_DATA "$FER_DATA $FER_SIBYLLE/Data"
setenv FER_PALETTE "$FER_PALETTE $FER_SIBYLLE/Palette"
setenv FER_EXTERNAL_FUNCTIONS "$FER_EXTERNAL_FUNCTIONS"
#setenv PATH "$PATH"
xrdb -merge /usr/local/ferret541/doc/Ferret_4.40_xdefaults
$FER_DIR/bin/ferret -memsize 10.
xrdb -load -quiet $HOME/.Xdefaults
exit
Palette "caramel_bleu"
|
![]() |
Palette "caramel_mauve"
|
![]() |
Palette "caramel_bleu_ctr"
|
![]() |
Palette "caramel_mauve_ctr"
|
![]() |
Utilisation: "palette caramel_bleu"
ou "palette caramel_mauve"
ORCA:
ini_orca.jnl
Arpege:
ini_arpege.jnl
Medias (Arpege etire): ini_medias.jnl
Grille globale | Projection orthographique | Projection verticale | Projection polaire | |
ORCA | plot_orca.jnl | plot_orca_ortho.jnl | plot_orca_verti.jnl | |
Arpege AT_42 | plot_at42.jnl | plot_at42_ortho.jnl | plot_at42_verti.jnl | plot_at42_polar.jnl |
Arpege BT_42 | plot_bt42.jnl | plot_bt42_ortho.jnl | plot_bt42_verti.jnl | plot_bt42_polar.jnl |
Medias ![]() |
plot_medias_globale.jnl
plot_medias_europe.jnl plot_medias_france.jnl |
Visualisation vecteur 2D:
Grille globale | Projection polaire | |
ORCA | vector_orca.jnl | |
Arpege AT_42 | vector_at42.jnl | vector_at42_polar.jnl |
Arpege BT_42 | vector_bt42.jnl | vector_bt42_polar.jnl |
Medias ![]() |
vector_medias_globale.jnl
vector_medias_europe.jnl vector_medias_france.jnl |
Format portrait: set window/clear/aspect=1.5
Postscript: set mode metafile/cancel mode metafile
Gif: frame/file=file_name.gif
ENTREE: Argument1 : Champ 2D ou 3D
SORTIE: Variables anomalie_$Champ
et climatologie_$Champ
Exemple: go anomalie SOSSTSST
Précautions d'usage: ne rien
spécifier entre crochets [] dans l'argument 1 "Champ" (calcul pour
tout i,j,k et l). Pour réduire les calculs à des
domaines, utiliser la fonction "set region".
1ere methode: a partir de l'equation d'etat utilisee dans ORCA (Jackett
and McDougall (1994)) calcul de la densite in-situ: rho(t,s,p) et
potentielle rho(t,s,0) (variables densite_in_situ et masse_vol_potentielle
).
2eme methode (plus rapide): a partir de l'equation d'etat donnee en
standard dans ferret (1980 UNESCO International Equation of State, Millero
and Poisson). (variable densite_ferret)
ENTREE: Pas d'argument. Un fichier ORCA
contenant Salinite et Temperature doit cependant avoir ete charge au prealable.
SORTIE: Variables densite_in_situ,
masse_vol_potentielle et densite_ferret
Exemple: go densites_orca
Cette fonction charge ("use" ferret) les fichiers de grilles (grids.des)
et de masques (masks.des) des grilles des modèles Orca et Arpege
et pré-définit de nouvelles variables (latitudes, longitudes,
masques) utilisées dans les scripts de classe "plot_" et "vector_".
Ces fichiers sont localisés dans le répertoire /home/maisonna/Visualisation/Ferret/Data.
La plupart des fonctions de visualisation de notre bibliothèque
charge et décharge ces données automatiquement. L'utilisateur
n'a donc pas à lancer cette commande dans le cas d'une utilisation
standard des outils SIBYLLE.
ENTREE: pas d'argument
SORTIE: Variable
new
sur
la grille AT42_GRID
Exemple: go ini_arpege
Remarque: les grilles
sont chargées, mais le fichier de données par défaut
n'est pas modifié par le lancement de la commande. Pour utiliser
les champs des fichiers grids.des et masks.des, utiliser l'option [d=masks]
ou
[d=grids]
à
chaque appel d'un champ de masque ou de grille.
Le déchargement des fichiers de données peut se faire
en lancant les commandes: "cancel data masks" et "cancel data grids"
voir "ini_arpege.jnl"
ENTREE: pas d'argument
SORTIE: Variables lon2,lat2:
tableaux 2D (182x149) des longitudes et latitudes de chaque point de la
grille ORCA, modifiées pour visualisation.
Variable masquée TORC_MSK[d=masks]
Exemple: go ini_orca
Remarque: voir ini_arpege.jnl.
La variable TORC_MSK est un masque terre
qui peut être appliqué à un champ ORCA ne contenant
pas de masque (fichier de forçage, résultat d'interpolation,
grille Levitus ...). Pour cela, on visualisera le champ "CHAMP+TORC_MSK[d=masks]".
voir "ini_arpege.jnl"
ENTREE: pas d'argument
SORTIE: Variables lon_xxxx,lat_xxxx[d=reg_grids]:
tableaux 2D des longitudes et latitudes de chaque point des grilles
regulieres (avec xxxx=1010 pour la grille 1 degres, 0505 pour la grille
0.5 degres et 0101 pour la grille 0.1 degres)
Variables MEGL_LON, MEGL_LAT, MEFR_LON, MEFR_LAT[d=grids]: tableaux
2D des longitudes et latitudes de chaque point des grilles MEDIAS
(complete (sur 21692 points) et reduite sur la France (sur 360 points))
Variable masquée MEGL_MSK[d=masks]. La grille MEDIAS sur 360 points
ne compte que des points non masques
Variable
new_xxxx
sur la grille reguliere xxxx
Exemple: go ini_medias
Remarque: voir ini_arpege.jnl.
La variable MEGL_MSK est un masque terre
qui peut être appliqué à un champ MEDIAS global ne
contenant pas de masque. Pour cela, on visualisera le champ "CHAMP+MEGL_MSK[d=masks]".
ENTREE: Argument 1: Step (dessiner le maillage tous les "step" points de grille) (par défaut: 5)
Exemple: go grid_orca 1
Remarque: Grille
T seulement. Ne fonctionne qu'en projection Mercator.
ENTREE: Argument 1: Step (dessiner le maillage tous les "step" points de grille) (par défaut: 5)
Exemple: go grid_at42 1
Remarque: Ne fonctionne
qu'en projection Mercator.
La fonction standard "land" superpose le contour des continents sur
une plage de longitude allant de -180 a 750 degres.
La grille ORCA commencant a -275 degres, le script "land.jnl" d'origine
a ete transforme: les contours des continents ont ete translates de -360
degres.
ENTREE: Argument 1: Couleur des contours des continents (chiffre ou chaine de caracteres parmi black|red|green|blue|thick)
Argument 2: "overlay" (superposition) ou "basemap" (carte de fond)
Argument 3: Couleur des contours des pays
Argument 4: Couleur des contours des etats d'un certain pays ... mais lequel ? A toi de trouver, petit ami !
Exemple:
go land_east red
Fonction: Faire apparaître le logo du cerfacs (coin supérieur
droit) sur un graphe
ENTREE: pas d'argument.
Utilise le fichier logo_cerfacs.nc et la palette cerfacs.spk
SORTIE:
Variable définissant une zone de fenêtre (view) : LogoR
Exemple: go logo_cerfacs
Précautions d'usage: Lancer
cette commande avant toute commande de définition de vue ("set view").
Remarque: Pour créer un nouveau
logo, utiliser la fonction /home/dasp/maisonna/ferret/predicate/New_scripts/mak_logo.jnl
ENTREE: Argument 1: Nom du champ
Argument 2: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 3: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go plot_at42 PLZOW200[L=1] fill/line TERRE
Remarque:
ENTREE: Argument 1: Nom du champ
Argument 2: Parallèle central (par défaut : 90 -pole Nord-)
Argument 3: Méridien Central (par défaut : 0 -Greenwich-)
Argument 4: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 5: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go plot_at42_ortho PLZOW200[L=1] -40 80 fill/line TERRE
Remarques:
ENTREE: Argument 1: Nom du champ
Argument 2: Pôle Nord (N) ou Sud (S) (par défaut : N-pôle Nord-)
Argument 3: Méridien Central (entr e-180 et 180) (par défaut : 0 -Greenwich-)
Argument 4: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 5: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go plot_at42_polar PLZOW200[L=1] N 80 fill/line TERRE
Remarques:
Ce script procède à une projection du vecteur 1D de 6232
points de la grille BT42 sur les points de la grille AT42 (fonction ferret
scat2gridgauss_XY).
Sur les bandes de latitude élevée, certains points de
la grille AT42 ne sont pas remplis par des valeurs de la grille BT42. On
effectue donc une deuxième interpolation, linaire et suivant X (commande
let trace = samplebt[i=@fln]).
L'interpolation scat2gridgauss_XY ne tient pas compte de l'option [l=...]
fixant la coordonnée temporelle. On décale donc les données
d'entrée à l'aide de l'option [L=@shf:($echeance)] ou $echeance
est fixée par l'utilisateur en troisième argument de la fonction.
ENTREE: Argument 1: Nom du champ
Argument 2: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 3: Coordonnée temporelle (par défaut L=1)
Argument 4: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go plot_bt42 COWATFLU fill/line 5 TERRE
Remarque:
ENTREE: Argument 1: Nom du champ
Argument 2: Parallèle central (par défaut : 90 -pôle Nord-)
Argument 3: Méridien Central (par défaut : 0 -Greenwich-)
Argument 4: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 5: Coordonnée temporelle (par défaut L=1)
Argument 6: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go plot_bt42_ortho COWATFLU 90 70 shade/line 5 MER
Remarques:
ENTREE: Argument 1: Nom du champ
Argument 2: Pôle Nord (N) ou Sud (S) (par defaut : N-pôle Nord-)
Argument 3: Méridien Central (entre -180 et 180) (par défaut : 0 -Greenwich-)
Argument 4: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 6: Coordonnée temporelle (par défaut L=1)
Argument 5: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple:
go plot_bt42_polar SISUTESU N
-90 shade/line 5 TERRE
Remarques:
ENTREE: Argument 1: Nom du champ
Argument 2: Numero du premier mode a visualiser (defaut:1)
Argument 3: Numero du second mode a visualiser (defaut:1)
Argument 4: Commande du plot avec option (ex: shade/line/levels ) (par
défaut: plot_orca)
Exemple:
go plot_eof SOSSTSST 1
2 fill
Le script plot_medias_france permet de visualiser les champs 360 points
de la grille Medias france en l'interpolant sur une grille reguliere 0.1
degres.
Les deux autres scripts permettent de visualiser les champs de la grille
complete Medias (Arpege etiree) en l'interpolant soit sur une grille de
0.5 degres de cote (pour une visualisation sur l'Europe) ou sur une grille
de 1 degre de cote (pour une vue plus globale).
Ces scripts utilisent la fonction Ferret scat2gridgauss_XY (voir plot_bt42.jnl)
Sur la visualisation globale, deux interpolations lineaires sont faites
suivant les axes I et J.
ENTREE: Argument 1: Nom du champ
Argument 2: Commande du plot avec option (ex: shade/line/levels ) (par défaut: shade)
Argument 3: Coordonnée temporelle (par défaut L=1)
Argument 4 (pour plot_medias_globale et plot_medias_europe seulement) :
Masque: TERRE ou MER ou NONMASQUE
(par défaut: NONMASQUE)
Exemple1:
go plot_medias_globale SUTOPRSU shade
1
Exemple2:
go plot_medias_europe SUTOPRSU shade
1 TERRE
Exemple3:
go plot_medias_france SITEMPCL
fill 1
ENTREE: Argument 1: Nom du champ
Argument 2: Commande du plot avec option (ex: shade/line/levels ) (par
défaut: shade)
Exemple: go plot_orca SOSSTSST[L=1] fill/line
Remarques:
ENTREE: Argument 1: Nom du champ
Argument 2: Parallèle central (par défaut : 90 -pôle Nord-)
Argument 3: Méridien Central (par défaut : 0 -Greenwich-)
Argument 4: Commande du plot avec option (ex: shade/line/levels ) (par
défaut: shade)
Exemple: go plot_orca_ortho SOSSTSST[L=1] 90 70 fill/line
Remarques:
ENTREE: Argument 1: Nom du champ de température
Argument 2: Nom du champ de salinité
Argument 3: Argument de la commande plot (par défaut: nolab)
Exemple:
go plot_T_S
SOSSTSST[i=114:120@ave,j=114:120@ave]
SOSALINE[i=114:120@ave,j=114:120@ave]
pen=3
Remarque:
ENTREE: Argument 1: Nom du champ a projeter
Argument 2: Nom du champ sur lequel projeter
Argument 3: Valeur definissant l'iso-surface sur laquelle projeter le premier champ
Argument 4: Argument de la commande plot (par défaut: shade)
Exemple: go projection_iso VOTEMPER[L=1] VOSALINE[L=1] 35 fill
Remarques:
Pour separer, de facon immediatement lisible, les valeurs d'un champ
2D en deux parties distinctes (par exemple la partie negative de la partie
positive), on utilise une palette de couleurs symetriques. Par exemple,
pour la palette Sibylle "caramel_bleu), teintes rouges pour la partie positive,
bleu pour la partie negative.
La fonction sym_palette permet de centrer la palette autour d'un zero
(0 ou valeur fixee par l'utilisateur).
ENTREE: Argument 1: Champ
Argument 2: Valeur du niveau "zero"
Exemple:
GO sym_palette SOSSHEIG[l=1]
(definition des nouveaux niveaux de la palette)
puis
set view full
(definition de la vue du trace)
puis
shade/lev SOSSHEIG[l=1]
(utilisation des nouveaux niveaux dans la commande de trace)
Remarque:
Ce graphique doit avoir été composé avec une commande comprenant l'option /nolabel, ce qui est le cas de toutes les commandes de visualisation SIBYLLE. Ce script utilise la commande ferret "label" en recalculant la position en X et en fixant la position Y (-.7), le mode de justification (0, centrée), l'angle (0, horizontal) et la taille (.2 pouces).
ENTREE:
Argument 1: Chaîne de caractère du titre
Exemple: go titre "Précipitations totales"
Remarque:
ENTREE: Argument 1: Nom du champ zonal
Argument 2: Nom du champ méridien
Argument 3: Argument de la commande vector (ex: aspect) (par défaut: nolabel)
Argument 4: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go vector_at42 PLZOW200 PLMEW200 overlay/l=1 TERRE
Remarque:
ENTREE: Argument 1: Nom du champ zonal
Argument 2: Nom du champ méridien
Argument 3: Pôle Nord (N) ou Sud (S) (par défaut : N-pôle Nord-)
Argument 4: Méridien Central (entre -180 et 180) (par défaut : 0 -Greenwich-)
Argument 5: Argument de la commande vector (ex: aspect) (par défaut: nolabel)
Argument 6: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go vector_at42_polar PLZOW200 PLMEW200 S 70 aspect/L=1 TERRE
Remarque:
ENTREE: Argument 1: Nom du champ zonal
Argument 2: Nom du champ méridien
Argument 3: Argument de la commande vector (ex: aspect) (par défaut: nolabel)
Argument 4: Coordonnée temporelle (par défaut L=1)
Argument 5: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go vector_bt42 SIZOWICL SIMEWICL aspect 120 TERRE
Remarque:
ENTREE: Argument 1: Nom du champ zonal
Argument 2: Nom du champ méridien
Argument 3: Pôle Nord (N) ou Sud (S) (par défaut : N-pole Nord-)
Argument 4: Meridien Central (entre -180 et 180) (par défaut : 0 -Greenwich-)
Argument 5: Argument de la commande vector (ex: aspect) (par défaut: nolabel)
Argument 6: Coordonnée temporelle (par défaut L=1)
Argument 7: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple: go vector_bt42_polar SIZOWICL SIMEWICL S 90 noaxis 30 TERRE
Remarques:
ENTREE: Argument 1: Nom du champ zonal
Argument 2: Nom du champ méridien
Argument 3: Argument de la commande vector (ex: aspect) (par défaut: nolabel)
Argument 4: Coordonnée temporelle (par défaut L=1)
Argument 5: Masque: TERRE ou MER ou NONMASQUE (par défaut: NONMASQUE)
Exemple:
go vector_medias_france SIZOWICL SIMEWICL
aspect 120
ENTREE: Argument 1: Nom du champ zonal
Argument 2: Nom du champ méridien
Argument 3: Argument de la commande vector (ex: aspect) (par
défaut: nolabel)
Exemple: go vector_orca SOZOTAUX[d=1] SOMETAUY[d=2] aspect/L=1
Remarques:
Fonction: Définir de nouvelles zones de fenêtres (view)
Ces nouvelles vues permettent de mieux utiliser l'espace de la fenêtre
avec des graphiques sans labels. L'appel préalable à ces
fonctions de définitions de vues est donc fortement conseillé
avec l'utilisation des fonctions de visualisation de la librairie SIBYLLE.
ENTREE: pas d'argument
SORTIE:
Variables définissant une zone de fenêtre (view) : vp[1-8]
Exemple:
go viewp2; set view vp2
ENTREE: Argument 1: Nombre de vues par colonne (entre 2 et 4)
Argument 2: Nombre de vues par ligne (entre 1 et 2)
Argument 3: Orientation (portrait (P) ou paysage (L))
SORTIE: Variables définissant une zone de fenêtre (view) : v[1-8]
Exemple:
go vues 3 2
P
ARGUMENTS:
Pour donner à un de ces scripts un argument qui ne serait pas
le premier, l'utilisateur doit spécifier TOUS les arguments précédents.
C'est pourquoi le nombre des arguments à passer a été
réduit par rapport aux anciennes versions de ces scripts. Une interface
graphique ou les arguments non remplis seront implicitement remplacés
par défaut est actuellement en cours de développement.
USE:
Ces scripts s'utilisent comme des commandes shade ou vector. Les fichiers
de données doivent être chargés avant lancement des
commandes.
Les numéros de fichiers de données ne sont pas modifiés
par l'appel de ces commandes.
LOGO:
Le logo du Cerfacs peut être inséré en haut à
droite du graphique par le lancement de la commande "go logo_cerfacs".
LABELS:
Les graphiques apparaissent sans label, sans axes et sans titres.
TITRES:
Un titre peut être ajouté après exécution
d'une commande de visualisation par le lancement du script "titre.jnl".
CONTINENTS:
Pour les visualisations en projection Mercator, les contours des continents
peuvent être ajoutés par le lancement de la commande "go land"
(ou "go land_east" pour la grille Orca).
Des continents grisés peuvent être ajoutés par
le lancement de la commande "fland.jnl".
ZOOM:
Pour zoomer, utiliser les options /xlim=+-longitude_min et /ylim=+-latitude_max
dans l'argument "Commande du plot" (ou délimiter des aires géographiques
par défaut: "set region"). En règle générale,
pour les 3 types de grille,
ne pas chercher à
fixer des limites géographiques avec les options [I=...,J=...].
Pour zoomer sur des régions à cheval sur le méridien
de Greenwich,
sur une grille AT42, vérifier que la variable
longitude (1D) de votre fichier
de données comporte bien l'attribut "modulo".
CONTINENTS,
CONTOUR DES GRILLES EN PROJECTION POLAIRE:
Sur le graphe en projection polaire, on pourra superposer des contours
de continent (polar_land.jnl), des continents grisés (polar_fland.jnl)
ou des grilles de latitude - longitude (polar_grid_fancy.jnl). Pour la
syntaxe de ces scripts, voir leur entête dans le répertoire
/usr/local/ferret540/go.
ZOOM:
Les zooms à cheval sur la ligne de recouvrement Ouest-Est (océan
Indien) ne sont pas possible à l'aide de ce script (voir projection
de la grille ORCA sur une grille regulière, scripts en préparation).
Pour la grille réduite BT42: Ne
pas chercher à passer l'option [L=...] avec le nom du champ, ni
l'option [L=@shf:...].