Manuel du logiciel Mgraph

Louis Gonzalez et Christine Deroo 24 mars 2004

NOM

Mgraph

SYNOPSIS

Mgraph [options] [command file]

DESCRIPTION

Mgraph est un logiciel de tracé permettant une visualisation et une mise en page rapide de données scientifiques présentées sous forme de fichiers ASCII pour les courbes classiques, sous forme de fichiers binaires pour les données de surfaces. L’interface a été développée sous Motif. Elle peut être utilisée soit interactivement [page 7], soit à l’aide de fichiers de commandes [page 45], soit à partir de programmes C ou Fortran [page 55]. Les fichiers de sorties sont en PostScript. Des images en format Tiff ou Gif peuvent aussi être générées.

Mgraph [options]  Lancement de l’interface Motif.
Mgraph [options] file.com Lancement de l’interpréteur graphique sans visualisation.

OPTIONS

-Show Exécute l’interpréteur graphique et lance l’interface Motif en visualisant le dernier graphique généré par le fichier de commandes.

-Inch Utilise les inch au lieu des cm comme unité dans les éditeurs de positionnement et de dimensions.

-Nomem Supprime la visualisation de l’image fractale dans la fenêtre de tracé. A utiliser si votre terminal est lent ou dispose de peu de mémoire locale.

-Help imprime ce manuel sur votre terminal.

-Zoom 75 Permet de réduire ou d’augmenter la taille des objets dessinés par Motif. Dans l’exemple, un facteur de réduction de 75% sera appliqué. Attention il sera peut être nécessaire de modifier dans le fichier Mgraph.ad la ligne:

Mgraph*FontList: "-Adobe-Courier-Bold-r-Normal-*-12-*-*-....." afin d’ajuster la taille de la police de caractères à la taille des objets Motif. (page 7)

Caractéristiques Principales

• Une visualisation rapide sans limitation du nombre de données.

• Jusqu’à 10 fenêtres de tracé simultanées

• Une gestion de la base de données graphiques de l’utilisateur.

• Une mise en page interactive de documents.

• Une numérisation de courbes, soit à partir d’images lues en format TIFF/GIF (par ex, une sortie de scanner), soit à partir d’images importées directement sur l’écran.

• Des fits multiples et équations sur les courbes.

• Un tracé de contours et projections

• Une production automatique à partir de fichiers de commandes, euxmêmes pouvant être créés par Mgraph .

• Une intégration simple dans des programmes fortran ou C.

• Présentation 3D des surfaces

• WWW Cgi implantation

Table des matières

1 MODE INTERACTIF 7

1.1 MENU FILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.1 FILES→ READ FILES . . . . . . . . . . . . . . . . . . . 9 1.1.2 FILES→ SAVE&RESTORE . . . . . . . . . . . . . . . . . 17 1.1.3 FILES→ PRINT PLOT . . . . . . . . . . . . . . . . . . . 19 1.1.4 FILES→ SURFACE&CONTOUR . . . . . . . . . . . . . 21 1.1.5 FILES→ EXPORT DATA . . . . . . . . . . . . . . . . . . 26 1.1.6 FILES→ SAVE DEFAULTS . . . . . . . . . . . . . . . . . 27 1.1.7 FILES→ MISC . . . . . . . . . . . . . . . . . . . . . . . . 27

1.2 MENU SETTINGS . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.2.1 SETTINGS→ PLOT_SETTING . . . . . . . . . . . . . . 28 1.2.2 SETTINGS→ PLOT_ANNOTATIONS . . . . . . . . . . 29 1.2.3 SETTINGS→ EDIT_LEGEND . . . . . . . . . . . . . . . 30 1.2.4 SETTINGS→ EDIT_COLOR_SCALE . . . . . . . . . . 30 1.2.5 SETTINGS→ AXIS_SETTING . . . . . . . . . . . . . . 32 1.2.6 SETTINGS→ PAGE_SETTING . . . . . . . . . . . . . . 34 1.2.7 SETTINGS→ ADD POLAR AXIS . . . . . . . . . . . . . 36 1.2.8 SETTINGS→ COLOR PALETTE . . . . . . . . . . . . . 37 1.2.9 ANNOTATIONS WINDOW . . . . . . . . . . . . . . . . . 38

1.3 MENU MATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.3.1 MATH→ SMOOTH & FIT . . . . . . . . . . . . . . . . . 39 1.3.2 MATH→ FORMULA . . . . . . . . . . . . . . . . . . . . 40 1.3.3 MATH→ FFT . . . . . . . . . . . . . . . . . . . . . . . . 41 1.3.4 MATH→ STATISTICS . . . . . . . . . . . . . . . . . . . 42 1.3.5 MATH→ BUILD A SURFACE FROM X Y DATA …. 42

1.4 MENU MISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 1.4.1 MISC→ CLEAR WINDOW . . . . . . . . . . . . . . . . . 42 1.4.2 MISC→ NEW WINDOW . . . . . . . . . . . . . . . . . . 42 1.4.3 MISC→ ANIMATION . . . . . . . . . . . . . . . . . . . . 43

1.5 MENU DRAWING_AREA . . . . . . . . . . . . . . . . . . . . . 43 1.5.1 DRAWING_AREA→ ZOOM . . . . . . . . . . . . . . . . 43 1.5.2 DRAWING_AREA→ SHOW VALUES . . . . . . . . . . 43 1.5.3 DRAWING_AREA→ RESCALE . . . . . . . . . . . . . . 43 1.5.4 DRAWING_AREA→ CLEAR AREA . . . . . . . . . . . 43 1.5.5 DRAWING_AREA→ EXTRACT VALUES . . . . . . . . 43

1.6 MENU HELP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2 FICHIER DE COMMANDES 45

2.1 FONCTIONNEMENT GENERAL . . . . . . . . . . . . . . . . . 45 2.2 OPTIONS DU FICHIER DE COMMANDE . . . . . . . . . . . . 46

2.2.1 READ COMMAND . . . . . . . . . . . . . . . . . . . . . 47 2.2.2 PLOT SETTING . . . . . . . . . . . . . . . . . . . . . . . 48 2.2.3 AXES SETTING . . . . . . . . . . . . . . . . . . . . . . . 48 2.2.4 CIRCULAR DIAGRAM . . . . . . . . . . . . . . . . . . . 49 2.2.5 FITS COMMANDS . . . . . . . . . . . . . . . . . . . . . 49 2.2.6 MISC COMMANDS . . . . . . . . . . . . . . . . . . . . . 50 2.2.7 ISO CONTOURS . . . . . . . . . . . . . . . . . . . . . . . 50 2.2.8 PLOT ANNOTATION . . . . . . . . . . . . . . . . . . . . 51 2.2.9 PAGE SETTING . . . . . . . . . . . . . . . . . . . . . . . 51 2.2.10 OUTPUT COMMANDS . . . . . . . . . . . . . . . . . . . 51

2.3 OPTIONS AND SPECIFICATIONS . . . . . . . . . . . . . . . . 52 2.4 EXEMPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3 Appel à partir d’un programme 55 3.1 Les appels de sous-programme . . . . . . . . . . . . . . . . . . . . 56 3.2 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.2.1 Lancement du logiciel: . . . . . . . . . . . . . . . . . . . . 57 3.2.2 Spécifications générales: . . . . . . . . . . . . . . . . . . . 57 3.2.3 Déterminer le tracé des axes: . . . . . . . . . . . . . . . . 58 3.2.4 Envoyer les données à Mgraph: . . . . . . . . . . . . . . . 59 3.2.5 Envoyer une surface à Mgraph: . . . . . . . . . . . . . . . 60 3.2.6 Envoyer un titre ou une annotation à Mgraph: . . . . . . 61 3.2.7 Faire une mise en page: . . . . . . . . . . . . . . . . . . . 62 3.2.8 Les sorties PostScript, Gif ou Tiff: . . . . . . . . . . . . . 63 3.2.9 Animation des graphes: . . . . . . . . . . . . . . . . . . . 63 3.2.10 Terminer la session: . . . . . . . . . . . . . . . . . . . . . 63

3.3 Exemples de programmes C: . . . . . . . . . . . . . . . . . . . . . 64 3.4 Exemples de programmes FORTRAN : . . . . . . . . . . . . . . . 71

4 CGI 77

5 FAQ 81

A Exemples de fichiers de commandes 85

B Exemples de sorties graphiques 103

1 MODE INTERACTIF

Remarques préliminaires

* Un répertoire .Mgraph est créé sous votre répertoire principal ($home). Il contient différents fichiers d’initialisation des variables du logiciel (la commande «Save Defaults» permet de les rafraîchir). Sous ce répertoire .Mgraph se trouvent aussi les différents projets que vous avez créés, constituant votre base de données graphiques. Si vous manquez d’espace disque, vous pouvez corriger le problème de la manière suivante: déplacer le répertoire .Mgraph en réalisant une copie puis en créant un lien symbolique:

cp␣-r␣~/.Mgraph␣/MYBIGDISC/
rm␣-rf␣~/.Mgraph
ln␣-s␣/MYBIGDISC/.Mgraph␣~/.Mgraph

* Lors de l’installation de Mgraph sur votre machine, l’administrateur

système a placé le fichier Mgraph.ad dans le répertoire système:

/usr/lib/X11/app-defaults.

Il doit être en lecture pour tous.

Vous avez aussi la possibilité de le modifier et de l’exécuter en local en utilisant la commande:

xrdb -merge Mgraph.ad

* L’option -zoom peut être intégrée dans le fichier Mgraph.ad; pour cela,

il suffit de modifier la ligne:

Mgraph_bin*zoom: 100

* En réduisant les fenêtres, ne pas oublier de sélectionner une fonte plus

petite dans Mgraph.ad:

Mgraph*FontList: “-Adobe-Courier-Bold-r-Normal-*-12-*-*-*-*-*-*-*” La commande Unix: “xlsfonts” peut vous aider à sélectionner une fonte convenable.

FONCTIONNEMENT GENERAL

Dans les panels, utilisez le bouton de gauche de la souris pour sélectionner les options, activer les boutons ou pour pointer une position sur demande du logiciel. Toute chaîne de caractères dans un éditeur peut être sélectionnée à l’aide du même bouton puis recopiée dans une autre fenêtre à l’aide du bouton central.

Dans une fenêtre de tracé:

• Il suffit de cliquer sur le titre, les axes, les annotations ou les légendes pour voir apparaître le menu correspondant.

• Un carré rouge en haut à gauche exécute la fonction «zoom».

• Un carré vert en haut à gauche ajuste automatiquement les échelles.

• Vous pouvez ouvrir jusqu’à 10 fenêtres simultanément (menu Misc→ New Window), la fenêtre concernée étant la dernière utilisée ou activée.

1.1 MENU FILES

1.1.1 FILES→ READ FILES

Lecture simple

Sélection du fichier

Le fichier d’entrée est un fichier ASCII (ou binaire ou TIFF/GIF dans le cas d’un tracé de contours) contenant des nombres en colonnes séparés par des espaces, virgules ou tabulations. La procédure de lecture réalise un filtrage des données en sautant automatiquement les lignes contenant du texte et détermine le nombre de lignes et de colonnes à tracer.

Le répertoire de travail est montré dans l’éditeur en haut de la fenêtre. Vous pouvez taper directement un nouveau répertoire dans l’éditeur ou utiliser la souris pour naviguer dans l’arborescence des fichiers Unix.

Selection Charge le contenu du répertoire indiqué.

.. Charge le répertoire directement supérieur.

$home Charge votre répertoire principal.

$cwd Charge le répertoire où Mgraph a été lancé.

Pour sélectionner un fichier, vous pouvez taper son nom dans l’éditeur “file” ou cliquer sur son nom dans la liste des fichiers. L’éditeur “File name filter” vous permet de placer en tête de liste tous les fichiers contenant la chaîne de caractère spécifiée. ex:

vous tapez: vous obtenez en tête de liste:
⋆data  tous les fichiers finissant par “data”.
data⋆  tous les fichiers commençant par “data”.
⋆data⋆  tous les fichiers ayant “data” dans leur nom.

Vous pouvez utiliser l’une des combinaisons suivantes:

* bouton de la souris + touche MAJ pour obtenir la sélection d’un bloc de noms.

* bouton de la souris + touche CTRL pour sélectionner un nom à chaque clic.

Dans ce cas, les courbes s’ajoutent dans la fenêtre graphique.

L’option “Keep curve setting” permet de tracer les courbes avec les options définies par le précédent tracé, c’est à dire la couleur, les styles de ligne et de marqueur. L’option “Keep axis setting” permet de tracer les courbes dans les limites d’axes précisées dans le précédent tracé. Afin de conserver ces limites pour des sessions ultérieures, il suffit d’activer l’option “Files→ Save defaults”.

Description du fichier

Si les champs de “File description” ne sont pas remplis, la première colonne est prise comme étant l’abscisse X et les colonnes suivantes comme différents jeux de coordonnées Y. Si le fichier ne contient qu’une seule colonne, OU si le champ “X column” vaut zéro, les données de la colonne Y seront représentées en ordonnées et l’abcisse sera un incrément de 1 à n (nombre de points tracés).

En remplissant les éditeurs proposés vous pouvez:

• forcer le nombre de lignes ou de colonnes du fichier à tracer

• tracer un paquet de données

• introduire un nombre qui sera automatiquement filtré comme mesure indéterminée

• définir la colonne qui servira de X ou de Y

• et surtout introduire un “Plot step”, très utile si vous tracez des nuages de points avec un grand nombre de données

Type des données

La sélection du type de courbe: menu “Line plot”

Line plot  Tracé sans marque; les points sont joints par une droite.
Scatter plot  Les points sont représentés par des marques sans droite de liaison.

Error Bars X Le fichier est lu comme une séquence de (X, Y, Delta), où Delta est une erreur en X. Une barre horizontale de longueur 2*Delta centrée en X,Y sera tracée.

Error Bars Y Même tracé avec des verticales.

Step plot Le fichier est tracé en escalier (i.e. Pseudo histogramme). A chaque point une ligne horizontale est tracée au niveau Y_{n} en partant d’un X = \frac{X_{n}+X_{n−1}}{2} jusqu’à X = \frac{X_{n}+X_{n+1}}{2} .

\underline{Type de tracé}

La sélection du mode de rangement des données: menu “New set”

New Set  Nouveau tracé.

Add mode Garde la présentation du tracé précédent et ajoute les nou-

velles courbes.

Replace mode Garde la présentation du tracé et remplace les courbes par

de nouvelles.

Merge mode Garde la présentation du tracé et rallonge les courbes existantes avec les nouveaux points.

Filtre sur les données

Column data filter

Un nouveau menu apparaît (Mgraph_column_data_read_filter) qui permet de filtrer les données de manière simple: Si plusieurs filtres sont demandés pour la même colonne, un OR exclusif est utilisé, pour des filtres sur plusieurs colonnes un AND est utilisé. Avant d’effectuer la lecture, il suffit de cliquer sur “Analyze user filter editor” pour valider le filtre.

Sélection du type de traitement

La sélection du traitement des données: menu “Draw selected file”

Draw selected file (Cartesian)

Tracé de fonctions simples y=f(x).

Draw selected file (Polar)

Tracé de fonctions simples en coordonnées polaires

Compute histogram of selected file Trace l’histogramme des différentes colonnes du fichier. (voir page 13)

Statistics of selected file Calcule et affiche des statistiques (Moyenne, écart type etc.) sur les différentes colonnes du fichier.

Digitalization Numérisation de courbes à partir d’images de scanner ou à partir d’images visualisées sur l’écran par tout autre logiciel (voir page 14).

File preview  Edite le fichier dans une fenêtre “Mgraph_preview”.

Draw surface contours Ce menu permet de lire des surfaces dans différents formats (ASCII, binaire ou TIFF/GIF - voir ci-dessous) et réalise les interpolations permettant de calculer des isocontours et des projections. (voir page 21)

Formats de fichiers proposés:

(Z) Regular grid Fichier ASCII contenant les Z séparés par des espaces, des tabulations ou des virgules. Seul l’éditeur “Number of columns” est à préciser dans le cas où les données ne seraient pas rangées dans une ligne avec le même nombre de colonnes que l’image réelle.

(X Y Z) Regular or Irregular Fichier ASCII contenant les X, Y et Z de la surface.

Binary 8 bit Fichier binaire en octets: Le nombre de lignes et de colonnes sont à préciser.

Binary 16 bit Fichier en mots entiers de 16 bits.

Binary 32 bit Fichier en mots entiers de 32 bits.

Binary 32 bit float Fichier en mots réels de 32 bits.

Tiff, Gif Fichier en format normalisé.

L’option Signed n’est utilisée que pour les mots entiers. Si elle n’est pas validée, l’entier sera non signé. 2 éditeurs Cut values permettent de filtrer les valeurs lues. 2 éditeurs Stretch Z values permettent de modifier les valeurs de Z.

Build a surface from XY Data A partir d’un fichier ASCII contenant des données X et Y, Mgraph constitue une surface en divisant l’espace en boîtes de taille paramétrable et en calculant le pourcentage de points contenus par boîte.

Import a new lut Charge la base de l’utilisateur avec une nouvelle table de couleur. (Ces tables ne sont utilisées que par les programmes de contours). Deux formats sont décodés:

• La table de couleur est définie par valeur de pixel (entre 0 et 255) avec ses composantes couleurs rouge, vert, bleu (Intensité entre 0 et 255).

• La table est définie par niveaux de valeurs dans l’unité (Z) de la surface: niveau 1, niveau 2, puis les composantes couleurs R, G, B.

Draw arrows A partir d’un fichier ASCII, lecture de vecteurs caractérisés par leur origine (X et Y ), leur longueur (Rho), leur orientation (Theta) avec possibilité de moduler la taille de la flèche (Length and Arrow factor).

Si vous avez sélectionné un fichier, activez “Apply”. Dans le cas d’une lecture simple, le résultat sera tracé dans la fenêtre active.

Lecture spécifique

Pour les options suivantes, de nouvelles fenêtres seront affichées:

Compute histogram of selected file

envoie le menu Mgraph_compute_histogram

Vous pouvez définir le type de tracé, les limites de l’histogramme, la largeur

des classes, les unités en Y. Attention! si vous modifiez les éditeurs ne pas oublier l’option “Freeze editor values” avant d’exécuter “Apply” pour éviter le calcul automatique des valeurs.

Digitalization

envoie le menu Mgraph_digitalizer

Si le fichier sélectionné est un fichier TIFF ou GIF, en activant “Apply”, ce fichier sera lu et affiché dans la fenêtre de digitalisation. Sinon vous avez la possibilité en utilisant la fonction “Grab image from display” de prendre (“grab”) à l’aide de la souris une image (présentée par un autre logiciel comme ghostscript par exemple) sur votre écran. La fenêtre sous l’image vous affiche des messages d’informations et des directives.

N.B. L’image est présentée en noir et blanc. Vous pouvez passer en visualisation couleur en activant la touche “Switch image (BW/Color)”

La digitalisation se passe en plusieurs étapes:

Présentation de l’image: Cette étape est facultative. Les boutons sous l’image vous permettent d’agrandir la présentation ou d’en changer le sens. Ils peuvent être très utiles dans le cas d’une image provenant d’un scanner.

Définition des axes: Cette étape est indispensable. Elle détermine les positions des axes. Il faut cliquer sur chacun des 3 boutons afin de repérer l’origine des axes et leurs extrémités en exécutant la directive affichée dans la fenêtre de dialogue. Puis si un axe est en logarithme, il faut positionner le bouton correspondant. Vous avez la possibilité de convertir les données qui seront digitalisées en coordonnées réelles en remplissant les éditeurs d’unités correspondants. Par défaut, les axes iront de 1 à 100.

Digitalisation proprement dite: Après  avoir  cliqué  sur

“Start digitalization”, la fenêtre de dialogue vous indique la procédure à suivre: A l’aide de la souris, vous saisissez, point par point, les données de la courbe. A chaque clic, la fenêtre de dialogue affiche le numéro du point et sa position en x et y, ainsi que le facteur d’orthogonalité. Il suffit de cliquer sur “Stop digitalization” pour terminer la digitalisation. Vous pouvez à tout moment utiliser le bouton “Zoom” pour agrandir une partie de la fenêtre ou utiliser le bouton “Clear pixel area” pour supprimer des points erronnés. Vous pouvez rentrer les points dans n’importe quel ordre, la courbe finale sera triée par x croissants. Après l’action “Stop digitalization”, la fenêtre de graphique est remplie avec la courbe saisie. Si vous désirez digitaliser une nouvelle courbe et la superposer à la précédente, il faut recommencer l’opération “Start digitalization”.

Validation: Dans la fenêtre “Mgraph_digitalizer” apparaissent de nouveaux menus. Vous pouvez à ce moment là, choisir:

• Smooth curve réalisation d’un moyennage de la courbe; l’éditeur “Window size” vous permet de fixer le nombre de points qui serviront à effectuer une moyenne glissante.

• Resample curve ré-échantillonnage de la courbe; les éditeurs “Xstart… Xstep” vous permettent de replacer les coordonnées à une fréquence donnée.

Attention ! Le moyennage comme le ré-échantillonnage ne se font que sur la dernière courbe digitalisée.

File preview

envoie le menu “Mgraph_preview”

Visualise le contenu du fichier dans une fenêtre et vous permet ensuite de sélectionner, à l’aide de la souris, une (plusieurs) partie(s) du fichier à tracer avec les options existant dans le menu principal du “Read”

Draw surface contour

envoie les menus “Mgraph_surface_view” et “Mgraph_surface_geometry”

Affiche la surface et permet de sélectionner les différents paramètres de tracé: voir plus loin le menu “FILES→ SURFACE & CONTOUR” (§1.1.4).

Build a surface from XY Data

envoie, dans un premier temps, le menu “Mgraph_compute_surface” qui permet de paramétrer la taille des boîtes afin de calculer le pourcentage de points contenus par boîte puis les menus “Mgraph_surface_view” et “Mgraph_surface_geometry”. voir plus loin le menu “FILES→ SURFACE & CONTOUR” (§1.1.4).

1.1.2 FILES→ SAVE&RESTORE

L’utilisateur a la possibilité de gérer différents répertoires (“Main project name”) contenant à la fois des sauvegardes de tracés et des fichiers de gestion des mises en page réalisées dans une session. La liste des répertoires apparaît dans une fenêtre en haut à droite. Il suffit d’en sélectionner un pour qu’il devienne le répertoire de travail de Mgraph . Son contenu est alors affiché dans la fenêtre “Main project plot files”. (Si un tracé est utilisé dans une présentation de page, il apparaît comme ayant un lien [lks: 1]. Voir également le menu “Settings→ Page setting” (§1.2.6)). Pour créer un nouveau projet, il faut taper son nom dans l’éditeur et activer “create new project”.

Options:

• Si un tracé est présent dans la fenêtre principale, il suffit d’activer “Save current plot in base” pour le ranger dans la base; le titre du tracé devient alors le titre d’enregistrement. Si la courbe n’a pas de titre,elle sera enregistrée sous le nom “Untitled”. Si son titre commence par le caractère @, elle sera enregistrée avec son titre mais celui-ci n’apparaîtra pas dans le graphique.

N.B. Lors de la création d’une mise en page, les courbes associées sont automatiquement sauvées dans la base.

• Si un tracé est sélectionné (en cliquant sur son nom dans la fenêtre “Main project plot files”), un aperçu de la courbe apparaît ainsi que les options suivantes:

Delete all saved plots détruit tous les tracés de la base.

Draw Charge la fenêtre principale de tracé avec le contenu de la sauvegarde en prenant en compte l’option sélectionnée dans le menu “New set”.

Delete Détruit la sauvegarde sélectionnée.

Replace selected file with current plot Permet de remplacer le tracé sauvegardé par le graphique contenu dans la fenêtre graphique active en conservant les liens avec les mises en page.

1.1.3 FILES→ PRINT PLOT

Ce menu permet d’imprimer un tracé ou de créer un fichier en format PostScript, à partir de la fenêtre de tracé ou à partir d’une présentation de page contenant plusieurs tracés.

\underline{Options:}

Paper format A4, A3, B5, US letter ou US legal.

Landscape présentation en mode Portrait ou en mode Paysage si cette option est sélectionnée

Use page setting Imprime la page courante créée par le menu “Page setting” (§1.2.6) si cette option est sélectionnée.

Number of copies sélection du nombre de copies désirées.

Plot size fixe la taille du graphe. Cette taille sera celle du côté le plus grand de la fenêtre X.

Square frame la taille du graphe sera la même en X et en Y si cette option est sélectionnée.

Print type Menu de sélection du type d’impression: couleur, noir et blanc ou niveaux de gris.

Round Line join (Round ou Sharp) option de tracé des intersections de lignes en arrondi ou en pointe.

No logo Permet d’ajouter ou de supprimer le logo du laboratoire à une position déterminée de la page (Par défaut: 1cm en X, 2.7 cm en Y). Cette option ne s’utilise pas dans le cas d’un “Page setting” puisque ce dernier menu vous propose l’emplacement exact du logo. Pour introduire votre logo personnel, il suffit de créer un Encapsulé PostScript et de modifier le fichier ∼/.Mgraph/MgraphDefaults en ajoutant une ligne du type:

LOGO_FILE /usr/my_directory/mylogo.eps Remarque: De la même manière, vous pouvez introduire votre propre signature en bas à droite de la page en modifiant la ligne du fichier ∼/.Mgraph/MgraphDefaults:

taper ceci:  pour obtenir:
SIGNATURE "L.O.A. Computer Team" Date + signature
SIGNATURE  " " (Espaces)  Date
SIGNATURE  "" (Vide)  Rien

Send to printer Utilise la commande définie dans l’éditeur “Spooler shell” pour imprimer le tracé. L’éditeur “Spooler shell” contient votre commande d’impression sur une imprimante PostScript; elle peut être par exemple

lp -dPRINTER

Après avoir défini vos imprimantes, activez l’option “Save defaults” pour les sauvegarder.

Save as PostScript file Crée un fichier contenant le tracé en format PostScript.

Save as Encapsulated PS file Crée un fichier en format Encapsulated PostScript ce qui permet d’insérer le tracé dans un autre document (Word ou TeX par exemple).

Save settings as command file Création d’un fichier de commandes le plus proche possible de la présentation réalisée (voir §2 Mgraph non interactif). Mgraph.com est le nom par défaut.

1.1.4 FILES→ SURFACE&CONTOUR

Menu “Contours”

Ce menu permet de traiter des surfaces et de réaliser les interpolations permettant de calculer des isocontours et des projections. Il ne peut être activé que si l’utilisateur a déjà chargé une surface à l’aide des menus “Files→ Read files→ Draw surface contours” ou “Files→ Save & restore→ Draw”.

Les menus “Mgraph_surface_view” et “Mgraph_surface_geometry” apparaissent.

Mgraph_surface_view Cette fenêtre permet la visualisation de la surface traitée. Sur la droite un histogramme des valeurs est tracé. Diverses options réalisent:

Drawing_area→ Zoom  Agrandissement d’une partie de l’image.
Drawing_area→ Show values  Affichage des données Z de la surface.
Drawing_area→ Rescale  Affichage de l’image originale

Color_palette→ Permet de colorier la surface avec une échelle prédéfinie.

Color_palette→ User Lut Base Base de fichiers contenant des échelles de couleurs introduites par le menu Read Files → Import a new LUT.

Color_palette→ Grey scale etc..

Echelles de couleurs de base de Mgraph (description §1.2.8)

Objects→ Clear all  Efface toutes les options.

Objects→ Draw triangles Visualise les triangles utilisés dans les interpolations.

Objects→ Draw region Visualise les régions séparant les points réels des points indéterminés définis ou introduits par les options “Undefined value” ou “X Y Z irregular grid” du menu de lecture.

Objects→ Draw points  Visualisation des points de mesures.
Objects→ Draw all  Visualise toutes les options.

Mgraph_surface_geometry permet de modifier:

• Le nombre de points d’interpolation: les éditeurs “Lines” et “Columns”.

• Le rapport largeur/hauteur de l’image: “X/Y Ratio”.

• La distance relative (1 en implicite) à partir de laquelle 2 triangles sont disjoints.

• Les échelles réelles de X et Y de l’image: “X Min… Y Max”.

• Il permet de sélectionner le mode d’interpolation. Si votre image représente des classes de valeurs ayant une échelle de couleur non linéaire, il faut utiliser l’option “Nearest pixel interpolation”.

• Add objects (Surface, Region, Dots, Triangles)

Ce menu permet d’incruster au graphique la surface, le contour des régions dans le cas d’une surface non régulière, les triangles utilisés dans les interpolations et les points de mesures.

Si vous activez l’option “Apply”, l’image est chargée dans la fenêtre de tracé. Si vous activez “Show contour panel”, la fenêtre Mgraph_contour apparaît qui permet de tracer des isocontours (détaillé ci-dessous). Si vous activez l’option “Show perspective panel”,le menu Mgraph_3D_view apparaît qui permet de tracer dans la fenêtre graphique une vue en 3 dimensions (voir §1.1.4).

Mgraph_contour (appelé  par  le  précédent  menu:

Mgraph_surface_geometry)

Ce menu permet de tracer des isocontours. Dès son ouverture le logiciel prédétermine quelques valeurs de contours à tracer. Un “Apply” suffit pour lancer le calcul et voir apparaître les courbes dont la présentation peut être modifiée dans le menu “Settings→ Plot settings”.

Choix des isocontours: Pour entrer sa propre liste de valeurs il faut:

• Sélectionner à la souris l’ensemble des lignes de l’éditeur “Isoline values” puis taper “Backspace” ou la touche “espace” sur le clavier.

• Dans l’éditeur, qui est maintenant vide, taper une liste de valeurs séparées par des espaces ou utiliser les éditeurs du menu “Add isolines” qui génère une boucle sur des valeurs introduites avec soit un nombre d’intervalles (éditeur “inter. Nb”), soit un pas réel (éditeur “Z step”).

Présentation des tracés: Les options de tracé sont déterminées par les différents menus Isoline plot

style. Si l’option Current color est choisie, les couleurs sont prédéterminées par le logiciel.

Modification des options de tracé d’un ou de plusieurs isocontours de la liste: sélectionner les lignes de valeur à la souris puis sélectionner dans les différents

menus les options de tracés (couleur, type de ligne, marqueur, tracé d’un label) puis activer “Apply new style”... les paramètres sont modifiés dans l’éditeur. Si les isocontours sont dessinés avec des options de tracé Label vous pouvez, en utilisant les menus du Label plot style en changer les présentations (taille, couleur, fond, distance entre 2 labels).

Les modifications apparaissent en activant l’“Apply” principal du menu.

Menu Surface set stretch

Image data values Où Zmin, Zmax sont les bornes minimale et maximale Z de la surface. Cet intervalle sera découpé en 256 niveaux de couleurs. Les valeurs hors des bornes seront affectées aux couleurs extrêmes de la table de couleur.

LUT values Où FirstLevel, LastLevel sont les bornes minimale et maximale (entre 0 et 255) de la table de couleur qui seront utilisées pour le découpage des niveaux V1 V2.

Color scale stretch Où Min=0 Max=0 (0→ 255) sont les bornes de la table de couleur à tracer. Elles permettent de mettre en exergue une partie de la table de couleur utilisée.

Menu Surface perspective

Ce menu permet de tracer une représentation 3D de la surface présente dans la fenêtre graphique. La fenêtre Mgraph_3D_view permet de visualiser la surface qui sera tracée dans la fenêtre graphique lors de l’activation du bouton “Apply to main window”.

Show 3D projette dans la fenêtre Mgraph_3D_view la surface en 3D selon les paramètres fixés. Cette fonction est directement liée à la fenêtre principale: Si vous appliquez un “zoom” sur la surface 2D, il sera également appliqué à la surface 3D.

Up/Down - Right/Left fixent les angles de projection.

Ground level fixe le niveau de l’origine (les Z min et max sont affichés à gauche de l’éditeur).

Add: permet d’ajouter ou d’effacer dans la fenêtre principale les objets suivants:

• la surface en 3D

• la surface en 2D projetée en haut ou en bas.

• des grilles dont on peut modifier la taille et l’épaisseur.

• les courbes, tracées en 2D, projetés en haut ou en bas.

pour chacun de ces ajouts, cliquer ensuite sur “Apply to main window”.

2 ascenceurs permettent également de modifier l’amplitude du 3D et sa position dans la fenêtre (cliquer sur “Show 3D” pour en constater les effets).

Menu Surface perspective clear

Ce menu permet de repasser en mode 2D. Il faut obligatoirement effacer la configuration 3D pour pouvoir passer à la lecture d’une nouvelle courbe.

1.1.5 FILES→ EXPORT DATA

Create a .com file

Création d’un fichier de commandes le plus proche possible de la présentation réalisée (qu’il s’agisse d’un graphe simple ou d’une mise en page). Il permettra l’utilisation de Mgraph en mode non interactif (voir §2).

Create a EPS file

Cette option permet de créer un fichier en Encapsulé PostScript afin d’insérer le tracé dans un autre document.

Data to file

Création d’un fichier ASCII contenant les coordonnées des différentes courbes visualisées. Vous pouvez relire directement ce fichier avec Mgraph (menu Files→ ReadFiles) pour régénérer des tracés. Le mot Break permet de rompre la continuité d’une courbe (tracé de fond de cartes par exemple). Le mot NewCurve permet de changer de courbe. Une ligne CURVE NUMBER: .... sépare les différents tracés; elle est automatiquement sautée par le logiciel à la relecture. Options:

* Sélection à la souris de la zone à extraire dans la fenêtre graphique.

* Sélection du type de données à extraire: Soit les courbes proprement dites, soit les données de surface.

* Data preview: affichage des données qui seront inscrites dans le fichier. Cette option n’est valide que dans le cas d’extraction de données sur des courbes.

“Create new file” exécute l’extraction.

Plot to tiff / Plot to gif

Création d’un fichier (drawing est le nom par défaut) en format TIFF ou GIF représentant la fenêtre de tracé. Cette image sera utilisable par les différents logiciels de visualisation ou par des convertisseurs de format.

1.1. MENU FILES 27

1.1.6 FILES→ SAVE DEFAULTS

Un fichier “∼/.Mgraph/MgraphDefaults” contient vos options préférées:

• Position et type de Logo

LOGO_FILE Myfile.eps
LOGO_POSX 1
LOGO_POSY 2.7
LOGO_SCAX 0.14
LOGO_SCAY 0.14

• Signature

SetSignature "My signature"

• type et limites des axes

• type d’impression

• type des courbes Il vous permet donc de sauvegarder votre configuration à un moment donné pour les sessions suivantes.

1.1.7 FILES→ MISC

• Project Data Base Recovery permet la reconstruction de la base de sauvegarde en cas d’ennuis majeurs comme une coupure système ou un dépassement de quotas ayant occasionné une mauvaise écriture sur disque

• Users stats statistique d’utilisation des différents menus de Mgraph

1.2 MENU SETTINGS

1.2.1 SETTINGS→ PLOT_SETTING

Ce menu permet de caractériser chacune des courbes visualisées et de modifier quelques fonctions principales de présentation.

Plot mode Ces options permettent, avec effet immédiat sur la visualisation, de mettre (ou non) des grilles, des labels, une légende, 2 axes ou 4 (“No Frame”) et la surface (“No Background”).

Plot title Mise en forme du titre; ce menu peut également être appelé en cliquant simplement sur le titre.

Curve style En activant l’option Overlap, les courbes sont présentées ensemble, ce qui permet de modifier en une seule action les paramètres de type:

• couleur de courbe

• type de ligne

• type de marqueur

Si l’option Overlap est désactivée, les courbes vous seront présentées une par une, et vous pourrez alors modifier le type de la courbe, comme précédemment, mais aussi masquer ou supprimer une courbe.

1.2.2 SETTINGS→ PLOT_ANNOTATIONS

Ce menu permet d’annoter l’ensemble de la fenêtre graphique. La fenêtre graphique peut être vide de courbe; voir son utilité ci-dessous §1.2.9. Les différents ajouts possibles sont: texte, marqueur, ligne, boîte, flèche et tracé d’axe supplémentaire.

Pour chacune de ces annotations, le choix vous est offert:

• soit les lier au graphique en coordonnées réelles,

• soit les attacher au graphe lui-même.

Pour chacune, il suffit de sélectionner la couleur et le type.

Dans le cas d’annotations multiples, vous avez la possibilité de conserver le positionnement en X ou en Y. Il suffit ensuite d’ajouter la sélection (touche “Add”) et de la positionner à l’aide de la souris dans la fenêtre graphique. La touche “Replace” permet de repositionner l’annotation; la touche “Redraw” permet de redessiner l’annotation sans avoir à la repositionner; la touche “Delete” permet de supprimer l’annotation. (Voir également au chapitre F.A.Q §3.4 le codage des chaînes de caractères.)

L’annotation “Extra axis” permet soit de dessiner un axe supplémentaire, soit de remplacer un des axes existants par un nouvel axe totalement indépendant des limites de la courbe. Les éditeurs se présentent comme dans le menu des axes. La valeur du “mini” peut être supérieure au “maxi”; pour un axe tracé à la souris, le “mini” se trouvera au premier point cliqué. (Voir les exemples dans F.A.Q [3.4]) En activant la touche “Free labels”, on pourra étiqueter les axes par une liste donnée: Cette liste se compose d’une valeur sur l’axe, suivie soit d’un texte entre guillemets, soit d’une valeur indépendante qui sera écrite à travers le format proposé.

Quand des annotations sont créées, vous pouvez appeler directement ce menu en cliquant sur une annotation.

1.2.3 SETTINGS→ EDIT_LEGEND

Quand ce menu est appelé, la légende est visualisée dans le coin haut gauche du tracé. Chaque courbe est représentée (sauf les courbes masquées - voir menu “Plot Setting” [1.2.1]). Vous pouvez annoter chaque légende, orienter les textes, masquer une légende. La touche “move legend” permet à la fois de positionner la légende et d’en fixer la taille.

1.2.4 SETTINGS→ EDIT_COLOR_SCALE

Ce menu permet d’ajouter une échelle couleur dans la fenêtre graphique. La fenêtre graphique peut être vide de surface; voir son utilité ci-dessous (§1.2.9).

Deux types d’échelle couleur vous sont proposés:

Draw a linear color scale

L’appel de cette option vous permet de tracer rapidement une échelle linéaire de couleurs

• Add labels to the linear color scale L’appel de ce menu vous permet de fixer, pour un certain nombre de valeurs de pixels, une étiquette associée: cette étiquette peut être, soit la valeur du point écrite à travers le format proposé, soit un texte encadré de guillemets ("). Vous pouvez également choisir de visualiser ou non une échelle graduée (option “No ticks drawing”). L’option “Replace” redessine l’échelle, l’option “Apply” permet de la (re-)positionner sur le graphe.

• Clear the linear color scale Cette option permet d’effacer l’échelle linéaire.

Build the color scale with boxes

Ce menu permet de représenter des valeurs données à l’aide de carrés colorés. Comme pour l’échelle linéaire, le choix est donné entre la représentation en nombre et la représentation par un texte. L’option “No ticks drawing” permet cette fois de coller ou non les boîtes entre elles. L’option “Redraw” redessine l’échelle, l’option “Apply” permet de la (re-)positionner sur le graphe.

• Clear the color scale with boxes Cette option permet d’effacer l’échelle en classes.

Clear all colorscale

Cette option permet d’effacer les échelles de couleur.

1.2.5 SETTINGS→ AXIS_SETTING

Ce menu peut également être appelé en cliquant en bas à gauche des axes (c’est à dire l’origine). Le menu concernant chacun des axes peut être appelé en cliquant au centre de l’axe. Pour chaque axe les éditeurs permettent de fixer:

• Title:

le titre et sa hauteur (facteur multiplicatif) (Voir au chapitre F.A.Q (§3.4) le codage des chaînes de caractères.)

• Mini Maxi: le minimum et le maximum; le minimum doit être plus petit que le maximum; si vous voulez tracer un axe décroissant (cas des pressions atmosphériques, par ex) il faudra passer par un axe calculé (voir F.A.Q §3.4).

• Label:

La hauteur et l’angle que font les labels avec l’axe. Le format des labels (facteur multiplicatif). La formulation est celle du langage C: %[.précision]conversion

précision: nombre de décimales pour les formats f, e et E

nombre de chiffres pour les formats g et G (6 par défaut)

conversion: g notation universelle (i.e. d, f ou e)

G notation universelle (i.e. d, f ou E) f notation décimale (i.e. ’[-]dddd.ddd’) e notation exponentielle (i.e. ’[-]d.ddde+dd’) E notation exponentielle (i.e. ’[-]d.dddE+dd’) exemple:

12.65978 %g ⟹ 12.6598
%f ⟹ 12.659780
%.3f ⟹ 12.660
%.2e ⟹ 1.27e+01
%.0f ⟹ 13
%+.1f ⟹ +12.7
12.00  %g ⟹ 12

• label step:

nombre entier qui représente le pas d’écriture des labels.

• Tick X step:

intervalle de base pour le tracé des grilles dans l’unité de l’axe.

• Ref. Value:

une valeur de référence qui oblige l’écriture d’un label à cette valeur.

• Scale to frame:

permet de limiter les axes aux vrais minimum et maximum alors que par défaut une extension de 10% est appliquée pour une meilleure présentation.

• Free labels permet d’étiqueter les axes par une liste donnée: Cette liste se compose d’une valeur sur l’axe, suivie soit d’un texte entre guillemets, soit d’une valeur indépendante qui sera écrite à travers le format proposé.

Vous pouvez ne pas afficher les labels (“No X-label”), dessiner des tics sur les axes ou des grilles (standard ou demi-teintes) (“Std grid”). Vous pouvez également supprimer un axe (“No axis”).

Plusieurs types d’axe sont proposés: linéaire, logarithmique, étalonné en heure:minute ou en degrés décimaux mais également transformé par une équation.

Dans ce dernier cas, les données ne sont en aucun cas altérées, seule leur présentation est modifiée. Il suffit de taper une formule dans l’éditeur principal. Cette formule sera sauvegardée et une liste d’équation sera créée (présentée dans le panneau “Mgraph_formula_list”). Vous pouvez ajuster le domaine de projection pour éviter par exemple les divisions par zéro. Pour plus de précisions, lire 1.3.2 le menu “Math→ Formula”

Pour chacun des axes, vous pouvez définir l’épaisseur du trait et sa couleur.

1.2.6 SETTINGS→ PAGE_SETTING

Ce menu vous permet de mettre en forme, de manière interactive, une présentation des graphes sur une page. Les présentations sont sauvegardées dans la même base que les graphes (voir “Files → Save&Restore” §1.1.2).

• type de page Choix du sens de la page (Landscape page) et du format du papier: (A4, A3 etc.)

• création des cellules Il faut définir des cellules sur la page virtuelle qui vous est présentée dans la fenêtre “Mgraph_page_view”. Les coordonnées des cellules sont données en centimètres ou en inch, l’origine étant le coin haut/gauche de la page: soit vous remplissez les éditeurs avec les positions, soit, en activant “Fill with mouse”, vous tracez la cellule à l’aide de la souris (vous pourrez ensuite ajuster les valeurs dans les éditeurs). Puis en activant “Create new cell”, la cellule sera représentée sur la page virtuelle. Vous pouvez créer de cette manière jusqu’à 36 cellules sur une page.

• attachement des graphes Vous pouvez remplir la cellule soit avec le graphe présent dans la fenêtre principale, soit avec un graphe sauvé dans la base; dans ce dernier cas, il suffit de cliquer sur le graphe correspondant dans la liste affichée. Un aperçu du graphe vous est présenté. Vous pouvez chercher un graphe dans l’ensemble des projets mais la sauvegarde de la page se fera dans le projet affiché: “Main project name” (pour en changer, cliquer sur “Select a new main project”). Après votre choix, cliquez sur “Fill cell(selected plot)”.

Vous pouvez changer le sens de présentation à l’intérieur de la cellule ( “Landscape”). Les dimensions de la cellule peuvent correspondre à l’ensemble du graphe ou, en sélectionnant “fit frame”, à l’espace délimité par les axes. Ces 2 options sont visualisées immédiatement.

• présentation de la page Votre logo peut être positionné sur la page. Vous pouvez annoter la page de textes, lignes ou boîtes. Pour cela, activez l’option “Page annotation”.

Menu Page annotation

Chacune des annotations de page peut être positionnée à l’aide de la souris (Create with mouse) ou directement en remplissant les éditeurs. Les touches “Add”, “Replace” et “Delete” visualisent l’effet immédiatement sur la page. (Voir au chapitre F.A.Q (§3.4) le codage des chaînes de caractères.)

Pour imprimer la page ainsi constituée, il suffit d’activer le menu “Files→ Print plot”. La fonction “Use page setting” doit être activée.

La page ainsi réalisée peut être exportée sous forme de fichier de commandes pour une production automatique.

1.2.7 SETTINGS→ ADD POLAR AXIS

Ce menu permet de remplacer les axes par un diagramme formé de cercles et de rayons. Les options permettent de définir:

Delta Theta  Pas des cercles en degré.
Delta radius  Pas des cercles en unité du rayon principal.
Theta list  Liste à choix libre des cercles à tracer en degré.
Radius list  Liste à choix libre des cercles à tracer en unité du rayon principal.
Delta phi  Pas des rayons en degré.
Phi list  Liste à choix libre des rayons à tracer en degré.
Upper view  Vue de la sphère par-dessus.
Left side right L’origine des rayons est à gauche ou à droite.
Clock wize  Tracé des rayons dans le sens des aiguilles d’une montre.
Axis formula Projection utilisant les équations introduites dans la définition des axes.

Puis les différents paramètres de tracé des labels sur les cercles et les rayons (couleur, taille et position). La fenêtre graphique peut être vide de courbe; voir son utilité ci-dessous (§1.2.9).

1.2.8 SETTINGS→ COLOR PALETTE

User LUT base:

A partir de la base de l’utilisateur (∼/.Mgraph/USER_LUTS), ce menu charge une nouvelle table de couleur. En cliquant sur le fichier, son contenu sera affiché dans la fenêtre de droite. Les lignes du fichier commençant par le caractère # seront considérées comme des commentaires.

Deux formats sont décodés:

• La table de couleur est définie par valeur de pixel (entre 0 et 255) avec ses composantes couleur rouge, vert, bleu (Intensité entre 0 et 255).

• La table est définie par niveaux de valeurs dans l’unité (Z) de la surface: niveau 1, niveau 2, puis les composantes couleur R, V, B.

Mgraph LUT:

1.2.9 ANNOTATIONS WINDOW

Mgraph offre la possibilité de créer une fenêtre SANS COURBE NI SURFACE, dans laquelle il vous sera possible d’ajouter des annotations, une échelle de couleur, un diagramme circulaire. Ceci est notamment utile lors de l’utilisation d’un “Page setting” (§1.2.6) afin, par exemple, de présenter une échelle couleur commune à plusieurs images contenues dans différentes cellules. Cette fenêtre pourra être sauvegardée comme les fenêtres graphiques classiques. Elle sera enregistrée sous le nom “@Annotation window”. Son échelle est définie par le logiciel comme allant de 0. à 1. en X et en Y.

1.3 MENU MATH

1.3.1 MATH→ SMOOTH & FIT

Les options suivantes sont communes à l’ensemble de ces sous-menus: La régression se fait en y = f(x) par défaut mais vous pouvez choisir x = f(y). Vous pouvez aussi choisir de faire une régression sur l’ensemble des courbes (par défaut, elle est faite courbe par courbe). Vous pouvez choisir l’intervalle de fit (par défaut, l’ensemble visible du domaine des abscisses ou des ordonnées si l’option x = f(y) a été choisie). Les courbes de régression peuvent être ajoutées aux courbes originales ou les remplacer.

• Polynomial regression Pour une régression polynomiale, vous pouvez sélectionner l’ordre du polynôme et le nombre de points en sortie ou l’intervalle en x. Après l’activation du bouton “Apply”, les résultats sont affichés dans la fenêtre du menu. Vous pouvez les visualiser avec les ascenseurs; vous pouvez également les saisir à l’aide de la souris afin de les récupérer, par exemple, dans le menu “Settings→ Plot annotation” pour les imprimer avec la courbe.

• Smooth Pour moyenner la courbe, vous pouvez choisir le nombre de points servant à la moyenne glissante.

• Bezier Smooth

• Spline Vous pouvez sélectionner le nombre de points en sortie ou l’intervalle en x.

• More advanced fit method Un nouveau menu s’affiche: “Mgraph_mam” Vous pouvez approximer vos courbes avec une équation paramétrée du style Y = f(X, p1...pn). La syntaxe est identique à celle du menu “Math→ Formula” (voir ci-dessous). Vous pouvez utiliser les opérateurs et les fonctions mathématiques standard. La dénomination des paramètres est arbitraire. L’algorithme utilisé est une recherche de convergence itérative (Levenberg Marquardt). L’itération se termine lorsque l’erreur relative sur chaque paramètre et/ou l’erreur relative entre l’approximation et les points de données est plus petite que l’erreur permise que vous avez spécifiée dans l’éditeur correspondant. Vous pouvez arrêter le processus à tout moment en utilisant le bouton “Terminate fit loop”. En cas de non-convergence, vous pouvez spécifier les conditions initiales de chacun des paramètres (par défaut égal à 1), par exemple a = −1, b = 2. Vous pouvez également indiquer le nombre de points en sortie.

1.3.2 MATH→ FORMULA

Ce menu permet d’exécuter des opérations sur les courbes. Les opérandes sont xN et yN (où N est le numéro de la courbe), ’pi’ et ’x’ pour utiliser les éditeurs du domaine X. Les opérateurs sont: ’=’ , ’+’ , ’−’ , ’⋆’ , ’/’, ’%’, ’∗∗’, ’(’, ’)’, ’&’ (and), ’|’ (or), ’^’ (xor). Les fonctions sont les fonctions mathématiques standard (Voir plus loin “Options and Specifications” §2.3). rnd() génère un nombre aléatoire compris entre 0 et 1.

Vous pouvez générer de nouvelles courbes en remplissant les éditeurs X domain: exemple: y = sin(x) avec Xstart = 0, Xend = 3.14 et Numberofpoints = 100 puis “Apply” vous créera une nouvelle courbe sinusoïdale.

Vous pouvez, de la même manière, ré-échantillonner une courbe existante en tapant dans l’éditeur d’équation: x1 = x1 et en remplissant les éditeurs X domain.

Toutes les équations que vous aurez tapées sont sauvées et vous sont présentées partout où vous utiliserez une formule mathématique. Il vous suffira ainsi de sélectionner à l’aide de la souris la ligne désirée et de la placer dans l’éditeur.

1.3.3 MATH→ FFT

La transformée de Fourier vous permet de filtrer une courbe, en calculant les fréquences les plus significatives. Chaque composante est affichée avec le coefficient de corrélation calculé entre la donnée et la FFT inverse en supprimant cette fréquence. Ce menu vous permet également de supprimer une composante, soit en utilisant comme filtre la corrélation (Reduce spectrum), soit fréquence par fréquence (Delete a component). A chaque étape, le signal inverse est reconstitué et vous pouvez le comparer à la courbe d’origine.

1.3.4 MATH→ STATISTICS

Ce menu vous présente les calculs statistiques (moyenne, déviation standard, etc.) effectués sur les courbes visibles dans la fenêtre graphique.

1.3.5 MATH→ BUILD A SURFACE FROM X Y DATA

Ce menu vous permet de construire une surface à partir des données en mémoire en divisant l’espace en boîtes de taille paramétrable et en calculant le pourcentage de points contenus par boîte (Voir à ce sujet le paragraphe 1.1.1).

1.4 MENU MISC

1.4.1 MISC→ CLEAR WINDOW

Ce menu permet d’initialiser la fenêtre principale “Mgraph_plot_window”. Toutes les courbes seront effacées.

1.4.2 MISC→ NEW WINDOW

Ce menu permet de créer une nouvelle fenêtre graphique indépendante de la première. Vous pouvez ouvrir ainsi jusqu’à 10 fenêtres simultanément. Le petit carré rouge en haut/gauche de la fenêtre vous indique laquelle est active. Atten-

tion ! Quitter Mgraph revient à quitter toutes les fenêtres ouvertes simultanément.

1.4.3 MISC→ ANIMATION

Ce menu permet d’animer les courbes tracées dans la fenêtre principale. Vous avez la possibilité d’ajouter un délai entre chaque courbe et de tracer avec un pas sur les données pour accélérer le mouvement.

1.5 MENU DRAWING_AREA

1.5.1 DRAWING_AREA→ ZOOM

Permet d’agrandir la zone visualisée à l’aide du bouton droit de la souris. Le “zoom” est également appelé à partir du petit carré rouge en haut/gauche de la fenêtre graphique.

1.5.2 DRAWING_AREA→ SHOW VALUES

Permet de voir les coordonnées des points. Pour en sortir, cliquez sur le bouton gauche de la souris.

1.5.3 DRAWING_AREA→ RESCALE

Permet de redessiner la(les) courbe(s) avec le maximum d’amplitude. Cette fonction revient à utiliser les valeurs par défaut du menu “Settings→ Axis setting”. Cette fonction peut également être appelée en cliquant dans le petit carré vert en haut/gauche de la fenêtre graphique.

1.5.4 DRAWING_AREA→ CLEAR AREA

Permet d’effacer un ensemble de points. Attention ! Le carré de sélection doit être suffisamment grand. Si vous désirez supprimer un seul point, par exemple, il vous faudra peut-être agrandir la zone (“zoom”) avant de choisir “Clear area”.

1.5.5 DRAWING_AREA→ EXTRACT VALUES

Permet de stocker dans un fichier des points relevés à l’aide de la souris. Le nom du fichier par défaut est “values.data”. Ce nom s’incrémente avec chaque activation de la fonction: values01.data, values02.data etc. Le fichier est en format ASCII sous forme de 2 colonnes (abscisse, ordonnée).

Dès l’appel de la touche “Apply”, une fenêtre apparaît affichant les coordonnées. En cliquant sur le bouton gauche de la souris, le point correspondant sera enregistré. Pour en sortir, cliquez sur le bouton droit de la souris.

1.6 MENU HELP

Aide en ligne, menu par menu , en français ou en anglais.

2 FICHIER DE COMMANDES

MGRAPH.COM

2.1 FONCTIONNEMENT GENERAL

Dans ce mode les graphiques sont générés sans visualisation et de manière

automatique. N.B. Mgraph en mode interactif permet de créer automatiquement (à partir de la fenêtre graphique, mais aussi à partir d’une présentation complexe de page) un fichier de commandes qu’il suffit ensuite de modifier si besoin est.

La commande peut être :

Mgraph fich1.com

ou Mgraph fich1.com fich2.com etc.

Une option Mgraph -show fich1.com peut être utilisée ; dans ce cas, après avoir exécuté l’ensemble du fichier de commande, la version Motif du logiciel est lancée et le dernier graphique apparaît dans la fenêtre de tracé.

Un fichier de commande peut être paramétré très simplement en utilisant un système d’alias (mot libre précédé du caractère @) permettant de remplacer tout ou partie de la commande par une ligne introduite dans un fichier de données.

Ex: dans le fichier de commande aa.com nous avons :

Verbose
SetAlias
ReadFile      File="./data"
PlotTitle     Title="@TITLE"  Height=1.20
@STYLE
etc.

Dans le fichier de données data nous avons :

@TITLE  Donn\'ees du 12-10-97
@STYLE LineStyle Curve=1 Style=MicroDash Color=Red Thickness=2
0  0
100  -1
150  1
etc.  45

46 CHAPITRE 2. FICHIER DE COMMANDES

Le fichier de commandes réellement exécuté sera

Verbose
SetAlias
ReadFile      File="./data"
PlotTitle     Title="Donn\'ees du 12-10-97"   Height=1.20
LineStyle     Curve=1  Style=MicroDash  Color=Red   Thickness=2
etc.

2.2 OPTIONS DU FICHIER DE COMMANDE

# Ce caractère permet de commenter une ligne de fichier.
| Ce caractère indique un choix d’option.
[ ] Ces caractères signalent une option facultative.
\ Ce caractère signale que la ligne suivante est la suite de cette ligne.

Verbose Cette option imprime les lignes de commandes telles qu’elles ont été inter-

prétées.

SetAlias Lance l’analyse et la recherche de paramètres introduits dans les fichiers de

données ASCII.

SetUnit Inch|Cm Passe les unités des dimensions et coordonnées en inch au lieu des cm (option par défaut).

SetPaper  A4 | A3 | B5 | USLETTER | USLEGAL

AddLogo [File="filename"] XStart= YStart= XScale= YScale=

Filename est le nom du fichier Encapsulé PostScript contenant le logo.

SetSignature "texte de la signature"

Permet l’ajout de la date et d’une signature (texte) sur la page imprimée.

WindowSize Width= Height= Spécifie la géométrie de la fenêtre de tracé. Cette option n’est validée que si l’option -show est utilisée dans la commande de lancement.

LineJoin Round|Sharp Représente la manière dont 2 segments sont joints; par défaut, les deux lignes forment un angle ; en choisissant cette option, l’angle sera arrondi.

AnnotationWindow cette option signifie que la cellule créée pourra ne contenir ni courbe ni surface. Elle permet ainsi de dessiner dans cette cellule des annotations, une échelle de couleur ou un diagramme circulaire

2.2. OPTIONS DU FICHIER DE COMMANDE 47

2.2.1 READ COMMAND

ReadFile File="FileName" Mode=Cartesian | Polar Style=LinePlot|ScatterPlot|ErrorBarsX|ErrorBarsY|Stepplot [NColumns=-1 XColumn=-1 YColumn=-1 NLines=-1 ] [ErrorColumn=-1 LinesToSkip=-1 UndefValue=-1 ]

Statistics File="FileName" [ NColumns=-1 XColumn=-1 YColumn=-1 NLines=-1 ] [ LinesToSkip=-1 UndefValue=-1 ]

Histogram File="FileName" Style= Steps|Bars|BarsWithGap Mode=Normal|Cumulative YUnit=Density|PerCent [ NColumns=-1 YColumn=-1 NLines=-1 ] [ LinesToSkip=-1 UndefValue=-1 ] [ Xmin=-1 Xmax=-1 ClassSize=-1 ]

ReadBinFile File="FileName" DataType=8bit | 8bitsigned | 16bit | 16bitsigned | Integer | Float Style=LinePlot|ScatterPlot|ErrorBarsX|ErrorBarsY|Stepplot NColumns=-1 XColumn=-1 Column=-1 NLines=-1 [ ErrorColumn=-1 LinesToSkip=-1 UndefValue=-1 ]

ReadSurface File="FileName" Mode=Regular | Irregular [NColumns=-1 NLines=-1 LinesToSkip=-1 UndefValue=-1] [DistanceFactor=-1 Zmin=-1 Zmax=-1 ]

ReadBinSurface File="FileName" DataType=8bit | 8bitsigned | 16bit | 16bitsigned | Integer | Float NColumns=-1 NLines=-1 [ UndefValue=-1 DistanceFactor=-1] [Zmin=-1 Zmax=-1 ]

ReadXYandBuildSurface File="FileName" NColumns=-1 NLines=-1 Xcolumn=-1 Ycolumn=-1 Xmin=-1 Xmax=-1 Xstep= -1 Ymin=-1 Ymax=-1 Ystep=-1 [ LinesToSkip=-1 UndefValue= -1 ]

ReadArrows File="FileName" NColumns=-1 Xcolumn=-1 Ycolumn=-1 NLines=-1 LinesToSkip=-1 RhoColumn=-1 ThetaColumn=-1 LengthFactor=-1 ArrowFactor=-1

ReadFile File="DataBlock nom_du_bloc" etc…

permet de tracer des données sans passer par un fichier. Ces données seront placées dans le fichier de commande lui-même (au début ou à la fin du fichier). La délimitation du bloc est donnée par: DataBlock nom_du_bloc << pour marquer le début du bloc de données >> pour marquer la fin du bloc de données

exemple:

DataBlock nom_du_bloc1 <<
28222 0.038797 31393 0.014833 33194 -0.03001 37694 -0.027402
39513 -0.013366 43993 0.019358 44893 0.240929 45793 0.222208
               ...
NewCurve
31393 0.014833 45793 0.222208 46713 0.238592 48495 0.239557
52993 0.301588 55520 0.275073 56602 0.260338 57974 0.276448
               ...
       >>

Il est possible de créer ainsi plusieurs blocs correspondant à plusieurs ReadFile.

2.2.2 PLOT SETTING

PlotTitle  Title="Text of Title" Height=-1

Grid Frame=No|Yes

Xgrid=Yes|Light|No Ygrid=Yes|Light|No

ScaleToFrame

LineStyle  Curve=1 Style=Solid Color=Black Thickness=1
MarkStyle  Curve=1 Style=Cross Size=1
Sampling  Curve=1 Step=1
Mask  Curve=1
ArrowStyle  Curve=1 LengthFactor=-1 ArrowFactor=-1

2.2.3 AXES SETTING

Rescale

XTitle Title="text of title" Height=1

XAxis Show=Yes|No Scale=Linear|Logarithm|Time|Degree|Formula [ Min=-1 Max=-1 Delta=-1 Label=Yes|No ] [Formula="my_formula" NewXmin=-1 NewXmax=-1 ]

XLabel LabelStep=-1 Reference=-1 LabelHeight=1 CFormat="format" Angle=0. List= value1 "texte1" ... valueN "texteN"

YTitle Title="text of title" Height=1

Yaxis Show=Yes|No Scale=Linear|Logarithm|Time|Degree|Formula [ Min=-1 Max=-1 Delta=-1 Label=Yes|No ] [Formula="my_formula" NewXmin=-1 NewXmax=-1 ]

YLabel LabelStep=-1 Reference=-1 LabelHeight=1 CFormat="format" Angle=0. List= value1 "texte1" ... valueN "texteN"

ZTitle Title="text of title" Height=1

Zaxis Show=Yes|No Scale=Linear|Logarithm|Time|Degree|Formula [ Min=-1 Max=-1 Delta=-1 Label=Yes|No ] [Formula="my_formula" NewXmin=-1 NewXmax=-1 ]

ZLabel LabelStep=-1 Reference=-1 LabelHeight=1 CFormat="format" Angle=0. List= value1 "texte1" ... valueN "texteN"

2.2.4 CIRCULAR DIAGRAM

Les commandes suivantes peuvent être utilisées dans une “Annotation Window”:

PolarAxis XCenter=-1 YCenter=-1 RadiusMax=-1

[Grid=Light Depend=AxisFormula ]

RadialAxis DeltaTheta=-1 DeltaRadius= -1 Label=Yes|No LabelStep=-1 LabelHeight=1 [ UpperView=Yes|No ] LabelPosition=-1 Color=Black où LabelPosition= est la position des annotations des rayons (en degrés).

ThetaList  theta values....
RadiusList  radius values....

AzimuthAxis DeltaPhi=-1 Label=Yes|No LabelStep=-1 LabelHeight=-1 Color=Black [ Clockwise=Yes|No Origin=LeftSideRight ]

PhiList  phi values....

2.2.5 FITS COMMANDS

Fit Function=Smooth Curve=1 [ Min=-1 Max=-1 ] WindowSize=-1 Step=-1 [ Mode=Add|Replace|Merge Variable=X|Y ]

Fit Function=Bezier Curve=1 [ Min=-1 Max=-1 ] WindowSize=-1 Step=-1 [ Mode=Add|Replace|Merge Variable=X|Y ]

Fit Function=Spline Curve=1 [Min=-1 Max=-1 Npoints=-1 Step=-1] [ Mode=Add|Replace|Merge Variable=X|Y ]

FitResultFormat " Standard Deviation: %f Correlation: %.3f Y = %.6f X + %.3f",std,cor,c1,c0

Fit Function=Polynomial Curve=-1 [Min=-1 Max=-1 Npoints=-1] Step=-1 Order=1 [ Mode=Add|Replace|Merge Variable=X|Y ] Fit_result_as_annotation=Yes|No XStart=0 YStart=0 Color=Black Style=Plain|Bold Height=1

FitResultFormat " Standard Deviation: %f Correlation: %.3f a=%.6f b=%.3f",std,cor,a,b^{∗}

Fit Function=AdvancedFit Curve=1 [Min=-1 Max=-1 Npoints=-1 Step=-1 ] Error=1.e-05 [ Mode=Add|Replace|Merge Variable=X|Y Formula="Equation" Init="Initial values"^{∗} Fit_result_as_annotation=Yes|No XStart=0 YStart=0 Color=Black Style=Plain|Bold Height=1

ATTENTION!

• Il est important de placer la ligne “FitResulFormat” avant la ligne “Fit” qui détermine le type de fit à réaliser.

• Les “min” et “max” sont en unités utilisateurs.

• Si les lignes “Fit” sont placées avant les lignes déterminant le type d’axes (“XAxis” et “YAxis”), les fits seront réalisés en échelle linéaire. Dans le cas contraire, les fits seront réalisés dans le type des axes (fit sur une courbe en log, par exemple).

∗ex: Formula="y=a*(cos(x)+b)" Init="a=1,b=2"

2.2.6 MISC COMMANDS

Formula Min=-1 Max=-1 Npoints=-1 Formula="Equation"
Extract  File="filename"

2.2.7 ISO CONTOURS

ContourDef Label=Yes|No Smooth=Yes|No IdealDistance=1 BackGround=transp|white ForeGround=Undef|White|Black^{†} CFormat="format" Size=1

DrawContour Value=0 Color=Black

LineStyle=Solid MarkStyle=Bigdot

SurfaceGeometry Xmin=-1 Xmax=-1 Ymin=-1 Ymax=-1

DistanceFactor=-1^{‡} XYRatio=-1 Interpolation=Yes|No

3DView Up/Down=60. Right/Left==45. GroundLevel=0. Stretch=0.93 Shift=0.09 GridSize=40. Color=Black Thickness=1.

Add3DView  [ Top|Bottom|Grid|Surface|TopCurve|BottomCurve ]

SurfaceStretch Zmin=-1 Zmax=-1 FirstLevel=-1 LastLevel=-1 Où Zmin, Zmax sont les bornes minimale et maximale Z de la surface. Cet intervalle sera découpé en 256 niveaux de couleurs. Où FirstLevel, LastLevel sont les bornes minimale et maximale (entre 0 et 255) de la table de couleur qui seront utilisées pour le découpage des niveaux V1 V2.

AddObjects  [ Region|Surface|Dots|Triangles ]

Les commandes suivantes peuvent être utilisées dans une “Annotation Window”:

SurfaceLut LutNumber=0 | File= "file_name" où LutNumber= détermine le choix de la table de couleur: = de 1 à 14 : l’une des tables de couleur internes est sélectionnée (description §1.2.8) Si un nom de fichier est donné, les données peuvent être codées de 2 manières:

- indice (0− >255) Rouge Vert Bleu (composantes codées entre 0− >255)
- z1 z2 (bornes de la surface) Rouge Vert Bleu (composantes couleurs)

ColorScale Mode= Linear | Boxes XStart=-1 YStart=-1 XEnd=-1 YEnd=-1 Min=-1 Max=-1 Color=Black Position=DownRight|UpLeft NoTick=Yes|No CFormat="format" Size=1 List= Z0 Label0... Zn Labeln Où XStart=. Yend= sont les coordonnées du rectangle. Elles sont données en unité utilisateur ou en pourcentage de la taille des axes. (Il suffit de faire suivre la valeur par % pour être indépendant des unités du graphique) Où Min=0 Max=0 (0− >255) Sont les bornes de la table de couleur à tracer. Elles permettent de mettre en exergue une partie de la table de couleur utilisée. Où z0 label0.. sont le niveau z suivi, soit de la valeur du label en réel à tracer, soit d’un texte entouré de guillemets (Label : value or "text").

†Si ForeGround=Undef c’est la couleur du trait du contour qui sera couleur du label.

‡DistanceFactor est la distance (implicitement 1) à partir de laquelle 2 triangles sont considérés comme disjoints.

2.2.8 PLOT ANNOTATION

Les commandes suivantes peuvent être utilisées dans une “Annotation Window”:

PlotText XStart=0 YStart=0 Color=Black Style=Plain|Bold Height=1 Angle=0 Text="text to plot"

PlotMark XStart=0 YStart=0

Color=Black Style=BigDot Size=1

PlotBox XStart=0 YStart=0 XEnd=0 YEnd=0

Color=Black Style=BigDot Thickness=1

PlotLine XStart=0 YStart=0 XEnd=0 YEnd=0

Color=Black Style=Solid Thickness=1

PlotArrow XStart=0 YStart=0 XEnd=0 YEnd=0

Color=Black Style=Solid Thickness=1

PlotAxis Location=RIGHT|TOP|LEFT|BOTTOM|FREE [XStart=0 YStart= 0 XEnd=0 YEnd=0] Scale=Linear|Logarithm|Time|Degree|Formula [Formula="my_formula"] Min=0 Max=0 Delta=0 Color=Black Thickness=1 Title="Title of axis" TitleHeight=1 Label=Yes|No Position=UpRight|DownLeft LabelStep=-1 [ Reference=-1 LabelHeight= 1 CFormat="format" Angle=0] [ List= value1 "texte1" ... valueN "texteN" ]

Toutes les coordonnées sont données en unités utilisateur ou en pourcentage de la taille des axes. (Il suffit de faire suivre la valeur par % pour être indépendant des unités du graphique)

2.2.9 PAGE SETTING

PageText XStart=0 YStart=0 Color=Black Style=Plain|Bold Height=1 Angle=0 Text="text toplot"

PageBox XStart=0 YStart=0 XEnd=0 YEnd=0

Color=Black Style=Solid Thickness=1

PageLine XStart=Black YStart=0 XEnd=0 YEnd=0

Color=Black Style=Solid Thickness=1

DrawCell XStart=0 YStart=0 Width=0 Height=0 Type=Black&White|GrayScale|Color [ Orientation=Landscape|Portrait Mode=ScaleToFrame|Margin ]

Toutes les coordonnées sont données en cm ou inch. NB: Comme vous précisez le Type à chaque cellule, il est possible d’imprimer des graphiques noir et blanc et couleur sur la même page.

2.2.10 OUTPUT COMMANDS

SendToFile File="filename" Type=Black&White|GrayScale|Color

[ Size= 15 Copies=1 Orientation=Landscape|Portrait ]

SendTo[EPS]File File="filename" Type=Black&White|GrayScale|Color

[ Orientation=Landscape|Portrait ]

SendToPrinter Command="filename" Type=Black&White|GrayScale|Color

[ Size= 15 Copies=1 Orientation=Landscape|Portrait ]

Cette commande transfert le résultat à un “previewer” PostScript de votre choix. Ex: SendToDisplay Command="ghostscript".

2.3 OPTIONS AND SPECIFICATIONS

Color : Red Blue Magenta Black Green Forest Sienna Yellow Coral Violet

Plum Cyan Turquoise LineStyle : Solid NoLine MicroDash SmallDash Dash LongDash DashDot

LineDot MarkStyle : NoMark BigDot SmallDot Cross X Square Diamond Trian-

gleUp TriangleDown Circle FSquare FDiamond FTriangleUp FTriangle-Down Fcircle (Où F est la première lettre de Filled)

Fonctions utilisées dans les équations : Exp, log10, log, sqrt, rnd() sign, abs, int, sin, cos, tan (en radian),sind, cosd, tand (en degrés) asin, acos, atan, asind, acosd, atand, sinh, cosh, tanh, asinh, acosh, atanh, cosec, sec, cotan, cosecd, secd, cotand

Opérateurs utilisés dans les équations : +, −, ⋆, / , % (division entière), ∗∗ (élévation à la puissance) & (AND) , | (OR) , ^(XOR), ∼ (complement)

2.4 EXEMPLE

Vous pouvez exécuter cet exemple en le plaçant dans un fichier (a.com) et en exécutant la commande Mgraph -show a.com. Le résultat en PostScript sera contenu dans le fichier print.ps que vous pouvez imprimer ou visualiser.

Verbose
WindowSize            Width=575       Height=575
Formula               Min=0   Max=360 Npoints=200  Formula="y=sind(x)"
PlotTitle             Title="COMMAND FILE TEST"  Height=1.20
ScaletoFrame
LineJoin              Round
LineStyle             Curve=1  Style=MicroDash  Red   Thickness=2
MarkStyle             Curve=1  Style=BigDot     Size=3
PlottingStep          Curve=1  Step=2
XAxis             Scale=Logarithm   Min=-1   Max=-1
Ytitle            Title="Y values"  Height=1.
Ylimits           Min=-1.  Max=1.0
Ylabel            LabelHeight=1.00   CFormat="%+2.2f"
Rescale
Fit    Function=Polynomial    Curve=1      Npoints=100     Order=6       Mode=Add
Fit    Function=AdvancedFit   Curve=1      Npoints=100     Error=.0001   Mode=Add \
                        Formula="y=a*x+b"       Init="a=3,b=0"
Formula       Npoints=100       Formula="y=y1+rnd()/2"
Extract       File="./data.extract"
PlotText      XStart=32.22%     YStart=81.04%     Color=Red     Style=Bold \
                        Height=3.00     Text="$a^{2$b^{$T}\_{$d}}+$g"
PlotText      XStart=0.11       Ystart=-.5        Color=Green   Style=Bold \
                        Height=2.       Angle=-30     Text="Green Plot Note"
PlotMark      XStart=40.       YStart=0       \
                        Color=Magenta       Style=TriangleUp Size=20
PlotLine      XStart=80%       YStart=0%       XEnd=80%       YEnd=100% \
                        Color=Red       Style=Dash       Thickness=6
PlotBox       XStart=0.       YStart=-1.       XEnd=50.       YEnd=-.5. \
                        Color=Red       Style=MicroDash       Thickness=12
PlotArrow     XStart=0.       YStart=-1        XEnd=150.       YEnd=.8 \
                        Color=Magenta Thickness=10
PlotAxis      Location=Free  \
                        XStart=0.30%   YStart=108.79%  XEnd=100.30%  YEnd=109.16% \
                        Color=Violet        Label=Yes       \
                        Min=0    Max=360   Delta=40 \
                        CFormat="%.0f"  Scale=Linear
PageText      XStart=10.       YStart=25.       Color=Blue      Style=Bold \
                        Angle=20.       Text="Blue Page Note"
PageLine      XStart=0.       YStart=14.       XEnd=16.        YEnd=6. \
                        Color=Plum       Style=Dash       Thickness=.1
PageBox       XStart=2.       YStart=5.       XEnd=5.       YEnd=9. \
                        Color=Cyan       Style=Solid       Thickness=.2
PageArrow     XStart=5.       YStart=8.       XEnd=12.       YEnd=10. \
                        Color=Turquoise       Thickness=.6
DrawCell      XStart=4.       YStart=4.       Width=15.       Height=16. \
                        Type=Color       Mode=ScaleToFrame
SendToFile    File="./print"       Size=15.       Copies=1

3 Appel à partir d’un programme

FORTRAN / C INTERFACE

Une version réseau du logiciel (Mgraph_sp ) a été développée ; elle permet la visualisation de graphiques générés dans un programme. Cette version est très utilisée dans des problèmes délicats comme le dépouillement de mesures où les contraintes sont le choix de séquences à dépouiller et l’ajustement de coefficients dans les modèles pour réaliser par exemple des inversions et retrouver des paramètres physiques.

Une bibliothèque lib_Net_Mgraph.a contenant divers modules à intégrer dans les programmes FORTRAN ou C a été générée et plusieurs exemples commentés sont fournis avec la distribution de Mgraph .

Cette version réseau permet à un utilisateur de lancer son programme de calcul sur un 1er ordinateur qui exécuterait le programme de visualisation Mgraph_sp sur un 2ème ordinateur et la visualisation des graphiques sur le terminal X d’un 3ème ordinateur et ceci d’une façon transparente quel que soit le type de plate-forme utilisée. (Attention l’utilisateur doit posséder les droits d’accès sur les différentes machines utilisées). Dans le cas le plus général, le tout est lancé sur le même ordinateur mais ceci montre bien l’indépendance entre le programme utilisateur et la visualisation Mgraph .

Plusieurs exemples de programmes C et Fortran sont livrés avec la distribution de Mgraph .

3.1 Les appels de sous-programme

Lancement du logiciel (§3.2.1)  run_mgraph

run_mgraph_nodisplay

Spécifications générales (§3.2.2)  send_resize

send_scale_to_frame send_add_logo send_signature

Tracé des axes (§3.2.3)  send_format

send_xaxes2 send_yaxes2 send_zaxes2 send_labelsize

Envoi des données (§3.2.4)  send_data2

send_data_Xerror send_data_Yerror send_data_arrows

Envoi de surface (§3.2.5)  send_datasurf

send_irregulardatasurf send_datasurf3d send_colorscale

Envoi de titre ou d’annotation (§3.2.6) send_title

send_text2 send_line send_box send_mark

La mise en page (§3.2.7)  send_draw_cell

send_page_text send_page_line send_page_box send_page_arrow

Les sorties (§3.2.8)  send_print

send_create_ps send_create_eps send_export

L’animation (§3.2.9)  send_animate

send_clear_window

Terminer le dialogue (§3.2.10)  send_end_dialog

send_exit_mgraph

En FORTRAN, les noms des routines sont simplement suivis de _f.

La description détaillée des paramètres des fonctions est donnée ci-dessous.

3.2 Description détaillée

Les variables suivantes sont utilisées dans plusieurs sous-programmes.

int client_id Numéro d’ordre du logiciel; en effet, plusieurs Mgraph peuvent être lancés simultanément.

int window Numéro de la fenêtre dans laquelle l’action va être exécutée. Vous pouvez ouvrir jusqu’à 10 fenêtres simultanément (-1 représente la fenêtre courante).

int color Numéro de la couleur: de 0 à 12 : Red, Blue, Magenta, Black, Green, Forest, Sienna, Yellow,Coral, Violet, Plum, Cyan, Turquoise et 16 pour la couleur White

int line_style Style du tracé de ligne: de 0 à 7 :Solid, NoLine, MicroDash, SmallDash, Dash, LongDash, DashDot, LineDot

int mark_type Style du marqueur: de 0 à 15 : NoMark, BigDot, Small-Dot, Cross, X, Square, Diamond, TriangleUp, TriangleDown, Circle, filled Square, filled Diamond, filled TriangleUp, filled TriangleDown, filled Circle

3.2.1 Lancement du logiciel:

Mgraph_sp peut être lancé avec ou sans visualisation:

• run_mgraph (client_id, LOGIN, SHELL, PATH, PROG, COMPUTER, DIS-PLAY)

• run_mgraph_nodisplay (…)

char * LOGIN  login name; if NULL will be the current login
char * SHELL  "rsh" or "remsh"; if NULL will be "remsh"
char * PATH  path: where the program is
char * PROG  name of the program (Mgraph_sp)

char * COMPUTER name of the computer where the program have to be

launched; if NULL will be the server name

char * DISPLAY  IP Address of the terminal

3.2.2 Spécifications générales:

La routine “send_clear_window” permet d’effacer la fenêtre désignée. “send_resize” permet de redéfinir la géométrie de la fenêtre de tracé. “send_scale_to_frame” permet de limiter les axes aux vrais minimum et maximum alors que par défaut une extension de 10% est appliquée pour une meilleure présentation. “send_add_logo” et “send_signature” permettent d’envoyer un logo et une signature sur la page.

• send_clear_window (client_id, window)

• send_resize (client_id, window, width, height)

int width, height Window size in pixel

• send_scale_to_frame (client_id, window, flag)

int flag 0→ no 1→ yes

• send_add_logo (client_id, x_position, y_position, w_scale, h_scale, file_name)

float  x_position, y_position position of the logo
float w_scale, h_scale scaling " "
character * file_name  the EPS file name which contains the logo

• send_signature (client_id, signature)

character * signature Your signature

3.2.3 Déterminer le tracé des axes:

La routine “send_format” permet, en un seul appel, de déterminer les axes en X et en Y. Les appels des routines “send_xaxes2, send_yaxes2, send_zaxes2” permettent de décrire les axes un par un. “send_labelsize” permet de changer, en un seul appel, la taille de tous les labels.

• send_labelsize (client_id, window, tit, xlab, ylab, xtit, ytit)

float tit  size of title
float xlab size of Xaxis labels
float ylab size of Yaxis labels
float xtit size of Xaxis title
float ytit size of Yaxis title

3.2. DESCRIPTION DÉTAILLÉE 59

• send_format (client_id, window, extend, XTitle, YTitle, XForm, YForm, Xsize, Ysize, Xgrid, Xlab, Ygrid, Ylab, Xlog, Ylog, Xstep, Ystep, Xmin, Xmax, Xref, Xtick, Ymin, Ymax, Yref, Ytick);

int  extend  0=short mode 1=long mode
char * XTitle  X Title
char * YTitle  Y Title
char * XForm  X Format the C format formulation ("%.2f" for ex.)
char * YForm  Y Format
char * Xsize  X Label size
char * Ysize  Y Label size
int  Xgrid  Grid type (10=grid 11=halftone 12=nogrid)
int  Xlab  0=Draw label on X (1=NoXlabel)
int  Ygrid  Grid type (10=grid 11=halftone 12=nogrid)
int  Ylab  0=Draw label on Y (1=NoYlabel)
int  Xlog  0=linear 1=Logarithmic
int  Ylog  0=linear 1=Logarithmic
float Xstep  X Step (if = 0 no small ticks)
float Ystep  Y Step

if extend = 1 (long mode):

float Xmin, Xmax  X limits
float Xref  X Reference value
int Xtick X tick nb
float Ymin, Ymax  Y limits
float Yref  Y Reference value
int  Ytick  Y tick nb

• send_xaxes2 (client_id, window, legend, format, label_size, min, max, grid, color, thickness, rotation, step, ref, tick, log, Formula);

• send_yaxes2 (client_id, window, legend, format, label_size, min, max, grid, color, thickness, rotation, step, ref, tick, log, Formula);

• send_zaxes2 (client_id, window, legend, format, label_size, min, max, grid, color, thickness, rotation, step, ref, tick, log, Formula);

char * legend  The text which is displayed under the axis
char * format  the C format formulation ("%.2f" for ex.)
float label size factor on label size
float min, max the limits of axis (-1 : uses the best)
int grid 10= grid 11= half tone 12= no grid
int  thickness thickness of the line factor
float rotation label text rotation in degrees
float step  the step in your units between two ticks (-1:uses the best)
float ref  reference value (-1 : uses the best)
int  tick  step (in ticks) between two labeled ticks (-1 : uses the best)
int  log  0=linear 1=logarithm 2=formula 3=time 4=degree
char * Formula (if log = 2)

3.2.4 Envoyer les données à Mgraph:

60 CHAPITRE 3. APPEL À PARTIR D’UN PROGRAMME

La routine “send_data2” permet d’envoyer dans une fenêtre une série de données, sous la forme de 2 tableaux (X et Y). Les routines “send_data_Xerror” et “send_data_Yerror” permettent de tracer ces données avec une barre d’erreur (X, Y et tableau ERROR). La routine “send_data_arrows” permet de tracer un champ de vecteurs en donnant leur position (X, Y) et leurs caractéristiques (Rho, Theta). Pour chacun de ces appels, vous pouvez déterminer le numéro de la courbe (-1 numérotera automatiquement), le style (couleur, ligne et type de marqueur) de la courbe (et des barres d’erreur).

• send_data2 (client_id, window, clear, plot_nb, nbp, X, Y, color, style, mark, thickness, marksize)

• send_data_Xerror (client_id, window, clear, plot_nb, nbp, X, Y, error, bar_color, bar_style, bar_mark, bar_thickness, bar_marksize, curve_color, curve_style, curve_mark_type, curve_line_thickness, curve_mark_size)

• send_data_Yerror (client_id, window, clear, plot_nb, nbp, X, Y, error, bar_color, bar_style, bar_mark, bar_thickness, bar_marksize, curve_color, curve_style, curve_mark_type, curve_line_thickness, curve_mark_size)

• send_data_arrows (client_id, window, clear, plot_nb, nbp, X, Y, Rho, Theta, lenfactor, arrowfact, color, style, mark, thickness, marksize)

int clear  1=Window is cleared

int plot_nb (0→ 512) Number of the plot (-1 will determine an

available one

int nbp  Number of points in the data
float X[nbp]  x data
float Y[nbp]  f(x) data

float error[nbp] X or Y error bar (Y+err Y-err (or X+err X-err)

will be drawn)

float Rho[nbp]  length of the vector
float Theta[nbp] orientation of the vector
float lenfactor  length factor
float arrowfact arrow size factor

3.2.5 Envoyer une surface à Mgraph:

La routine “send_datasurf” permet d’envoyer une surface, en grille régulière, à Mgraph . Les points sont rangés dans 1 tableau (data). “send_irregulardatasurf” permet d’envoyer une surface irrégulière en 3 tableaux (XX, YY et ZZ). “send_datasurf3d” permet une représentation 3D de la surface précédemment tracée dans une fenêtre et l’appel de “send_colorscale” permet de dessiner dans la fenêtre une échelle couleur, linéaire ou à l’aide de carrés. Pour la description des tables de couleur internes, voir au §1.2.8.

• send_datasurf (client_id, window, width, height, xmin, xmax, ymin, ymax, data, nbcont, cont, color, style, mark , dolabel, add, undef, distance, pix, nlut, red, green, blue, near, Format, AddMode);

int width, height  surface dimensions
float xmin, xmax, ymin, ymax Limits on X and Y
float data[width*height]  Data values

• send_irregulardatasurf (client_id, window, width, height, size, xx, yy, zz, nbcont, cont, color, line_style, mark_style, dolabel, add, undef, distance, pix, nlut, red, green, blue, near, Format, AddMode);

int  width, height  surface dimensions [default 0]
int  size  size of matrix X,Y,Z
float xx[size]  X values
float yy[size]  Y values
float zz[size]  Z values
int  nbcont  number of contour values
float cont[nbcont]  contour values
int color[nbcont] (0→ 12 - 16)
int  line_style[nbcont] (0→ 7) Line style
int  mark_style[nbcont] (0→ 15) Mark type
int  dolabel[nbcont]  Draw label? 0=No 1=Yes
int  add[4]  Surface , Region , Dots , Triangles (0/1)
float undef  Undef value
float distance  Region distance factor
float pix[4]  Color tranformation: minv maxv minp maxp

int nlut 0=no lut 1→ 14=internal LUT 256=use following

LUTS

short Red[256]  LUT
short Green[256]  LUT
short Blue[256]  LUT
int near pixel interpolation: 0=No 1=Yes
char * Format  label C format
int  AddMode  1=add mode on graphic window

• send_datasurf3d (client_id, window, updown, rightleft, groundlevel, stretch, zeroposition, addings3D, nbgrid, thickness, color);

float updown  Up/Down angle in degrees
float rightleft  Right/Left angle in degrees
float groundlevel Undef=8421
float stretch  between 0 to 1 : reduces z impact
float zeroposition between -1 to 1 : shifts the graph position

int addings3D[8] Top surface, Bottom surface, Surface, Grids, Top

curves, Bottom curves (0/1) (7 & 8 unused)

int nbgrid  Number of grids
int thickness  Grid thickness

• send_colorscale (client_id, window, mode, x1, y1, x2, y2, min, max, position, color_label, NoTick, size_label, coord, format, list)

int  mode  0=linear 1=boxes
float x1,y1,x2,y2 color scale positions
int  min,max  color scale stretch: 0→ 255
int  position  0=Down/Right 1=Up/Left
int  NoTick  0=tick 1=no tick
float size_label the size label factor
int coord 0=percentage 1=user units
char * format  the C format formulation ("%.2f" for ex.)
char * list  list of pixel value followed by a value or a label

3.2.6 Envoyer un titre ou une annotation à Mgraph:

Les appels suivants vous permettent d’ajouter un titre dans une fenêtre ou des annotations: text, ligne ou boite. La variable “relative” permet de lier les annotations au graphique en coordonnées réelles ou de les attacher au graphe lui-même (en %).

• send_title (client_id, window, text)

• send_text2 (client_id, window, color, rotation, size, bold, x_position, y_position, text, relative)

• send_line (client_id, window, color, line_style, thickness, x_start, y_start, x_end, y_end, relative)

• send_box (client_id, window, color, line_style, thickness, x_start, y_start, x_end, y_end, relative)

• send_mark (client_id, window, color, mark_style, size, x_position, y_position, relative)

char * text  the text which is to be shown
float x_position, y_position position of the text (or marker)
float x_start, y_start  start position of the line (or box)
float x_end, y_end  end position of the line (or box)
float rotation  rotation angle of the text in degree
float size  factor size
int  bold  0=plain text 1=bold text
int  thickness  Line thickness factor
int  relative  0=relative to frame in %

1= user coordinates

3.2.7 Faire une mise en page:

Vous pouvez imprimer votre graphe directement en utilisant les sorties PostScript, Gif ou Tiff mais également en faisant une mise en page grâce aux appels suivants: “send_draw_cell” permet d’envoyer le graphe dans une cellule positionnée sur une page, puis “send_page_text” etc… permettent de faire des annotations sur la page.

• send_draw_cell (client_id, window, x_position, y_position, width, height, type, orientation, fit_frame)

float x_position, y_position position of the cell on the page in cm
float width, height  size of the cell in cm
int type  0=B/W 1=GreyScale 2=Color
int orientation  0=Portrait 1=Landscape
int fit_frame  fit the frame? 0=No 1=Yes

• send_page_text (client_id, x_position, y_position, color, bold, height, rotation, text)

• send_page_line (client_id, x_start, y_start, x_end, y_end, color, line_style, thickness)

• send_page_box (client_id, x_start, y_start, x_end, y_end, color, line_style, thickness)

• send_page_arrow (client_id, x_start, y_start, x_end, y_end, color, line_style, thickness)

float x_position, y_position position of the text in cm
int bold bold text? 0=No 1=Yes
float height  text height in cm
float rotation  text rotation in degrees
char * text  the text which is to be shown
float x_start, y_start  start position of the line (box, arrow) in cm
float x_end,y_end  end position of the line (box, arrow) in cm
float thickness  Line thickness in cm

3.2.8 Les sorties PostScript, Gif ou Tiff:

Vous pouvez imprimer votre graphe ou votre mise en page soit directement sur une imprimante à travers une commande “shell”, soit dans un fichier (PS ou EPS). Vous pouvez également exporter un graphe dans un fichier TIFF ou GIF.

• send_print (client_id, window, size, type, square, logo, orientation, printer_shell)

• send_create_ps (client_id, window, size, type, square, logo, orientation, file_name)

• send_create_eps (client_id, window, type, orientation, file_name)

float size  size in cm (std 16 cm)
int  type  0=B/W 1=GreyScale 2=Color
int  square  square frame? 0=No 1=Yes
int  logo  add the logo? 0=No 1=Yes
int  orientation  0=Portrait 1=Landscape
char * printer_shell spooler command: example: "lp -d Myprinter"
char * file_name  your (E)PS file name

• send_export (client_id, window, type, file_name)

int  type  0→ gif 1→ Tiff
char * file_name your Gif/Tiff file name

3.2.9 Animation des graphes:

Si plusieurs courbes ont été tracées dans la fenêtre, elles peuvent être animées de la manière suivante:

• send_animate (client_id, window, elapse, plot_step)

int elapse  time : 10 → 100
int plot step > 1 if the animation is too slow

3.2.10 Terminer la session:

La routine “send_end_dialog” permet de quitter votre programme en conservant Mgraph actif. La routine “send_exit_mgraph” quitte Mgraph .

• send_end_dialog (client_id)

• send_exit_mgraph (client_id)

int client_id;

3.3 Exemples de programmes C:

/*-----------------------------------------------
        SHORT PROGRAM:
        You just need 3 calls to draw a curve:
        run_mgraph:       Calling of the software
        send_data2:       Drawing of 4 curves (sin) into 4 windows
        send_end_dialog:  Close Dialog: Mgraph remains active
------------------------------------------------*/
#include <stdio.h>
#include <math.h>
#define FALSE 0
#define TRUE  1
#define LOGIN ""
#define SHELL "remsh"
#define PATH "/usr/local/bin"
#define PROG "Mgraph_sp"
#define COMPUTER ""
#define DISPLAY ""
extern int run_mgraph();
main()
{
int mgraph_no=1,nbp = 512,id;
float *xx,*yy;
int i,plot_no;
/*========================================================================================
 START MGRAPH_SP MODULE: run_mgraph
        LOGIN:  login name;             if NULL will be the current login
        SHELL:  "rsh" or "remsh";       if NULL will be  "remsh"
        PATH :  path where the program is
        PROG :  name of the program (Mgraph_sp)
        COMPUTER:       name of the computer where the program has to
                        be launched;    if NULL will be the server name
        DISPLAY: Your Display Id;       if NULL will be your DISPLAY address
                                             from your environment
==========================================================================================*/
        if(!run_mgraph(mgraph_no,LOGIN,SHELL,PATH,PROG,COMPUTER,DISPLAY))
        {
                printf("Cannot start Mgraph\n");
                exit(0);
        }
        xx = (float *) malloc( sizeof(float) * nbp );
        yy = (float *) malloc( sizeof(float) * nbp );
        for (plot_no=1;plot_no<5;plot_no++){
        id = plot_no;
            for(i=0;i<nbp;i++){
                xx[i] = i * 3.141592 * plot_no / nbp;
                yy[i] = sin((double)xx[i]) / plot_no;

3.3. EXEMPLES DE PROGRAMMES C: 65

          }
/*-----------------------------------------------
SEND DATA ON WINDOW
send_data2(client_id,window,clear,plot_nb,nbp,$\times$,yy,color,style,mark,thickness,marksize);
 id    : Number of window (from 1 to 5)
 0     : window will not be cleared
 -1    : number of the plot
 nbp   : Number of points in xx and yy arrays
xx,yy  : data arrays
plot_no: color of the curve
0      : line style (0=solid)
0      : mark style (0=no mark)
1      : line thickness
0      : mark size
------------------------------------------------*/
          send_data2(mgraph_no,id,0,-1,nbp,xx,yy,plot_no,0,0,1,0);
      }
      send_end_dialog(mgraph_no);
      free(xx);
      free(yy);
}

/*-----------------------------------------------
   RELATED PROGRAM: drawing with interaction between software and Mgraph
  -----------------------------------------------
  COMMON VARIABLES:
     int Mgraph_no Sequence number of the software;
                      several Mgraph can be launched at the same time id (several Mgraph can be launched)
     int nwindow   Number of window in which the data will be shown (-1=Current)
     int color     Number of the color: from 0 to 12:
                          Red, Blue, Magenta, Black, Green, Forest, Sienna,
                          Yellow, Coral, Violet, Plum, Cyan, Turquoise
  Plum, Cyan,Turquoise
                      and 16 for the White
     int linestyle Style of the line: from 0 to 7:
                          Solid, NoLine, MicroDash, SmallDash,
                         Dash, LongDash, DashDot, LineDot
     int marker    Style of the marker: from 0 to 15:
                          NoMark, BigDot, SmallDot, Cross, X, Square,
                          Diamond, TriangleUp, TriangleDown, Circle
                          filled: Square, Diamond, TriangleUp, TriangleDown, Circle
-----------------------------------------------*/
#include <stdio.h>
#include <math.h>
#include <unistd.h>
#define FALSE 0
#define TRUE  1
#define LOGIN NULL
#define SHELL NULL
#define PATH "/usr/local/bin"
#define PROG "Mgraph_sp"
#define COMPUTER ""
#define DISPLAY NULL
#define XFormula "cos(x)"
#define YFormula NULL
extern int run_mgraph();
main()
{
float *xx,*yy;
int   i,nbp,plot_no;
float  coef;
int   Mgraph_no;
int   nwindow;
int   width;
int   height;
char  title[128],texte[128];
char  TitleAxis[128];
char  Format[128];
float xmin,xmax,ymin,ymax;
int   grid;
float xstep,ystep;
float xbase,ybase;
int   ixtic,iytic;
int   ixlog,iylog;

int   clear,color,linestyle,marker;
float posx,posy;

clear = 0;
color = 0;
linestyle = 0;
marker = 0;
posy=0.1;
/*========================================================================================
 START MGRAPH_SP MODULE: run_mgraph
        LOGIN:  login name;  if NULL will be the current login
        SHELL:  "rsh" or "remsh";  if NULL will be  "remsh"
        PATH :  path where the program is
        PROG :  name of the program (Mgraph_sp)
        COMPUTER:       name of the computer where the program has to
                        be launched;  if NULL will be the server name
DISPLAY: Your Display Id;  if NULL will be your DISPLAY address
                                             from your environment
==========================================================================================*/
        Mgraph_no = 1;
if(!run_mgraph(Mgraph_no,LOGIN,SHELL,PATH,PROG,COMPUTER,DISPLAY))
{
printf("Cannot start Mgraph\n");
exit(0);
}
nbp = 512;
xx = (float *) malloc( sizeof(float) * nbp );
yy = (float *) malloc( sizeof(float) * nbp );
/*========================================================================================
SEND_RESIZE WINDOW
int width,height      = window size  in pixel
==========================================================================================*/
width=600;
height=500;
nwindow = 1;
send_resize(Mgraph_no,nwindow,width,height);
/*=========================================================================================
SEND TITLE
char title[] = the text which is to be shown
==========================================================================================*/
strcpy(title,"y=sin(x) Window 1");
send_title(Mgraph_no,nwindow,title);
/*=========================================================================================
SEND AXES
send_xaxes2(client_id,window,legend,format,label_size,min,max,grid,
            color,thickness,rotation,step,ref,tick,log,Formula);
CAREFUL with types !!!

char  legend               The text which is displayed under the axis
char  format               the C format formulation   ("%.2f" for ex.)
float label size           factor on label size
float min,max              the limits of axis (-1 : uses the best)
int   grid                 10= grid 11= half tone 12= no grid
int   color                color type (3=black)
int   thickness            thickness of the line factor
float rotation             label text rotation in degrees
float step                 the step in your units between two ticks (-1:uses the best)
float ref                  reference value   (-1 : uses the best)
int   tick                 step (in ticks) between two labeled ticks  (-1 : uses the best)
int   log                  0=linear 1=logarithm  2=formula 3=time  4=degree
char  Formula[]            (if log = 2)
============================================================================================*/
xmin = 0.;
xmax = 3.15;
xstep= -1.;
xbase= -1.;
grid= 12;
ixtic= -1;
ixlog=  2;
send_xaxes2(Mgraph_no,nwindow,"0 <angle< $p","%.2f",1.0,
xmin,xmax,grid,3,1,30.0,xstep,xbase,ixtic,ixlog,XFormula);
ymin = 0.;
ymax = 10.;
ystep= -1.;
ybase= -1.;
iytic= -1;
iylog=  0;
send_yaxes2(Mgraph_no,nwindow,"computed sinus","%.2f",1.0,
ymin,ymax,grid,3,1,30.0,ystep,ybase,iytic,iylog,YFormula);
coef = 1.;
for(plot_no=1;plot_no<5;plot_no++){
/*=======================================================================================
Compute data...
=========================================================================================*/
for(i=0;i<nbp;i++){
  xx[i] = (float)i * 3.141592 / nbp;
  yy[i] = coef * sin((double)xx[i]) ;
}
/*========================================================================================
SEND DATA ON WINDOW nwindow
send_data2(client_id,window,clear,plot_nb,nbp,xx,yy,color,style,mark,thickness,marksize);
int plot_nb      Number of the curve (-1 will determine an available one)
int nbp          Number of points in the data
float xx         x    data
float yy         f(x) data

     int color
     int style
     int mark
     int thickness
     int marksize
========================================================================================*/
    send_data2(Mgraph_no,nwindow,clear,plot_no,nbp,xx,yy,color,linestyle,marker,1,1);
/*===========================================================================================
ADD TEXT ON WINDOW
        send_text2(client_id,window,color,rotation,size,bold,x_pos,y_pos,text,relative);
   float rotation       rotation angle in degree
   float size           factor size of the text
   int   bold           0->plain text  1->bold text
   float x_pos,y_pos    position of the marker (or the text)
   char  text           the text which is to be shown
   int   relative       0->relative to frame in % 1->relative to real coordinates
===========================================================================================*/
    posx = 80;
    sprintf(texte,"%.5f %c",3.141592 * plot_no,0);
    send_text2(Mgraph_no,nwindow,color,0.0,1.,0,posx,posy,texte,0);
    color++;
    if (color>12) color = 0;
    posy += 5;
    printf("You can adjust your curve in your program\n");
            printf("enter new coef (between 1-10) for a new curve: ");
    scanf("%g",&coef);
}
/*====================================================================================
ANIMATE PLOTS
int elapse_time   10 -> 100
int step    > 1 if the animation is too slow
======================================================================================*/
send_animate(Mgraph_no,nwindow,100,1);
printf("Touch the plot Window 1 to animate.... \n");
/*====================================================================================
  New Window, same Mgraph,  with the cosinus...
======================================================================================*/
      nwindow = 2;
      strcpy(title,"y=cos(x) Window 2");
      send_title(Mgraph_no,nwindow,title);
      send_xaxes2(Mgraph_no,nwindow,"Angle","%.1f",1.0,0.,10.,11,3,1,30.0,-1.,5.,2,4,XFormula);
      send_yaxes2(Mgraph_no,nwindow,"cos(x)","%.2f",1.0,-1.,-1.,11,3,1,30.0,ystep,ybase,2,0,YFormula);
      color=0;
      clear=1;
      linestyle=2;
      for(plot_no=0; plot_no<5; plot_no++){
         for(i=0;i<nbp;i++){
            *(xx+i) = i * 3.141592 * plot_no / nbp;

            *(yy+i) = cos(*(xx+i))* plot_no/10.;
         }
          send_data2(Mgraph_no,nwindow,clear,-1,nbp,xx,yy,color,linestyle,marker,1,1);
          color++;
          linestyle++;
          clear=0;
      }

/*===========================================================================================
EXIT_MAIN_PROGRAM
before quitting your main program,  call send_end_dialog
to keep Mgraph running
===========================================================================================*/
send_end_dialog(Mgraph_no);
free(xx);
free(yy);
}

Si le fichier prog.c contient ce programme, lancer la commande de compilation:

cc prog.c -o prog lib_Net_Mgraph.a -lm

3.4. EXEMPLES DE PROGRAMMES FORTRAN : 71

3.4 Exemples de programmes FORTRAN :

c==================================================================
c       SHORT PROGRAM:
c       You just need 3 calls to draw a curve:
c       run_mgraph:       Calling of the software
c       send_data2:       Drawing of 1 curve (sin)
c       send_end_dialog:  Close Dialog: Mgraph remains active
c==================================================================
      CHARACTER*(*) PROG,PATH
      PARAMETER (PATH ='/usr/local/bin/')
      PARAMETER (PROG ='Mgraph_sp')
      real xx(512),yy(512)
      nbp =512
      Mgraph_no = 1
      nwindow = -1
C========================================================================================
c START MGRAPH_SP MODULE: run_mgraph_f
c        LOGIN:  login name;             if NULL will be the current login
c        SHELL:  "rsh" or "remsh";       if NULL will be  "remsh"
c        PATH :  path where the program is
c        PROG :  name of the program (Mgraph_sp)
c        COMPUTER:       name of the computer where the program has to
c                        be launched;    if NULL will be the server name
c        DISPLAY: Your Display Id;       if NULL will be your DISPLAY address
c                                             from your environment
C========================================================================================
      call run_mgraph_f(Mgraph_no," "," ",PATH,PROG," "," ")
c
c Compute the data
c
      do i = 1,nbp
            xx(i) = i * 3.141592 /nbp
            yy(i) = sin(xx(i))
      enddo
c-----------------------------------------------
c   nwindow    : Number of window
c   1     : window will be cleared
c   1     : number of the plot
c   nbp   : Number of points in xx and yy arrays
c  xx,yy  : data arrays
c   1     : color of the curve (1=blue)
c   0     : line style (0=solid)
c   4     : mark style (4=square)
c   1     : line thickness
c   1     : mark size
c------------------------------------------------*/
      call send_data2_f(Mgraph_no,nwindow,1,1,nbp,xx,yy,1,0,4,1,1)
c===========================================================================================
c EXIT_MAIN_PROGRAM
c       before quitting your main program,  call send_end_dialog
c       to keep Mgraph running
c===========================================================================================

call send_end_dialog_f(Mgraph_no)
stop
end

c-----------------------------------------------
c  RELATED PROGRAM: drawing with interaction between software and Mgraph
c -----------------------------------------------
c COMMON VARIABLES:
c    integer Mgraph_no Sequence number of the software;
c                        several Mgraph can be launched at the same time id (several Mgraph can be launched)
c    integer nwindow   Number of window in which the data will be shown (-1=Current)
c    integer color     Number of the color: from 0 to 12:
c                         Red, Blue, Magenta, Black, Green, Forest, Sienna,
c                         Yellow, Coral, Violet, Plum, Cyan, Turquoise
c                         Plum, Cyan,Turquoise
c                        and 16 for the White
c    integer linestyle Style of the line: from 0 to 7:
c                         Solid, NoLine, MicroDash, SmallDash,
c                           Dash, LongDash, DashDot, LineDot
c    integer marker    Style of the marker: from 0 to 15:
c                         NoMark, BigDot, SmallDot, Cross, X, Square,
c                         Diamond, TriangleUp, TriangleDown, Circle
c                         filled: Square, Diamond, TriangleUp, TriangleDown, Circle
c-----------------------------------------------

      CHARACTER*(*) LOGIN,SHELL,PROG,PATH,COMPUTER
      CHARACTER*(*) X_FORMULA,Y_FORMULA,DISPLAY
      PARAMETER (LOGIN=" ")
      PARAMETER (SHELL=" ")
      PARAMETER (PATH ="//usr/local/bin/")
      PARAMETER (PROG ="Mgraph_sp")
      PARAMETER (COMPUTER =" ")
      PARAMETER (DISPLAY = " ")
      PARAMETER (X_FORMULA= "cos(x)")
      PARAMETER (Y_FORMULA=" ")
      character*128 title,text
      real xx(512),yy(512)
      integer width,height
      iclear = 0
      icolor = 0
      linestyle = 0
      marker = 0
      py = 0.1
c========================================================================================
c START MGRAPH_SP MODULE: run_mgraph_f
c       LOGIN:  login name;             if NULL will be the current login
c       SHELL:  "rsh" or "remsh";       if NULL will be  "remsh"
c       PATH :  path where the program is
c       PROG :  name of the program (Mgraph_sp)
c       COMPUTER:       name of the computer where the program has to
c                       be launched;    if NULL will be the server name
c       DISPLAY: Your Display Id;       if NULL will be your DISPLAY address
c                                            from your environment
c==========================================================================================
      Mgraph_no = 1
      call run_mgraph_f

     *(Mgraph_no,LOGIN,SHELL,PATH,PROG,COMPUTER,DISPLAY)

c========================================================================================
c SEND_RESIZE WINDOW
c        integer width,height      = window size  in pixel
c==========================================================================================
      width=600
      height=500
      nwindow = 1
      call send_resize_f(Mgraph_no,nwindow,width,height)
c=====================================================================
c SEND TITLE
c    call send_title_f(client_id,window,title)
c       character* title = the text which is to be shown
c=====================================================================
      write(title,'(A)')"y=sin(x) Window 1"
      call send_title_f(Mgraph_no,nwindow,title)
c=====================================================================
c SEND AXES
c         CAREFUL with types !!!
c    call send_xaxes2_f(client_id,window,legend,format,label_size,min,max,grid,
c            color,thickness,rotation,step,ref,tick,log,Formula)
c       character*  legend             The text which is displayed under the axis
c       character*  format             the C format formulation   ("%.2f" for ex.)
c       real        label size         factor on label size
c       real        min,max            the limits of axis (-1 : uses the best)
c       integer     grid               10= grid 11= half tone 12= no grid
c       integer     color              color type (3=black)
c       integer     thickness          thickness of the line factor
c       real        rotation           label text rotation in degrees
c       real        step               the step in your units between two ticks (-1:uses the best)
c       real        ref                reference value   (-1 : uses the best)
c       integer     tick               step (in ticks) between two labeled ticks  (-1 : uses the best)
c       integer     log                0=linear 1=logarithm  2=formula 3=time  4=degree
c       character*  Formula            (if log = 2)
c=====================================================================
      xmin = 0.
      xmax = 3.15
      xstep= -1.
      xbase= -1.
      igrid= 12
      ixtic= -1
      ixlog=  2
      call send_xaxes2_f(Mgraph_no,nwindow,"0 <angle< $p","%.2f",1.0,
     & xmin,xmax,igrid,3,1,30.0,xstep,xbase,ixtic,ixlog,X_FORMULA)
      ymin = 0.
      ymax = 10.
      ystep= -1.
      ybase= -1.

      iytic= -1
      iylog=  0
      call send_yaxes2_f(Mgraph_no,nwindow,"computed sinus","%.2f",1.0,
     & ymin,ymax,igrid,3,1,30.0,ystep,ybase,iytic,iylog,Y_FORMULA)
      va = 1
      nbp = 512
      do iplot = 1,5
c=====================================================================
c Compute data...
c=====================================================================
         do i = 1,nbp
            xx(i) = i * 3.141592 / nbp
            yy(i) = va * sin(xx(i))
         enddo
c=====================================================================
c SEND DATA ON WINDOW
c    call send_data2(client_id,window,clear,plot_nb,nbp,xx,yy,color,style,mark,thickness,marksize)
c
c     integer clear     does the window have it to be cleared? (0=no 1=yes)
c     integer plot_nb    Number of the curve (-1 will determine an available one)
c     integer nbp    Number of points in the data
c     real    xx    x    data
c     real    yy    f(x) data
c     integer color
c     integer style
c     integer mark
c     integer thickness
c     integer marksize
c=====================================================================
         call send_data2_f(Mgraph_no,nwindow,iclear,iplot,
     &   nbp,xx,yy,icolor,linestyle,marker,1,1)
         icolor = icolor + 1
 if (icolor.gt.12)icolor = 1
c=====================================================================
c ADD TEXT ON WINDOW
c    call send_text2_f(client_id,window,color,rotation,size,bold,x_position,y_position,text,relative)
c  real           rotation       rotation angle in degree
c  real           size           factor size of the text
c  integer        bold           0->plain text  1->bold text
c  real           x_pos,y_pos    position of the marker (or the text)
c  character*(*)  text           the text which is to be shown
c  integer        relative       0->relative to frame in % 1->relative to real coordinates
c=====================================================================
   px = 80.
   py = py + 5
         write(text,"(f5.2)")3.141592 * iplot
         call send_text2_f(Mgraph_no,nwindow,icolor,
     *          0.0,1.,0,px,py,text,0)

print *,'You can adjust your curve in your program'
   print*,"enter new coef (between 1-10) for a new curve:"
   read(5,*)va
  enddo

c=====================================================================
c  ANIMATE PLOTS
c  integer elapse time   10 -> 100
c  integer step   > 1 if the animation is too slow
c=====================================================================
call send_animate_f(Mgraph_no,nwindow,10,1)
print *,"Touch the plot Window 1 to animate...."
c=====================================================================
c New Window, same Mgraph,  with the cosinus...
c=====================================================================
nwindow = 2
write(title,'(A)')"y=cos(x) Window 2"
call send_title_f(Mgraph_no,nwindow,title)
call send_xaxes2_f(Mgraph_no,nwindow,"Angle","%.1f",1.0,
&  0.,10.,11,3,1,0.0,-1.,5.,2,4,X_FORMULA)
call send_yaxes2_f(Mgraph_no,nwindow,"cos(x)","%.2f",1.0,
&  -1.,-1.,11,3,1,0.0,ystep,ybase,2,0,Y_FORMULA)
icolor=0
iclear=1
linestyle=2
do iplot = 1,5
   do i = 1,nbp
      xx(i) = i * 3.141592 * iplot / nbp
      yy(i) = cos(xx(i))* iplot/10.
   enddo
call send_data2_f(Mgraph_no,nwindow,iclear,-1,
& nbp,xx,yy,icolor,linestyle,marker,1,1)
icolor = icolor + 1
linestyle = linestyle + 1
iclear=0
enddo

c=====================================================================
c  EXIT MAIN PROGRAM
c before quitting your main program,  call send_end_dialog_f
c to keep Mgraph running
c=====================================================================
call send_end_dialog_f(Mgraph_no)
stop
end

Si le fichier prog.f contient ce programme, lancer la commande de compilation:

f77 prog.f -o prog lib_Net_Mgraph.a

4 CGI

Utilisation de Mgraph dans un script CGI

Afin de gérer convenablement l’utilisation de Mgraph par Internet, il faut faire particulièrement attention à certains paramètres du serveur: Le serveur doit permettre l’utilisation de scripts CGI. Pour un serveur apache, il suffira de se reporter aux fichiers de configuration (access.conf, httpd.conf ou srm.conf) afin d’autoriser l’accès au répertoire contenant les scripts.

Voici un exemple d’utilisation de Mgraph dans une succession de scripts écrits en langage C et en PERL.

• Exemple de formulaire en HTML Ce formulaire permet le lancement du fichier CGI.

          <HTML>
            <HEAD><TITLE>The Mgraph Demo Form</TITLE></HEAD>
            <CENTER><H1>The Mgraph Demo Form</H1>
              <H3>Here is a basic example of an html form,<BR>
                  a simple submit button to call a cgi script:<BR>
              </H3>
              <FORM ACTION="/cgi-bin/Mgraph.cgi" method="post">
                 <INPUT TYPE="SUBMIT" name="submit" value="Launch Shell Demo">
              </FORM>
              <FORM ACTION="/cgi-bin/Mgraph.pl" method="post">
                 <INPUT TYPE="SUBMIT" name="submit" value="Launch Perl  Demo">
              </FORM>
            </CENTER>
          </HTML>

• Programme C Ce programme génère un fichier de données x,y,z représentant une surface. Il est utilisé dans le script sous le nom de “sub”.

      #include <stdio.h>
      #include <math.h>
      /* This program (called "Mgraph_with_cgi_example" in examples)
         generates a surface data file */
      main()

78 CHAPITRE 4. CGI

            {
             int i,j,n;
             double xs,ys,x,y,z;
            n = 50;
              xs= 6.0 / n;
              ys= 6.0 / n;
              for(i=0;i<=n;i++){
                   x= -3. + i * xs;
                   for(j=0;j<=n;j++){
                        y= -3. + j * ys;
                        z=cos(x*y*2);
                        printf(" %g %g %g\n",x,y,z);
                   }
              }
            }

• Fichier de commandes.

Ce fichier sera utilisé par l’un des scripts ci-dessous.

Attention: en environnement sécurisé, il faut ajouter les 2 lignes suivantes au début du fichier de commandes.

SetHomeDirectory           /tmp
SetTmpDirectory            /tmp

Ce fichier de commandes a lui-même été généré par Mgraph . Il s’appelle My_com_file dans le script ci-dessous.

SetSignature    ""
ReadSurface     File="/tmp/WWW/out_file" Mode=IRREGULAR  Ncolumns=3 Xcolumn=1 Ycolumn=2 Zcolumn=3 "
PlotTitle       Title="Here is the result" Height=1.00
Grid            Frame=Yes Xgrid=No Ygrid=No
ContourDef      Smooth=No Background=Transp ForeGround=Undef IdealDistance=1 Size=1 CFormat="%.3g"
SurfaceLUT      LutNumber=2
AddObject       Surface
XTitle          Title="X" Height=1.00
XAxis           Show=Yes Scale=Linear Min=-3 Max=3 Delta=-1 Color=Black Thickness=1
XLabel          LabelStep=-1 Reference=-1 LabelHeight=1.00 CFormat="" Angle=0.0
YTitle          Title="Y" Height=1.00
YAxis           Show=Yes Scale=Linear Min=-3 Max=3 Delta=-1 Color=Black Thickness=1
YLabel          LabelStep=-1 Reference=-1 LabelHeight=1.00 CFormat="" Angle=0.0
SendToFile      File="/tmp/WWW/out_file.ps" Type=Color Size=15.0 SquareFrame=No Copies=1 \
Orientation=Portrait

• Exemple de script en SHELL Ce script commence par lancer le programme précédent, puis lance Mgraph sur le fichier de comnmande ci-dessus qui lit les données qui viennent d’être créées et qui constitue un fichier PostScript. Si nécessaire, il offre la possibilité de construire une image gif (ici, utilisation de ps2gif).

#!/bin/sh
# /usr/LOA/bin (directory) contains:
#               Mgraph
#               Mgraph_with_cgi_example (creates a surface data file)
#               My_com_file             (command file for Mgraph)
# /usr/local/bin/ (directory) contains:
#               ghostscript
#               ps2gif
#creation of data
      /usr/LOA/bin/Mgraph_with_cgi_example > /tmp/WWW/out_file
#Mgraph call (creation of PS file, the command file(My_com_file) exist)
      /usr/bin/rm -f /tmp/WWW/out_file.ps
      /usr/LOA/bin/Mgraph /usr/LOA/bin/My_com_file > /dev/null
#Convert postscript in gif
      /usr/local/bin/ps2gif /tmp/WWW/out_file.ps /tmp/WWW/out_file.gif > /dev/null
# /Mgraph_tmp/ (directory) is a link on /tmp/
# This is  fixed by Apache Administrator (see access.conf)
      echo "Content-type: text/html \n\n"
      echo "<HTML>"
          echo "<HEAD>"
              echo "<TITLE>The Mgraph's output</TITLE>"
          echo "</HEAD>"
          echo "<BODY>"
              echo '<IMG SRC="/Mgraph_tmp/WWW/out_file.ps">'
              echo '<IMG SRC="/Mgraph_tmp/WWW/out_file.gif">'
          echo "</BODY>"
      echo "</HTML>"

• Exemple de script en PERL Ce script commence par lancer le programme précédent, puis lance Mgraph sur le fichier de comnmande généré luimême en PERL.

#!/usr/local/bin/perl
#Names of the files
$process_id = $$;
$out_file  =join(".",$process_id,"Mgraph","out");
$com_file  =join(".",$process_id,"Mgraph","com");
$ps_file   =join(".",$process_id,"Mgraph","ps");
$gif_file  =join(".",$process_id,"Mgraph","gif");
#Document head
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>The Mgraph's output</TITLE>\n";
print "</HEAD>\n";
print "<CENTER><H1>The Mgraph's output</H1>\n";

80 CHAPITRE 4. CGI

#The processing
# Internal Creation of the command file
        open(COM,"> /tmp/WWW/$com_file");
        print COM &CreeCom;
        close(COM);
#calls
#program call
        system(" /usr/LOA/bin/Mgraph_with_cgi_example >  /tmp/WWW/$out_file");
#Mgraph call
        system(" /usr/bin/rm  /tmp/WWW/$ps_file > /dev/null");
        system(" /usr/LOA/bin/Mgraph  /tmp/WWW/$com_file > /dev/null");
#Convert postscript in gif
        system(" /usr/local/bin/ps2gif /tmp/WWW/$ps_file /tmp/WWW/$gif_file > /dev/null");
#document foot
        print "<IMG SRC=\"/Mgraph_tmp/WWW/$gif_file\">\n";
        print "</HTML>\n";
#the subroutine CreeCom creates the command file
sub CreeCom {
$output = "SetSignature \"\" \n";
$output .= "SetHomeDirectory /tmp  \n";
$output .= "SetTmpDirectory /tmp  \n";
$output .="ReadSurface File=\"/tmp/WWW/$out_file\" Mode=IRREGULAR Xcolumn=1 Ycolumn=2 Zcolumn=3 \n";
$output .="PlotTitle Title=\"Here is the result\" Height=1.00\n";
$output .="Grid Frame=Yes Xgrid=No Ygrid=No\n";
$output .="ContourDef Smooth=No Background=Transp ForeGround=Undef IdealDistance=1 Size=1
CFormat=\"\%.3g\"\n";
$output .="SurfaceLUT LutNumber=2\n";
$output .="AddObject Surface\n";
$output .="XTitle Title=\"X\" Height=1.00\n";
$output .="XAxis Show=Yes Scale=Linear Min=-3 Max=3 Delta=-1 Color=Black Thickness=1\n";
$output .="XLabel LabelStep=-1 Reference=-1 LabelHeight=1.00 CFormat=\"\" Angle=0.0\n";
$output .="YTitle Title=\"Y\" Height=1.00\n";
$output .="YAxis Show=Yes Scale=Linear Min=-3 Max=3 Delta=-1 Color=Black Thickness=1\n";
$output .="YLabel LabelStep=-1 Reference=-1 LabelHeight=1.00 CFormat=\"\" Angle=0.0\n";
$output .="SendToFile File=\"/tmp/WWW/$ps_file\" Type=Color Size=15.0000 SquareFrame=No
 Orientation=Portrait \n";
}

5 FAQ

• Méthode rapide pour tracer un fichier ASCII cat DATA | Mgraph

• Caractères spéciaux dans les textes:

Dans toutes les chaînes de caractères vous pouvez utiliser des symboles, des exposants, des indices, des accents. Il suffit de les encoder de la manière suivante:

Caractères spéciaux: \n retour à la ligne

         \\   \

Accents, etc.  \‘e è
\’e é
\ê ê
\"e ë

même chose pour a,e,i,o,u,A,E,I,O,U

\’Y Ý
\‘y ỳ
\"y ÿ
Symboles \pounds  £
\S  §
\copyright \begin{matrix}c \\ ◯ \end{matrix}
\pm  ±
\P  ¶
\AA  Å(Angstrom)
\AE  Æ
\cC  Ç
\∼N  Ñ
\times  ×

Symboles \ss  ß
\aa  å(angstrom)
\ae  æ
\cc  ç
\∼n  ñ
\div  ÷
\o  ⊘
${a+b} α + β
$mm  μm

$$      $

exposants et indices _{sub} met en indice la chaîne ’sub’
_nm  met en indice la lettre n
___
^{sup} met en exposant la chaîne ’sup’
^nm  met en exposant la lettre n mais pas le m

         ^^^

exemples: A^{$a^2}  donne A^{α^{2}} X^{y_{1+n}} donne X^{y_{1+n}} A^i_j  donne A_{j}^{i}

• Voulez voulez tracer une colonne en fonction d’un incrément (1 à n points):

Menu Files − > Read files Taper 0 dans l’éditeur X column Taper le numéro de la colonne dans l’éditeur Y column

Exécuter Apply

• Vous voulez tracer un axe dans le sens décroissant: par exemple : tracer l’axe des y en pression (de 1023 à 0)

Menu Settings − > Axis setting utiliser user formula à la place de linear scale dans l’éditeur taper: -y

Exécuter Apply

• Vous voulez changer la présentation d’un axe: par exemple: l’axe des X va de 0 à 1.e+9. Mgraph le visualisera automatiquement de 0 à 1000 avec un titre: ‘X10^{6}’. Vous préférez le représenter par: 0 à 10 et le titre X10^{8}:

Menu Settings − > Plot annotation Choisir ‘Extra axis’ puis ‘Bottom axis’ Mini:0 Maxi 10 Title:X10^{8} Color:black

Exécuter Apply • Vous voulez superposer 2 courbes aux limites différentes:

par exemple: la courbe Y1=f(X) a ses ordonnées comprises entre 0.5 et 1 et la courbe Y2=f(X) a ses ordonnées comprises entre 0 et 100. Les limites ont été automatiquement fixées à 0-100.

Menu Math − > Formula

Taper l’équation: ’y1= (y1-0.5)*200’ Exécuter Apply

La courbe 1 est maintenant tracée entre 0 et 100

Menu Settings − > Plot_annotations

Sélectionner Extra_axis et Right_axis en donnant les limites 0.5 et 1. Exécuter Apply

• Vous voulez ré-échantillonner les données d’une courbe:

Menu Math− > Formula Remplir les éditeurs X domain Taper l’équation: ’y1=y1’ or ’x1=x1’.

Exécuter Apply

• Vous voulez supprimer une légende parmi plusieurs:

par exemple, vous avez tracé une courbe avec des écarts types. La légende sera représentée par 2 traits: la courbe et les écarts-types. Vous désirez ne conserver que la représentation de la courbe:

Menu Settings− > Edit legend

visualisez la légende correspondant aux écarts types activez le bouton Masked

• Vous voulez ajouter du bruit à une courbe:

Menu Math − > Formula écrire dans l’éditeur d’équation: y= y1 + rnd()

Exécuter Apply

• Vous voulez supprimer le dessin des 4 axes:

Menu Settings− > Plot setting

activer no frame Menu Settings− > Axis setting

sélectionner X axis activer No axis sélectionner Y axis activer No axis • Vous voulez tracer y1=f(y2):

Vous avez tracé 2 courbes y1=f(x1) et y2=f(x2). Les abscisses ne sont pas communes aux 2 courbes mais recouvrent le même espace. Vous voulez visualiser la corrélation entre les 2 fonctions, soit: y1=f(y2)

Menu Math − > Formula écrire dans l’éditeur d’équation: x1 = y2

De la même manière, vous pouvez exécuter la différence de 2 fonctions qui ont des abscisses différentes. ATTENTION ! Cette formulation nécessitant une interpolation sur les abscisses, elle peut prendre du temps si l’opération est effectuée sur un grand nombre de points.

• Vous voulez utiliser le système d’alias pour introduire un nom de fichier variable dans un fichier de commande (.com).

Créez un fichier (AliasFile par ex) contenant les alias des noms de fichiers:

ex:  @file1 "data1"

@file2 "data2" etc..

Dans le fichier de commande , après la ligne:

SetAlias Il suffit de rajouter:

Readfile file="AliasesFile" puis d’utiliser @file1, @file2 etc... comme un alias ordinaire

ex: ReadBinSurface File=@file1

• Vous voulez ajouter à un fichier des colonnes provenant d’un autre fichier:

pr -t -m -s’ ’ file1 file2 > file3

ou  paste file1 file2 > file3

• Pour visualiser les accents dans la fenêtre du manuel:

Il suffit d’utiliser une police de caractères de type 8bits: Ajouter dans votre .Xdefaults:

"-Adobe-Courier-Bold-r-Normal-*-12-*-*-*-*-*-iso8859-*"

« iso8859 » est la référence de l’alphabet latin (spécification de l’ISO qui code sur 8 bits tous les caractères des langues latines avec les accents langues latines, seule subsiste une difficulté avec les ligatures comme le «e»dans l’«o»).

A Exemples de fichiers de commandes

Les fichiers de commandes ci-dessous ont été créés directement par Mgraph interactif.

SetSignature "L.O.A. Computer Team "

#############################################################
ReadSurface      File="DATA/cos_surface.data" Mode=IRREGULAR  \
Ncolumns=3 Nlines=2500  LinesToSkip=0 Xcolumn=1 Ycolumn=2 Zcolumn=3  \
UndefValue=-8421 Zmin=-1 Zmax=-1
PlotTitle     Title="Mgraph perspective" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]

#BE CAREFUL!! Xmin, Xmax, Ymin and Ymax allows a surface rescale
#REMOVE Square brackets if you use optional limits
SurfaceGeometry [Xmin=0 Xmax=49 Ymin=0 Ymax=49]    DistanceFactor=1 XYRatio=1 Interpolation=No
3DView  Up/Down=60  Right/Left=45  GroundLevel=0 Stretch=0.93 Shift=0.09  GridSize=40 Color=Black Thickness=2
 Add3DView      Surface  [Top Bottom Grid Surface]
SurfaceLUT          LutNumber=2
XTitle        Title="X" Height=0.00
XAxis Show=Yes     Scale=Linear    Min=0    Max=49  Delta=-1  Color=Black  Thickness=1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
YTitle        Title="Y" Height=0.00
YAxis Show=Yes     Scale=Linear    Min=0    Max=49    Delta=-1  Color=Black  Thickness=1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
ZTitle        Title="Z" Height=0.00
ZAxis Show=Yes     Scale=Linear    Min=-0.999984    Max=0.999989    Delta=-1  Color=Black  Thickness=1
ZLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
DrawCell     XStart=2.0000   YStart=2.0000   Width=7.0000   Height=7.0000\
Type=Color   Orientation=Portrait  Mode=Margin[|ScaleToFrame]
#############################################################
ReadSurface      File="DATA/cos_surface.data" Mode=IRREGULAR  \
Ncolumns=3 Nlines=2500  LinesToSkip=0 Xcolumn=1 Ycolumn=2 Zcolumn=3  \
UndefValue=-8421 Zmin=-1 Zmax=-1
PlotTitle     Title="Mgraph perspective" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
#BE CAREFUL!! Xmin, Xmax, Ymin and Ymax allows a surface rescale
#REMOVE Square brackets if you use optional limits
SurfaceGeometry [Xmin=0 Xmax=49 Ymin=0 Ymax=49]    DistanceFactor=1 XYRatio=1 Interpolation=No
3DView  Up/Down=60  Right/Left=45  GroundLevel=0 Stretch=0.93 Shift=0.09  GridSize=40 Color=Black Thickness=2
 Add3DView      Grid  [Top Bottom Grid Surface]
SurfaceLUT          LutNumber=2
XTitle        Title="X" Height=0.00
XAxis Show=Yes     Scale=Linear    Min=0    Max=49  Delta=-1  Color=Black  Thickness=1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
YTitle        Title="Y" Height=0.00
YAxis Show=Yes     Scale=Linear    Min=0    Max=49    Delta=-1  Color=Black  Thickness=1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
ZTitle        Title="Z" Height=0.00
ZAxis Show=Yes     Scale=Linear    Min=-0.999984    Max=0.999989    Delta=-1  Color=Black  Thickness=1
ZLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
DrawCell     XStart=12.0000   YStart=2.0000   Width=7.0000   Height=7.0000\
Type=Color   Orientation=Portrait  Mode=Margin[|ScaleToFrame]
#############################################################

86 ANNEXE A. EXEMPLES DE FICHIERS DE COMMANDES

ReadSurface      File="DATA/gerard_surface.data" Mode=IRREGULAR  \
Ncolumns=3 Nlines=464  LinesToSkip=0 Xcolumn=1 Ycolumn=2 Zcolumn=3  \
UndefValue=-8421 Zmin=-1 Zmax=-1
PlotTitle     Title="Radiometer field of view" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
#BE CAREFUL!! Xmin, Xmax, Ymin and Ymax allows a surface rescale
#REMOVE Square brackets if you use optional limits
SurfaceGeometry [Xmin=-7 Xmax=8 Ymin=-7 Ymax=7]    DistanceFactor=1 XYRatio=1 Interpolation=No
3DView  Up/Down=30  Right/Left=30  GroundLevel=0 Stretch=1 Shift=0.45  GridSize=40 Color=white Thickness=2
 Add3DView      Grid Surface  [Top Bottom Grid Surface]
SurfaceLUT          LutNumber=2
XTitle        Title="$t$_x" Height=1.00
XAxis Show=Yes     Scale=Linear    Min=-5.16    Max=7.212  Delta=-1  Color=Black  Thickness=1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.00   CFormat=""  Angle=0.0
YTitle        Title="$t$_y" Height=1.00
YAxis Show=Yes     Scale=Linear    Min=-6.402    Max=4.7    Delta=-1  Color=Black  Thickness=1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.00   CFormat=""  Angle=0.0
ZTitle        Title="Normalized signal intensity" Height=0.00
ZAxis Show=Yes     Scale=Linear    Min=-0.09414    Max=0.9998    Delta=-1  Color=Black  Thickness=1
ZLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
DrawCell     XStart=12.0000   YStart=11.0000   Width=7.0000   Height=7.0000\
Type=Color   Orientation=Portrait  Mode=Margin[|ScaleToFrame]
#############################################################
ReadSurface      File="DATA/riedi_surface.data" Mode=IRREGULAR  \
Ncolumns=3 Nlines=165  LinesToSkip=0 Xcolumn=1 Ycolumn=2 Zcolumn=3  \
UndefValue=-8421 Zmin=-1 Zmax=-1
PlotTitle     Title="" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
#BE CAREFUL!! Xmin, Xmax, Ymin and Ymax allows a surface rescale
#REMOVE Square brackets if you use optional limits
SurfaceGeometry [Xmin=203 Xmax=217 Ymin=93 Ymax=103]    DistanceFactor=1 XYRatio=1 Interpolation=No
3DView  Up/Down=15  Right/Left=35  GroundLevel=10.047 Stretch=1 Shift=0  GridSize=32 Color=Black Thickness=2
 Add3DView      Top Bottom Grid  [Top Bottom Grid Surface]
SurfaceLUT          LutNumber=2
XTitle        Title="X" Height=0.00
XAxis Show=Yes     Scale=Linear    Min=203    Max=217  Delta=-1  Color=Black  Thickness=1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
YTitle        Title="Y" Height=0.00
YAxis Show=Yes     Scale=Linear    Min=93    Max=103    Delta=-1  Color=Black  Thickness=1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
ZTitle        Title="Z" Height=0.00
ZAxis Show=Yes     Scale=Linear    Min=9.46476    Max=10.6292    Delta=-1  Color=Black  Thickness=1
ZLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
DrawCell     XStart=12.0000   YStart=20.0000   Width=7.0000   Height=7.0000\
Type=Color   Orientation=Portrait  Mode=Margin[|ScaleToFrame]
#############################################################
ReadSurface      File="DATA/cos_surface.data" Mode=IRREGULAR  \
Ncolumns=3 Nlines=2500  LinesToSkip=0 Xcolumn=1 Ycolumn=2 Zcolumn=3  \
UndefValue=-8421 Zmin=-1 Zmax=-1
PlotTitle     Title="Mgraph perspective" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
#BE CAREFUL!! Xmin, Xmax, Ymin and Ymax allows a surface rescale
#REMOVE Square brackets if you use optional limits
SurfaceGeometry [Xmin=0 Xmax=49 Ymin=0 Ymax=49]    DistanceFactor=1 XYRatio=1 Interpolation=No
3DView  Up/Down=60  Right/Left=45  GroundLevel=0.000918478 Stretch=0.77 Shift=0.09  GridSize=30 Color=White Thickness=2
 Add3DView      Grid Surface  [Top Bottom Grid Surface]
SurfaceLUT          LutNumber=2
XTitle        Title="X" Height=0.00
XAxis Show=Yes     Scale=Linear    Min=28.1786    Max=43.4406  Delta=-1  Color=Black  Thickness=1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
YTitle        Title="Y" Height=0.00
YAxis Show=Yes     Scale=Linear    Min=7.47675    Max=29.71    Delta=-1  Color=Black  Thickness=1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
ZTitle        Title="Z" Height=0.00
ZAxis Show=Yes     Scale=Linear    Min=-0.999984    Max=0.999989    Delta=-1  Color=Black  Thickness=1
ZLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
DrawCell     XStart=2.0000   YStart=11.0000   Width=7.0000   Height=7.0000\
Type=Color   Orientation=Portrait  Mode=Margin[|ScaleToFrame]
#############################################################
ReadSurface      File="DATA/riedi_surface.data" Mode=IRREGULAR  \
Ncolumns=3 Nlines=165  LinesToSkip=0 Xcolumn=1 Ycolumn=2 Zcolumn=3  \

UndefValue=-8421 Zmin=-1 Zmax=-1
PlotTitle     Title="" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
#BE CAREFUL!! Xmin, Xmax, Ymin and Ymax allows a surface rescale
#REMOVE Square brackets if you use optional limits
SurfaceGeometry [Xmin=203 Xmax=217 Ymin=93 Ymax=103]    DistanceFactor=1 XYRatio=1 Interpolation=No
3DView  Up/Down=15  Right/Left=30  GroundLevel=10.047 Stretch=1 Shift=0  GridSize=20 Color=Black Thickness=2
 Add3DView      Top Bottom Surface  [Top Bottom Grid Surface]
SurfaceLUT          LutNumber=2
XTitle        Title="X" Height=0.00
XAxis Show=Yes     Scale=Linear    Min=203    Max=217  Delta=-1  Color=Black  Thickness=1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
YTitle        Title="Y" Height=0.00
YAxis Show=Yes     Scale=Linear    Min=93    Max=103    Delta=-1  Color=Black  Thickness=1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
ZTitle        Title="Z" Height=0.00
ZAxis Show=Yes     Scale=Linear    Min=9.46476    Max=10.6292    Delta=-1  Color=Black  Thickness=1
ZLabel        LabelStep=-1    Reference=-1   LabelHeight=0.00   CFormat=""  Angle=0.0
DrawCell     XStart=2.0000   YStart=20.0000   Width=7.0000   Height=7.0000\
Type=Color   Orientation=Portrait  Mode=Margin[|ScaleToFrame]
SendTo[EPS]File   File="OUT/3D.ps"  Type=Color    [Copies=1]   Orientation=Portrait

ReadSurface      File="DATA/xtract_arm19961205" Mode=IRREGULAR  \
Ncolumns=7 Nlines=900  LinesToSkip=0 Xcolumn=3 Ycolumn=2 Zcolumn=7   UndefValue=-8421  \
 Zmin=0 Zmax=1050
PlotTitle     Title="Rayleigh Pressure - ARM Site" Height=1.400
Grid          Frame=Yes   Xgrid=No       Ygrid=No
ContourDef  Label=No  IdealDistance=1  BackGround=transp ForeGround=Undef CFormat="%.3g" Size=1
SurfaceGeometry  Xmin=1814 Xmax=1843 Ymin=954 Ymax=983 Interpolation=Yes DistanceFactor=1 XYRatio=1
SurfaceLUT          LutNumber=2
AddObject        Surface
ColorScale Mode=Linear XStart=30% YStart=115% XEnd=70% YEnd=120% Min=0 Max=255 \
 Color=Black Position=DownRight NoTick=No CFormat="%.0f" Size=1 \
 List=0 0 500 500 1050 1050
XTitle        Title="column nbr" Height=1.400
XAxis         Scale=Linear    Min=1814    Max=1843  Delta=-1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.600   Format=""
YTitle        Title="line nbr" Height=2.00
YAxis         Scale=Linear    Min=954    Max=983   Delta=-1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.600   Format=""
DrawCell     XStart=1.0000   YStart=0.5000   Width=9.0000   Height=9.0000   Type=Color   Orientation=Portrait  Mode=Margin
Histogram "DATA/xtract_arm19961205" Ncolumns=7 Ycolumn=7 Nlines=900 LinesToSkip=0 Xmin=0 \
Xmax=1050 ClassSize=20 Cumulative=no YPercent=yes Style=Steps UndefValue=0
PlotTitle     Title="Rayleigh Pressure - ARM Site - histogram" Height=1.400
Grid          Frame=Yes   Xgrid=No       Ygrid=No  [Yes | Light | No]
LineStyle     Curve=1   Style=Solid           Color=Red          LineWidth=3
XTitle        Title="Rayleigh pressure (hPa)" Height=2.00
XAxis         Scale=Linear    Min=0    Max=1050  Delta=-1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.600   Format=""
YTitle        Title=" " Height=2.00
YAxis         Scale=Linear    Min=0    Max=40    Delta=-1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.600   Format=""
DrawCell     XStart=1.0000   YStart=10.0000   Width=9.0000   Height=9.0000   Type=Color   Orientation=Portrait  Mode=Margin

ReadSurface      File="DATA/xtract_arm19961205" Mode=IRREGULAR  \
Ncolumns=7 Nlines=900  LinesToSkip=0 Xcolumn=3 Ycolumn=2 Zcolumn=6   UndefValue=-8421 \
DistanceFactor=1 Zmin=0 Zmax=4
PlotTitle     Title="Phase - ARM Site" Height=1.400
Grid          Frame=Yes   Xgrid=No       Ygrid=No  [Yes | Light | No]
ContourDef  Label=No  IdealDistance=1  BackGround=transp ForeGround=Undef CFormat="%.3g" Size=1
SurfaceGeometry Xmin=1814  Xmax=1843 Ymin=954  Ymax=983 Interpolation=Yes DistanceFactor=1 XYRatio=1
SurfaceLUT          LutNumber=2
AddObject        Surface      [Region Surface Dots Triangles]
ColorScale Mode=Boxes  XStart=30% YStart=115% XEnd=70% YEnd=120% Min=0 Max=255 \
Color=Black Position=DownRight NoTick=No CFormat="%.0f" Size=2 \
List=0 "clear/undet." 1  "liquid" 2  "ice" 3 "mixte"
XTitle        Title="column nbr " Height=2.00
XAxis         Scale=Linear    Min=1814    Max=1843  Delta=-1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.60   Format=""
YTitle        Title="line nbr" Height=2.00
YAxis         Scale=Linear    Min=954    Max=983   Delta=-1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.60   Format=""
DrawCell     XStart=11.0000   YStart=0.5000   Width=9.0000   Height=9.0000   Type=Color   Orientation=Portrait  Mode=Margin
Histogram "DATA/xtract_arm19961205" Ncolumns=7 Ycolumn=6 Nlines=900 LinesToSkip=0 Xmin=0 Xmax=4 Class=0.5 Cumulative=no  YPercent=yes Style=Steps UndefValue=0
PlotTitle     Title="Phase - ARM Site - histogram" Height=1.400
Grid          Frame=Yes   Xgrid=No       Ygrid=No  [Yes | Light | No]
LineStyle     Curve=1   Style=Solid           Color=Red          LineWidth=3
XTitle        Title=" Thermodynamic Cloud Phase  " Height=2.00
XAxis         Scale=Linear    Min=0    Max=4  Delta=-1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.600   Format=""
YTitle        Title=" " Height=2.00
YAxis         Scale=Linear    Min=0    Max=95.8949    Delta=-1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.600   Format=""
PlotText     XStart=61.28%  YStart=2.82%   Color=Black Style=Bold  Height=1.00 Angle=0.00  Text="0=clear/undetermined\n1=liquid\n2=ice\n3=mixed"
DrawCell     XStart=11.0000   YStart=10.0000   Width=9.0000   Height=9.0000   Type=Color   Orientation=Portrait  Mode=Margin
ReadFile     File="DATA/ARM_19961205" Mode=XY  Style=LinePlot  \
NColumns=6  XColumn=2  YColumn=4  NLines=0  LinesToSkip=0 UndefValue=3.40282e+38
PlotTitle     Title="MMCR Data - altitude" Height=1.400
Grid          Frame=Yes   Xgrid=No       Ygrid=No  [Yes | Light | No]
LineStyle     Curve=1   Style=Solid           Color=Red          LineWidth=4
XTitle        Title="Time UTC" Height=2.00
XAxis         Scale=Linear    Min=1630    Max=1930  Delta=-1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.60   Format=""
YTitle        Title="Cloud top Altitude" Height=2.00
YAxis         Scale=Linear    Min=0    Max=12000    Delta=-1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.60   Format=""
DrawCell     XStart=1.0000   YStart=21.0000   Width=9.0000   Height=8.0000   Type=Color   Orientation=Portrait  Mode=Margin
ReadFile     File="DATA/ARM_19961205" Mode=XY  Style=LinePlot  \
NColumns=6  XColumn=2  YColumn=6  NLines=0  LinesToSkip=0 UndefValue=3.40282e+38
PlotTitle     Title="MMCR Data - Temperature " Height=1.400

Grid          Frame=Yes   Xgrid=No       Ygrid=No  [Yes | Light | No]
LineStyle     Curve=1   Style=Solid           Color=Red          LineWidth=4
XTitle        Title="Time UTC" Height=2.00
XAxis         Scale=Linear    Min=1630    Max=1930  Delta=-1
XLabel        LabelStep=-1   Reference=-1   LabelHeight=1.60   Format=""
YTitle        Title="Cloud temperature (kelvin)" Height=2.00
YAxis         Scale=Linear    Min=200    Max=300    Delta=-1
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.60   Format=""
DrawCell     XStart=11.0000   YStart=21.0000   Width=9.0000   Height=8.0000   Type=Color   Orientation=Portrait  Mode=Margin
PageBox    XStart=3.7000  YStart=19.0000   Xend=12.6000   YEnd=20.6000 Color=Black Thickness=.05
PageText    XStart=4.0000  YStart=19.5000   Color=Black  Style=Plain  Height=0.4000  Angle=0.00 Text="POLDER data above the ARM site : 19961205 \nRayleigh pressure and thermodynamic cloud phase.\nARM site is located at the image center"
AddLogo    XStart=0.000 YStart=0.000 XScale=-1.000 YScale=0.000
SendToFile     File="OUT/ARM.ps"  Type=Color   Size=15.0000  Copies=1 Orientation=Portrait

#############################################################
ReadFile      File="DATA/WORLD_MAP.gz"
ReadFile      File="DATA/Modis01.data"
PlotTitle     Title=" MODIS Land tiling for geolocated products (L2G and L3)" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=No  [Yes | Light | No]
ScaleToFrame
LineStyle     Curve=1   Style=Solid           Color=Red          Thickness=1
LineStyle     Curve=2   Style=Solid           Color=Blue         Thickness=2
XTitle        Title=" " Height=1.50
XAxis         Scale=Formula Formula="x=x*cosd(y)"    Min=-180    Max=180  Delta=10  Label=No
YTitle        Title="Latitude" Height=1.00
YAxis         Scale=Linear    Min=-90    Max=90    Delta=10
YLabel        LabelStep=1    Reference=90   LabelHeight=0.50   CFormat="%.0f"

#   ********  Annotations ********
PlotText     XStart=0.26%  YStart=39.08%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="00"
PlotText     XStart=3.12%  YStart=33.54%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="01"
PlotText     XStart=5.98%  YStart=29.54%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="02"
PlotText     XStart=8.97%  YStart=26.15%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="03"
PlotText     XStart=11.83%  YStart=23.38%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="04"
PlotText     XStart=14.43%  YStart=20.92%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="05"
PlotText     XStart=17.17%  YStart=18.46%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="06"
PlotText     XStart=20.03%  YStart=16.31%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="07"
PlotText     XStart=22.89%  YStart=14.15%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="08"
PlotText     XStart=25.62%  YStart=12.31%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="09"
PlotText     XStart=28.35%  YStart=10.15%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="10"
PlotText     XStart=31.21%  YStart=8.00%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="11"
PlotText     XStart=33.81%  YStart=6.15%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="12"
PlotText     XStart=36.54%  YStart=4.31%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="13"
PlotText     XStart=39.40%  YStart=2.46%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="14"
PlotText     XStart=42.26%  YStart=0.92%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="15"
PlotText     XStart=44.86%  YStart=-0.62%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="16"
PlotText     XStart=47.85%  YStart=-2.14%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="17"
PlotText     XStart=50.85%  YStart=-2.14%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="18"
PlotText     XStart=53.71%  YStart=-0.54%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="19"
PlotText     XStart=56.44%  YStart=1.34%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="20"
PlotText     XStart=59.17%  YStart=2.95%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="21"
PlotText     XStart=61.77%  YStart=4.83%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="22"
PlotText     XStart=64.50%  YStart=6.43%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="23"
PlotText     XStart=67.49%  YStart=8.58%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="24"
PlotText     XStart=70.09%  YStart=10.19%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="25"
PlotText     XStart=72.95%  YStart=12.06%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="26"
PlotText     XStart=75.94%  YStart=14.48%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="27"
PlotText     XStart=78.54%  YStart=16.62%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="28"
PlotText     XStart=81.40%  YStart=19.03%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="29"
PlotText     XStart=84.27%  YStart=21.18%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="30"
PlotText     XStart=86.87%  YStart=23.59%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="31"
PlotText     XStart=89.73%  YStart=26.54%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="32"
PlotText     XStart=92.59%  YStart=29.76%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="33"
PlotText     XStart=95.19%  YStart=33.51%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="34"
PlotText     XStart=98.31%  YStart=39.14%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="35"
PlotText     XStart=49.67%  YStart=1.54%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="00"
PlotText     XStart=49.54%  YStart=7.08%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="01"
PlotText     XStart=48.11%  YStart=12.62%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="02"
PlotText     XStart=46.42%  YStart=17.85%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="03"
PlotText     XStart=44.99%  YStart=23.69%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="04"
PlotText     XStart=43.69%  YStart=29.23%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="05"
PlotText     XStart=42.52%  YStart=34.46%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="06"
PlotText     XStart=42.00%  YStart=40.31%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="07"
PlotText     XStart=42.26%  YStart=45.85%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="08"
PlotText     XStart=43.17%  YStart=51.38%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="09"
PlotText     XStart=43.95%  YStart=56.92%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="10"
PlotText     XStart=45.38%  YStart=62.46%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="11"
PlotText     XStart=46.68%  YStart=68.00%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="12"
PlotText     XStart=47.85%  YStart=73.54%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="13"
PlotText     XStart=49.02%  YStart=79.08%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="14"
PlotText     XStart=49.54%  YStart=84.62%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="15"
PlotText     XStart=49.67%  YStart=90.15%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="16"
PlotText     XStart=49.67%  YStart=95.08%   Color=Blue Style=Bold  Height=0.40 Angle=0.00  Text="17"
#   ********  Annotations: End ********
DrawCell   XStart=3.00   YStart=4.00   Width=15.00   Height=25.00   Type=Color   Orientation=Landscape
SendToFile     File="OUT/Modis.ps"  Type=Color

#############################################################
ReadFile      File="DATA/WORLD_MAP.gz"
ReadFile      File="DATA/Modis02A.data"
PlotTitle     Title=" MODIS coverage over USA : 7 granules - Equal-angle projection" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
ScaleToFrame
LineStyle     Curve=1   Style=Solid           Color=Red          Thickness=1
LineStyle     Curve=2   Style=Solid           Color=Blue         Thickness=4
XTitle        Title="Longitude" Height=1.00
XAxis         Scale=Linear    Min=-180    Max=-29.999  Delta=10
XLabel        LabelStep=1   Reference=-30   LabelHeight=0.70   CFormat="%.0f"
YTitle        Title="Latitude" Height=1.00
YAxis         Scale=Linear    Min=10    Max=80    Delta=5
YLabel        LabelStep=2    Reference=90   LabelHeight=0.70   CFormat="%.0f"
DrawCell        XStart=3.  YStart=3.  Width=15.  Height=12.  Type=Color
#############################################################
ReadFile      File="DATA/WORLD_MAP.gz"
ReadFile      File="DATA/Modis02B.data"
PlotTitle     Title=" MODIS coverage over USA : Tiles and granules foot prints\n(Sinusoidal projection)" Height=1.00
Grid          Frame=Yes   Xgrid=Yes      Ygrid=Yes  [Yes | Light | No]
ScaleToFrame
LineStyle     Curve=1   Style=Solid           Color=Red          Thickness=1
LineStyle     Curve=2   Style=Solid           Color=Blue         Thickness=2
LineStyle     Curve=3   Style=Solid           Color=Magenta      Thickness=4
XTitle        Title="Longitude" Height=1.00
XAxis         Scale=Formula Formula="x=x*cosd(y)" Min=-180 Max=-29.99 NewMin=-118.4 NewMax=-9.99   Delta=10
XLabel        LabelStep=1   Reference=-30   LabelHeight=0.70   CFormat="%.0f"
YTitle        Title="Latitude" Height=1.00
YAxis         Scale=Linear    Min=10    Max=80    Delta=5
YLabel        LabelStep=2    Reference=90   LabelHeight=0.70   CFormat="%.0f"

#   ********  Annotations ********
PlotText     XStart=100.48%  YStart=4.07%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="01"
PlotText     XStart=98.22%  YStart=19.86%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="02"
PlotText     XStart=94.18%  YStart=33.25%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="03"
PlotText     XStart=90.31%  YStart=48.56%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="04"
PlotText     XStart=87.08%  YStart=62.68%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="05"
PlotText     XStart=84.81%  YStart=77.03%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="06"
PlotText     XStart=83.20%  YStart=90.91%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="07"
PlotText     XStart=5.01%  YStart=91.15%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="07"
PlotText     XStart=4.85%  YStart=76.79%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="06"
PlotText     XStart=4.85%  YStart=62.68%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="05"
PlotText     XStart=4.85%  YStart=48.09%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="04"
PlotText     XStart=10.50%  YStart=33.01%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="07"
PlotText     XStart=20.03%  YStart=27.51%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="08"
PlotText     XStart=29.40%  YStart=22.01%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="09"
PlotText     XStart=38.45%  YStart=16.99%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="10"
PlotText     XStart=47.33%  YStart=12.44%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="11"
PlotText     XStart=56.87%  YStart=7.18%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="12"
PlotText     XStart=65.91%  YStart=2.39%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="13"
PlotText     XStart=75.12%  YStart=-2.39%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="14"
PlotText     XStart=84.98%  YStart=-4.55%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="15"
PlotText     XStart=94.18%  YStart=-4.55%   Color=Blue Style=Bold  Height=0.70 Angle=0.00  Text="16"
#   ********  Annotations: End ********
DrawCell        XStart=3.  YStart=16.  Width=15.  Height=11.7 Type=Color
SendToEPSFile     File="OUT/Modis.eps"  Type=Color

95

AddLogo  XStart=27. YStart=4. XScale=.1 YScale=.1
PageText 15.2 2 Black Bold 1 0 "Etude de l'angle de polarisation"
PageText 18 3.0 Black 0.5 0 "Zone : Madagascar"
PageText 18 3.6 Black 0.5 0 "Jour : 12/11/96"
PageText 18 4.2 Black 0.5 0 "Orbite : 3134"
PageText 18 4.8 Black 0.5 0 "Nombre de pixels : 26"
PageText 18 5.4 Black 0.5 0 "Coef. d'Angstr\"om moyen : 1.159"

PageText 18 6 Black 0.5 0 "$t moyen : 0.371"
# Surface
##############
ReadBinSurface File="DATA/Madagascar_12-11-96.float" DataType=Float  Ncolumns=91 Nlines=141
PlotTitle     "Situation de la sc\`ene observ\'ee" 1.10
Grid          Frame=No    Xgrid=No       Ygrid=No
SurfaceGeometry [Xmin=0 Xmax=90 Ymin=0 Ymax=140]    DistanceFactor=1 XYRatio=1 Interpolation=No
ContourDef  [Smooth=Yes|No]  BackGround=Transp [White] ForeGround=Undef [Undef|White|Black]\
      IdealDistance=1 Size=1 CFormat="%.3g"
SurfaceLUT      File="USER_LUTS/rainbow"
SurfaceStretch          Zmin=0 Zmax=0.5 FirstLevel=0 LastLevel=255
ColorScale Mode=Boxes [|Linear] XStart=0% YStart=101.5% XEnd=100% YEnd=106% Min=0 Max=255 \
Color=Black Position=DownRight NoTick=No CFormat="%.2f" Size=1.5 \
List= 0.1 0.10 0.15 0.15 0.2 0.20 0.25 0.25 0.3 0.30 0.35 0.35 0.4 0.40 0.45 0.45 0.5 0.50
AddObject        Surface      [Region Surface Dots Triangles]
PlotBox    38 45 44 51   Black   0  5.0000
NoXLabel
XTitle        " " 1.00
XLimits        0    90
XLabel         -1    0   -1   1.00   ""
YTitle        " " 1.00
NoYLabel
YLimits        0    140
YLabel         -1    0   -1   1.00   ""
DrawCell 0.2 0.2 7.3 7 Color

#Graphe 1 a
##############
ReadFile "DATA/quv_P1L1TBG1003134BD_1" ScatterPlot 0 2 7 0 0 3.40282e+38
ReadFile "DATA/quv_P1L1TBG1003134BD_1" ScatterPlot 0 2 34 0 0 3.40282e+38
ReadFile "DATA/quv_P1L1TBG1003134BD_1" ScatterPlot 0 2 37 0 0 3.40282e+38
Grid          Frame=Yes   Xgrid=Light       Ygrid=Light  [Yes | Light | No]
PlotTitle     "Valeurs de Q \`a 865 nm\n" 1.10
LineStyle      1   NoLine   Red   1
MarkStyle      1   cross   5
LineStyle      2   NoLine   Forest   1
MarkStyle      2   cross   5
LineStyle      3   NoLine   violet   1
MarkStyle      3   cross   5
XTitle        "Angle azimutal" 1.50
XLabel         -1    -1   -1   1.00   ""
YTitle        "\nLuminance" 1.50
YLabel         -1    -1   -1   1.00   ""
#   ********  Legend drawing ********
PlotMark     2.5% -5.82%   cross   Red  5
PlotText     4% -7.35%   Black Stand  1.50 0.00"Q^{mesures}"
PlotMark     17.5% -5.82%   cross  Forest  5
PlotText     19% -7.35%   Black Stand  1.50 0.00"Q^{mod\`ele}_{sol noir}"
PlotMark     32.5% -5.82%   cross  violet  5
PlotText     34% -7.35%   Black Stand  1.50 0.00"Q^{II}_{a\'erosols}"
#   ********  Legend drawing end ********
DrawCell 0.7 7 7. 6.5 Color

# Graphe 1 b
##############
#ReadFile  FileName [Style]  Columns  XColumn  YColumn  Lines  LinesToSkip MissingValue
ReadFile "DATA/quv_P1L1TBG1003134BD_1" ScatterPlot 0 2 8 0 0 3.40282e+38
ReadFile "DATA/quv_P1L1TBG1003134BD_1" ScatterPlot 0 2 35 0 0 3.40282e+38
ReadFile "DATA/quv_P1L1TBG1003134BD_1" ScatterPlot 0 2 38 0 0 3.40282e+38
Grid          Frame=Yes   Xgrid=Light       Ygrid=Light  [Yes | Light | No]
PlotTitle     "Valeurs de U \`a 865 nm\n" 1.10
LineStyle      1   NoLine   Red   1
MarkStyle      1   cross   5
LineStyle      2   NoLine   Forest   1
MarkStyle      2   cross   5
LineStyle      3   NoLine   violet   1
MarkStyle      3   cross   5
XTitle        "Angle azimutal" 1.50
XLabel         -1    -1   -1   1.00   ""

YTitle        "\nLuminance" 1.50
YLabel         -1    -1   -1   1.00   ""
#   ********  Legend drawing ********
PlotMark     2.5% -5.82%   cross   Red  5
PlotText     4% -7.35%   Black Stand  1.50 0.00"U^{mesures}"
PlotMark     17.5% -5.82%   cross  Forest  5
PlotText     19% -7.35%   Black Stand  1.50 0.00"U^{mod\`ele}_{sol noir}"
PlotMark     32.5% -5.82%   cross  violet  5
PlotText     34% -7.35%   Black Stand  1.50 0.00"U^{II}_{a\'erosols}"
#   ********  Legend drawing end ********
DrawCell 0.7 13.6 7. 6.5 Color

# Graphe 2 a
##############
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 9 0 0 3.40282e+38
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 45 0 0 3.40282e+38
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 37 0 0 3.40282e+38
Grid          Frame=Yes   Xgrid=Light       Ygrid=Light  [Yes | Light | No]
PlotTitle     "Taux de polarisation sign\'ee\n" 1.10
LineStyle      1   NoLine   Red   1
MarkStyle      1   cross   5
LineStyle      2   NoLine   Blue   1
MarkStyle      2   cross   5
LineStyle      3   NoLine   Forest   1
MarkStyle      3   cross   5
XTitle        "Angle azimutal" 1.50
XLabel         -1    -1   -1   1.00   ""
YTitle        "\nPolarisation (%)" 1.50
YLabel         -1    -1   -1   1.00   ""
#   ********  Legend drawing ********
PlotMark     2.5% -5.82%   cross   Red  5
PlotText     4% -7.35%   Black Stand  1.50 0.00"L^{mesures}"
PlotMark     17.5% -5.82%   cross  Forest  5
PlotText     19% -7.35%   Black Stand  1.50 0.00"L^{I}_{a\'erosols}"
PlotMark     32.5% -5.82%   cross  violet  5
PlotText     34% -7.35%   Black Stand  1.50 0.00"L^{II}_{a\'erosols}"
#   ********  Legend drawing end ********
DrawCell 8.0 7 7. 6.5 Color

# Graphe 2 b
##############
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 8 0 0 3.40282e+38
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 47 0 0 3.40282e+38
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 39 0 0 3.40282e+38
Grid          Frame=Yes   Xgrid=No       Ygrid=Light  [Yes | Light | No]
PlotTitle     "Valeurs des angles de polarisation [0,90]\n" 1.10
LineStyle      1   NoLine   Red   1
MarkStyle      1   cross   5
LineStyle      2   NoLine   Blue   1
MarkStyle      2   cross   5
LineStyle      3   NoLine   Forest   1
MarkStyle      3   cross   5
XTitle        "Angle azimutal" 1.50
XLabel         -1    -1   -1   1.00   ""
YAxis         Scale=Formula Formula="(90*(sign(y-90)+1)-sign(y-90)*y)*2" NewMin=0 NewMax=180    Min=0    Max=180    Delta=-1
#   ********  Annotations ********
PlotAxis  Location=LEFT   Scale=Linear  Min=0  Max=90  Delta=15  \
Color=Black  Thickness=1 Title="\nAngle de polarisation"  TitleHeight=1.50\
LabelStep=-1 Reference=0  LabelHeight=1.00 CFormat="%2.f"
PlotAxis  Location=Right   Scale=Linear  Min=0  Max=90  Delta=15  \
Color=Black  Thickness=1 Title=""  TitleHeight=1.50\
LabelStep=-1 Reference=0  LabelHeight=1.00 CFormat="%2.f"
#   ********  Legend drawing ********
PlotMark     2.5% -5.82%   cross   Red  5
PlotText     4% -7.35%   Black Stand  1.50 0.00"L^{mesures}"
PlotMark     17.5% -5.82%   cross  Forest  5
PlotText     19% -7.35%   Black Stand  1.50 0.00"L^{I}_{a\'erosols}"
PlotMark     32.5% -5.82%   cross  violet  5
PlotText     34% -7.35%   Black Stand  1.50 0.00"L^{II}_{a\'erosols}"
#   ********  Legend drawing end ********
DrawCell 14.5 7 7. 6.5 Color

#Graphe 2 c
##############
Histogram "DATA/polar_psy_P1L1TBG1003134BD_1" Ncolumns=0 Ycolumn=8 Nlines=-1 LinesToSkip=0 \
Xmin=0 Xmax=180 ClassSize=5 Cumulative=No YperCent=Yes Style=Steps UndefValue=3.40282e+38
Histogram "DATA/polar_psy_P1L1TBG1003134BD_1" Ncolumns=0 Ycolumn=47 Nlines=-1 LinesToSkip=0\
Xmin=0 Xmax=180 ClassSize=5 Cumulative=No YperCent=Yes Style=Steps UndefValue=3.40282e+38
Histogram "DATA/polar_psy_P1L1TBG1003134BD_1" Ncolumns=0 Ycolumn=39 Nlines=-1 LinesToSkip=0 \
Xmin=0 Xmax=180 ClassSize=5 Cumulative=No YperCent=Yes Style=Steps UndefValue=3.40282e+38
PlotTitle     Title="Histogramme des angles de polarisation\n" Height=1.10
Grid          Frame=Yes   Xgrid=Light       Ygrid=No  [Yes | Light | No]

#ScaleToFrame
LineStyle     Curve=3   Style=Solid           Color=Forest       Thickness=6
LineStyle     Curve=2   Style=Solid           Color=Blue         Thickness=4
LineStyle     Curve=1   Style=Solid           Color=Red          Thickness=2
XTitle        Title="Angle de polarisation" Height=1.50
XAxis         Scale=Linear    Min=0    Max=180  Delta=15
XLabel        LabelStep=1   Reference=-1   LabelHeight=1.00   CFormat="%.0f^o"
YTitle        Title="" Height=0
YAxis         Scale=Linear    Min=-1    Max=-1  Delta=10
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.00   CFormat="%2.f%%"
#   ********  Legend drawing ********
PlotLine     XStart=2.00% YStart=-5.10%  XEnd=5% YEnd=-5.10%  Color=Red  Style=solid  Thickness=6
PlotText     XStart=6% YStart=-7.34%   Color=Black Style=Stand  Height=1.50 Angle=0.00 Text="L^{mesures}"
PlotLine     XStart=18.00% YStart=-5.10%  XEnd=21% YEnd=-5.10%  Color=Blue  Style=solid  Thickness=3
PlotText     XStart=22% YStart=-7.34%   Color=Black Style=Stand  Height=1.50 Angle=0.00 Text="L^{I}_{a\'erosols}"
PlotLine     XStart=34.00% YStart=-5.10%  XEnd=37% YEnd=-5.10%  Color=Violet  Style=solid  Thickness=3
PlotText     XStart=38% YStart=-7.34%   Color=Black Style=Stand  Height=1.50 Angle=0.00 Text="L^{II}_{a\'erosols}"
#   ********  Legend drawing end ********
DrawCell 21.7 7 7.35 6.5 Color

# Graphe 3 a
##############
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 37 0 0 3.40282e+38
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 41 0 0 3.40282e+38
Grid          Frame=Yes   Xgrid=Light       Ygrid=Light  [Yes | Light | No]
PlotTitle     "Taux de polarisation sign\'ee\n" 1.10
LineStyle      1   NoLine   Forest   1
MarkStyle      1   cross   5
LineStyle      2   NoLine   Violet   1
MarkStyle      2   cross   5
XTitle        "Angle azimutal" 1.50
XLabel         -1    -1   -1   1.00   ""
YTitle        "\nPolarisation (%)" 1.50
YLabel         -1    -1   -1   1.00   ""
#   ********  Legend drawing ********
PlotMark     2.5% -5.82%   cross   Red  5
PlotText     4% -7.35%   Black Stand  1.50 0.00"L^{II}_{a\'erosols}"
PlotMark     17.5% -5.82%   cross  Forest  5
PlotText     19% -7.35%   Black Stand  1.50 0.00"L^{mod\`ele}_{sol noir}"
#   ********  Legend drawing end ********
DrawCell 8.0 13.6 7. 6.5 Color

# Graphe 3 b
##############
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 39 0 0 3.40282e+38
ReadFile "DATA/polar_psy_P1L1TBG1003134BD_1" ScatterPlot 0 2 43 0 0 3.40282e+38
Grid          Frame=Yes   Xgrid=No       Ygrid=Light  [Yes | Light | No]
PlotTitle     "Valeurs des angles de polarisation [0,90]\n" 1.10
LineStyle      1   NoLine   Forest   1
MarkStyle      1   cross   5
LineStyle      2   NoLine   Violet   1
MarkStyle      2   cross   5
XTitle        "Angle azimutal" 1.50
XLabel         -1    -1   -1   1.00   ""
YAxis         Scale=Formula Formula="(90*(sign(y-90)+1)-sign(y-90)*y)*2" \
NewMin=0 NewMax=180    Min=0    Max=90    Delta=-1
#   ********  Annotations ********
PlotAxis  Location=LEFT   Scale=Linear  Min=0  Max=90  Delta=15  \
Color=Black  Thickness=1 Title="\nAngle de polarisation"  TitleHeight=1.50\
LabelStep=-1 Reference=-1  LabelHeight=1.00 CFormat="%2.f"
PlotAxis  Location=Right   Scale=Linear  Min=0  Max=90  Delta=15  \
Color=Black  Thickness=1 Title=""  TitleHeight=1.50\
LabelStep=-1 Reference=0  LabelHeight=1.00 CFormat="%2.f"
#   ********  Legend drawing ********
PlotMark     2.5% -5.82%   cross   Red  5
PlotText     4% -7.35%   Black Stand  1.50 0.00"L^{II}_{a\'erosols}"
PlotMark     17.5% -5.82%   cross  Forest  5
PlotText     19% -7.35%   Black Stand  1.50 0.00"L^{mod\`ele}_{sol noir}"
#   ********  Legend drawing ********
DrawCell 14.5 13.6 7.4 6.5 Color

# Graphe 3 c
##############
Histogram "DATA/polar_psy_P1L1TBG1003134BD_1" Ncolumns=0 Ycolumn=39 Nlines=-1 LinesToSkip=0 \
Xmin=0 Xmax=180 ClassSize=5 Cumulative=No YperCent=Yes Style=Steps UndefValue=3.40282e+38
Histogram "DATA/polar_psy_P1L1TBG1003134BD_1" Ncolumns=0 Ycolumn=43 Nlines=-1 LinesToSkip=0 \
Xmin=0 Xmax=180 ClassSize=5 Cumulative=No YperCent=Yes Style=Steps UndefValue=3.40282e+38
PlotTitle     Title="Histogramme des angles de polarisation\n" Height=1.10
Grid          Frame=Yes   Xgrid=Light       Ygrid=No  [Yes | Light | No]
#ScaleToFrame
LineStyle     Curve=1   Style=Solid           Color=Forest          Thickness=6
LineStyle     Curve=2   Style=Solid           Color=Violet         Thickness=4
XTitle        Title="Angle de polarisation" Height=1.50

XAxis         Scale=Linear    Min=0    Max=180  Delta=15
XLabel        LabelStep=1   Reference=-1   LabelHeight=1.00   CFormat="%.0f^o"
YTitle        Title="" Height=0
YAxis         Scale=Linear    Min=-1    Max=-1  Delta=10
YLabel        LabelStep=-1    Reference=-1   LabelHeight=1.00   CFormat="%2.f%%"
#   ********  Legend drawing ********
PlotLine     XStart=2.00% YStart=-5.10%  XEnd=5% YEnd=-5.10%  Color=Forest  Style=solid  Thickness=6
PlotText     XStart=6% YStart=-7.34%   Color=Black Style=Stand  Height=1.50 Angle=0.00 Text="L^{II}_{a\'erosols}"
PlotLine     XStart=18.00% YStart=-5.10%  XEnd=21% YEnd=-5.10%  Color=Violet  Style=solid  Thickness=3
PlotText     XStart=22% YStart=-7.34%   Color=Black Style=Stand  Height=1.50 Angle=0.00 Text="L^{mod\`ele}_{sol noir}"
#   ********  Legend drawing end ********
DrawCell 21.7 13.6 7.35 6.5 Color

# Polar
##############
ReadFile "DATA/tempo_graf_position" RoTeta ScatterPlot 0  3 5 0 0 3.40282e+38
ReadFile "DATA/tempo_graf_position" RoTeta ScatterPlot 0  4 2 0 0 3.40282e+38
PlotTitle     "G\'eom\'etrie de la sc\`ene observ\'ee" 1.25
LineStyle      1   NoLine   Red   1
MarkStyle      1   Bigdot   1
LineStyle      2   NoLine   Blue   1
MarkStyle      2   Cross   1
XLimits        -90    90
XLabel         -1    -1   -1   1.00   ""
YLimits        -90    90
YLabel         -1    -1   -1   1.00   ""
Circular 0 0 90 0 0
Zenithal -8421 15 0 1 1 1 Black
Azimuthal 15 0 1 1 1 0 0 Black
#   ********  Legend drawing ********
PlotMark     -1.65% 8.57%   Bigdot   Red  1
PlotText     -0.15% 7.04%   Black Stand  1.50 0.00 " Soleil"
PlotMark     -1.65% 13.62%   Bigdot   Blue  1
PlotText     -0.15% 12.09%   Black Stand  1.50 0.00 " Satellite"
#   ********  Legend drawing end ********
DrawCell 8 0.2 6.4 7 Color

SendToFile Orientation=Landscape File="OUT/psy_P1L1TBG1003134BD_1.ps"

AddLogo     XStart=1.000 YStart=3.500 XScale=0.100 YScale=0.100
#############################################################
ReadFile      File="DATA/eucrex.data"
PlotTitle     Title="EUCREX MISSION 204 (April 17, 1994)" Height=0.70
Grid          Frame=Yes   Xgrid=No       Ygrid=No  [Yes | Light | No]
ScaleToFrame
LineStyle     Curve=1   Style=Solid           Color=Red          Thickness=3
LineStyle     Curve=2   Style=Solid           Color=Blue         Thickness=6
LineStyle     Curve=3   Style=Solid           Color=Blue         Thickness=6
LineStyle     Curve=4   Style=Solid           Color=Blue         Thickness=6
LineStyle     Curve=5   Style=Solid           Color=Blue         Thickness=6
LineStyle     Curve=6   Style=Solid           Color=Blue         Thickness=6
LineStyle     Curve=7   Style=Solid           Color=Black        Thickness=5
LineStyle     Curve=8   Style=Solid           Color=Black        Thickness=5
LineStyle     Curve=9   Style=Solid           Color=Black        Thickness=5
XTitle        Title="LONGITUDE" Height=1.00
XAxis         Scale=Linear    Min=-6.5    Max=-1.5  Delta=0.25
XLabel        LabelStep=4   Reference=-6.5   LabelHeight=1.00   CFormat="%1.1f^o"
YTitle        Title="LATITUDE" Height=1.00
YAxis         Scale=Linear    Min=47    Max=50    Delta=0.25
YLabel        LabelStep=4    Reference=47   LabelHeight=1.00   CFormat="%2.0f^o"

#   ********  Annotations ********
PlotText     XStart=84.43%  YStart=27.22%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="Jersey"
PlotText     XStart=39.59%  YStart=3.55%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="ENGLISH CHANNEL"
PlotText     XStart=63.79%  YStart=90.73%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="Belle-Ile"
PlotBox      XStart=87.99%  YStart=87.57%  XEnd=89.12% YEnd=88.76%   Color=Black   Style=Solid  Thickness=1
PlotText     XStart=71.86%  YStart=61.14%   Color=Black Style=Plain  Height=1.20 Angle=0.00  Text="BRITTANY"
PlotText     XStart=42.03%  YStart=50.10%   Color=Black Style=Plain  Height=0.80 Angle=0.00  Text="Brest-Guipavas"
PlotText     XStart=48.78%  YStart=62.52%   Color=Black Style=Plain  Height=0.80 Angle=0.00  Text="Quimper"
PlotText     XStart=86.87%  YStart=84.22%   Color=Black Style=Plain  Height=0.80 Angle=0.00  Text="St Nazaire"
PlotText     XStart=9.01%  YStart=85.40%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="ATLANTIC\n OCEAN\n \n"
PlotText     XStart=17.45%  YStart=50.69%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="Ouessant"
PlotBox      XStart=48.59%  YStart=64.89%  XEnd=50.09% YEnd=66.07%   Color=Black   Style=Solid  Thickness=1
PlotBox      XStart=40.15%  YStart=52.86%  XEnd=42.03% YEnd=54.04%   Color=Black   Style=Solid  Thickness=1
PlotText     XStart=29.83%  YStart=53.65%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="M"
PlotText     XStart=2.06%  YStart=35.31%   Color=Black Style=Plain  Height=1.00 Angle=0.00  Text="O"
#   ********  Annotations: End ********
DrawCell   XStart=2.0000   YStart=14.0000   Width=16.0000   Height=14.0000
#############################################################
#   ********  Page annotations ********
PageText    XStart=5.0000  YStart=3.5000   Color=Red  Style=Bold  Height=0.7000  \
Text="EUCREX'94 :\n\nEuropean Cloud Radiation Experiment"
PageText    XStart=6.0000  YStart=7.0000   Color=Black  Style=Plain  Height=0.7000  \
Text="FALCON (above the cloud) :\n\n   - Microphysical measurements\n   - POLDER downward viewing\n   - Fluxes SW and LW"
PageText    XStart=6.0000  YStart=11.5000   Color=Black  Style=Plain  Height=0.7000  \
Text="ARAT (below the cloud):\n\n   - Lidar upward viewing\n   - Radiometer upward\n   - Fluxes SW and LW"
#   ********  Page annotations: End ********
SendToFile     File="OUT/eucrex.ps"  Type=Color

B Exemples de sorties graphiques

Les fichiers de commandes ci-après ont été créés par des utilisateurs de Mgraph .

109 Figure B.1: Cette figure a été réalisée avec Xfig. Les images ont été créées avec Msphinx et les tracés par Mgraph en interaction avec Msphinx.

AUTEURS Gonzalez L. Deroo C. Laboratoire d’Optique Atmosphérique Université des Sciences et Technologies de Lille U.F.R. de Physique Fondamentale 59655 Villeneuve d’Ascq Cedex France Email : sphinx@loa.univ-lille1.fr

Mgraph est disponible sur: http://www-loa.univ-lille1.fr/Mgraph/

Les auteurs tiennent à remercier :

Dr Descloitres J. pour sa contribution à la mise au point du logiciel

et plus particulièrement à ses développements dans la partie traitement des surfaces.

Dr. J.R. Shewchuk pour ses développements sur : "Triangle: Engineering a 2D Quality Mesh Generator

and Delaunay Triangulator," First Workshop

on Applied Computational Geometry, ACM, May 1996. [*]