Mgraph manual

Louis Gonzalez and Christine Deroo

NOM

Mgraph 

SYNOPSIS

Mgraph [options] [command file]

DESCRIPTION


Mgraph is an ``easy to use'' graphic software allowing a fast visualization of scientific data presented in the form of ASCII files for the traditional curves, and in the form of binary files for data surfaces.
The interface was developed under Motif and can be used either interactively [page pageref], or using with command files [page pageref], or included in C or FORTRAN programs[page pageref].
The output files are in PostScript. Images in Tiff or Gif format can also be generated.

Mgraph [options] starts of the interactive interface.
Mgraph [options] file.com starts of the graphic interpreter without visualization.

OPTIONS

-Show
carries out the graphic interpreter and launches the Motif interface by visualizing the last graph generated by the command file
-Inch
uses inches instead of cm as unit in the coordinates and dimensions editors.
-Nomem
suppresses the visualization of the Fractal image in the main window (must be used if the terminal is slow or has little local memory).
-Help
prints this handbook on your terminal.
-Zoom 75
allows to reduce or increase the size of the Motif widgets. In the example a reduction factor of 75% will be applied. Warning! It will be necessary to modify the default font size in the following line of the Mgraph.ad file:
Mgraph*FontList: "-Adobe-Courier-Bold-r-Normal-*-12-*-*-....."

in order to adjust the size of the character font to the size of the widgets.(page pageref)

MAIN FEATURES

Contents

1  INTERACTIVE MODE
    1.1  MENU FILES
        1.1.1  FILES-> READ FILES
        1.1.2  FILES-> SAVE&RESTORE
        1.1.3  FILES-> PRINT PLOT
        1.1.4  FILES-> SURFACE&CONTOUR
        1.1.5  FILES-> EXPORT DATA
        1.1.6  FILES-> SAVE DEFAULTS
        1.1.7  FILES-> MISC
    1.2  MENU SETTINGS
        1.2.1  SETTINGS-> PLOT_SETTING
        1.2.2  SETTINGS-> PLOT_ANNOTATIONS
        1.2.3  SETTINGS-> EDIT_LEGEND
        1.2.4  SETTINGS-> EDIT_COLOR_SCALE
        1.2.5  SETTINGS-> AXIS_SETTING
        1.2.6  SETTINGS-> PAGE_SETTING
        1.2.7  SETTINGS-> ADD POLAR AXIS
        1.2.8  SETTINGS-> COLOR PALETTE
        1.2.9  ANNOTATIONS WINDOW
    1.3  MENU MATH
        1.3.1  MATH-> SMOOTH & FIT
        1.3.2  MATH-> FORMULA
        1.3.3  MATH-> FFT
        1.3.4  MATH-> STATISTICS
        1.3.5  MATH-> BUILD A SURFACE FROM X Y DATA
    1.4  MENU MISC
        1.4.1  MISC-> CLEAR WINDOW
        1.4.2  MISC-> NEW WINDOW
        1.4.3  MISC-> ANIMATION
    1.5  MENU DRAWING_AREA
        1.5.1  DRAWING_AREA-> ZOOM
        1.5.2  DRAWING_AREA-> SHOW VALUES
        1.5.3  DRAWING_AREA-> RESCALE
        1.5.4  DRAWING_AREA-> CLEAR AREA
        1.5.5  DRAWING_AREA-> EXTRACT VALUES
    1.6  MENU HELP
2  COMMAND FILE
    2.1  GENERAL CONTROLS
    2.2  OPTIONS OF THE COMMAND FILE
        2.2.1  READ COMMAND
        2.2.2  PLOT SETTING
        2.2.3  AXES SETTING
        2.2.4  CIRCULAR DIAGRAM
        2.2.5  FITS COMMANDS
        2.2.6  MISC COMMANDS
        2.2.7  ISO CONTOURS
        2.2.8  PLOT ANNOTATION
        2.2.9  PAGE SETTING
        2.2.10  OUTPUT COMMANDS
    2.3  OPTIONS AND SPECIFICATIONS
    2.4  EXAMPLE
3  Mgraph is used in a program
    3.1  call of subroutines
    3.2  Detailed description.
        3.2.1  Start Mgraph session:
        3.2.2  Global specifications:
        3.2.3  Draw axis:
        3.2.4  Send data to Mgraph:
        3.2.5  Send a surface to Mgraph:
        3.2.6  Send the title or an annotation to Mgraph:
        3.2.7  Make a page setting
        3.2.8  The outputs:PostScript, Gif or Tiff
        3.2.9  Animate curves:
        3.2.10  Close the session:
    3.3  C program examples:
    3.4  FORTRAN program examples:
4  CGI
5  FAQ
A  Command files examples
B  Graphic output examples

**********************************************************

Chapter 1
INTERACTIVE MODE


**********************************************************

Remarks

GENERAL CONTROLS

In the panels, use the left mouse button to select the options, to activate the push buttons or to point to a position on the request of the software.
Any character string in an editor can be selected using the same button and then pasted into another editor using the central button.


In the graphic window:

==========================================================

1.1  MENU FILES

==========================================================

1.1.1  FILES->READ FILES

Mgraph_read.gif

Simple read


File selection

The input file is an ASCII file (or binary, or TIFF/GIF in Contour mode) containing numbers in columns separated by spaces, commas or tabulations.
The read function filters the data, automatically skips the lines containing strings, and determines the number of lines and columns to be drawn.

The working directory is shown in the editor at the top of the window. You can directly type a new directory in the editor (and carriage return) or click on the desired directory in the Unix file structure displayed.

Selection
Moves to the editor directory and refreshes the file scrolled list.
..
Moves a directory upwards.
$home
Loads your home directory.
$cwd
Loads the directory from which Mgraph is being run.

To select a file you can type its name in the editor ``file'' or click on its name in the list of the files. The editor ``File name filter'' allows you to sort out files matching a specific string (Unix Notation). The sorted out files appear at the top of the list followed by the remaining files.

ex:
Type: the head of the list will be:
*data all the files ending with ``data''.
data* all the files beginning by ``data''.
*data* all the files having ``data'' in their name.


You have the possibility to select multiple files using the combination of the mouse click and the SHIFT or CTRL key; in this case, the curves are added in the graphic window.

The option ``Keep curve setting'' draws curves with the same type than the previous plot (the color, line style and mark style).
The option ``Keep axis setting'' draws curves with the same limits of axes than the previous plot. In order to preserve these limits for later sessions, it is enough to activate the option ``Files->Save defaults''.


Description of the file

If the ``File description'' editors are not filled, the first column is taken as X coordinate and all subsequent columns as various sets of Y coordinates.
If the file contains only one column, data are drawing on the Y-axis and their line numbers on the X-axis.
If the ``X column'' editor is set to zero, the line numbers will be on the X-axis.

By filling the editors you are able to:

Type of data

Various options and plot modes are proposed.

Selection of the type of curve: Menu ``Line plot''

Line plot The adjacent points are joined by a line without any symbol.
Scatter plot The points are represented by symbols without any connecting line.
Error Bars X The file is read like a sequence of (X,Y,Delta), where Delta is the error on X. A horizontal bar of length 2*Delta centered in X,Y will be drawn.
Error Bars Y Same curve with vertical error bars.
Step plot the file is drawn as steps (i.e. Pseudo histogram). For each point a horizontal line is drawn at the corresponding Y-value, from the median of the X-values of that point and the previous one to the median of the X-values of that point and the next one:

X = [(Xn+Xn-1)/2] to X = [(Xn+Xn+1)/2].


Type of graph

Selection of the window plotting mode: menu ``New set''

New Set New plot.
Add mode Keeps the plot setting and adds the new curves.
Replace mode Keeps the plot setting and replaces the curves by new ones.
Merge mode Keeps the plot setting and adds to the existing curves the new data points.


Data filter

Column data filter

A new menu (Mgraph_column_data_read_filter) appears which allows you to enter the filter command as:
value < column number < value

If many filters point on the same column, an exclusive OR is used, between several columns a AND is performed.
Before starting the main read, click on ``Analyze user filter editor'' to valid the filter.

Selection of the processing

menu ``Draw selected file''

Draw selected file (Cartesian) Plots simple functions y=f(x).
Draw selected file (Polar) Plots simple functions in polar coordinates.
Compute histogram of selected file Plots the histogram of the various columns of the file. (See page pageref)
Statistics of selected file Calculates and displays statistics (Average, standard deviation and so on) on the various columns of the file.
Digitalization Digitalization of curves starting from scanner images or images visualized on the screen by any other software. (See page pageref).
File preview The file is edited in a window ``Mgraph_preview''.
Draw surface contours This menu allows reading of surfaces in various formats (ASCII, TIFF, GIF or binary) and carries out the interpolations making it possible to calculate isovalue lines and projections. (See page pageref)

Several formats of file surface exist:
(Z) Regular grid
ASCII File containing Z values separated by spaces, tabulations or commas. Only the editor ``Number of columns'' has to be specified if the data are not arranged in a line with the same number of columns as the real image.
(X Y Z) Regular or Irregular
ASCII File containing the X Y and Z of the surface.
Binary 8 bit
File in bytes: the number of lines and columns must be specified.
Binary 16 bit
File in integer 16 bit words.
Binary 32 bit
File in integer 32 bit words.
Binary 32 bit float
File in float 32 bit words.
Tiff, Gif
File in normalized format.

Signed This option is used only for the integer words.

Cut values allows you to filter values.

Stretch Z values allows you to change Z values.

Build a surface from XY Data From an ASCII file containing X,Y data, Mgraph computes a surface from boxes of variable size containing percentage of points.
Import a new lut Loads the user color base with a new look-up table. These LUTs are used only by the contour routines. Two formats are decoded:

  • The LUT is defined by the value of the pixel (0 to 255) followed by the color components red, green, blue (Intensity from 0 to 255)
  • The LUT is defined by levels of values in (Z) surface units: level 1, levels 2, followed by the R, G, B values

Draw arrows From an ASCII file, vectors are definite from their origins (X and Y), their length (Rho), their orientation (Theta) with possibility of changing the arrow size (Length and Arrow factor).


If you have selected a file, activate ``Apply'' to display the result.

Specific read


According to the selected options, the following windows could be displayed:

Compute histogram of selected file


launches Mgraph_compute_histogram

Mgraph_compute_histogramme.gif

You are able to define the type of curve, the limits of the histogram, the width of the classes, the units in Y. Warning: if you modify the editors don't forget the option ``Freeze editor values'' before doing ``Apply'' to avoid the automatic calculation.

Digitalization


launches Mgraph_digitalizer

Mgraph_digitizer.gif

If the selected file is a TIFF or GIF file, the function ``Apply'' will read and display the image in the digitalization window. If not, you have the possibility, by using the function ``Grab image from display'', to pick and slide an image on your screen by using the mouse (image presented by other software such as ghostscript, for example). The window under the image displays messages and directives.
N.B. The image is shown in black and white. You can choose the color visualization with the ``Switch image (BW/Color)'' button

The digitalization is done in several steps:

Image setting:
This step is optional. The buttons under the image window enable you to zoom , swap the image or clear bad input pixels. This is useful for images coming from a scanner.

Definition of the axes:
This step is essential. It determines the positions of the axes. It is necessary to activate each of the 3 buttons in order to locate the origin of the axes and their ends by carrying out the instructions displayed in the dialog window. Then, if an axis is in logarithm mode, you should activate the corresponding option button. You have the possibility of converting the digitalized data to real coordinates by filling the corresponding editors with your units. By default, the axes will go from 1 to 100.

Starting digitalization:
Activate ``Start digitalization'', the dialog window shows the action to perform: Using the mouse button, enter points at each click, the dialog window displays the point number, its X and Y positions and its orthogonality factor. To stop the points selection, activate ``Stop digitalization''. At each moment, you are able to use the ``Zoom'' button to magnify a part of the display window or the ``Clear pixel area'' button to destroy bad entries. You are able to make entries at any order, the final plot will be classified by X increasing.
When ``Stop digitalization'' is activated, the graphic window is filled with the curve. You are able to add a new digitalized curve to the plot, starting again with ``Start digitalization''.

Validation:
In the window ``Mgraph_digitalizer'' new menus appear. You can choose:
  • Smooth curve The editor ``Window size'' allows you to fix the number of points used as the smoothing window.
  • Resample curve The editors ``X start... X step'' allow you to replace the coordinates at a given frequency.

Warning! The smooth and sampling affect only the last digitalized curve.


File preview


launches ``Mgraph_preview''

Mgraph_preview.gif

Visualizes the contents of the file in a window and then allows you to select with the mouse one set of lines to be plotted with the selected options.

Draw surface contour


launches ``Mgraph_surface_view'' and ``Mgraph_surface_geometry''

Show the surface and then allows you to select many parameters. (See lower ``FILES->SURFACE & CONTOUR'' §1.1.4).

Build a surface from XY Data


launches, at first, ``Mgraph_compute_surface'' which allows you to fix the size of boxes and the percentage of points then launches ``Mgraph_surface_view'' , ``Mgraph_surface_geometry'' (See lower ``FILES->SURFACE & CONTOUR'' §1.1.4).

Mgraph_compute_surface.gif

1.1.2  FILES->SAVE&RESTORE

Mgraph_save_rest.gif


The user has the option of managing various directories (``Main project name'') containing the graphic files and the page setting files built during a session.
The list of the directories appears in the upper right corner of the window. Selecting a directory name in this window becoming Mgraph working directory (Main project). Its contents are displayed in the window ``Main project plot files''. (If a graph is used in a page setting, it appears with a link [lks: 1]. See also the menu ``Settings->Page setting'' §1.2.6).
To create a new project, it is necessary to type its name in the editor and to activate ``create new project''.


Options:

  • If a plot is present in the main window, activate ``Save current plot in base'' to save it; the plot title becomes the name in the project directory.
    If the curve has no title, it will be registred under ``Untitled''.
    If the title begins with the character @, the title will be registred but never shown on window or printed.
    N.B. During the creation of a page setting, the associated curves are automatically saved in the base by Mgraph.

  • If a graphic file is selected (Click on its name in the window ``Main project plot files''), an icon representing the plot is drawn.

Delete all saved plots
Destroys all the graphic files of the base.
Draw
Loads the main graphic window with the saved plot taking into account the option selected in menu New set.

Delete
Destroys the graphic file.

Replace selected file with current plot
Allows the replacement of the file by the graph contained in the main window. Links with page settings are preserved.

1.1.3  FILES->PRINT PLOT

Mgraph_print.gif

With this menu, you can send your work to a printer or save it as PostScript (or Encapsulated PS) file, using the main graphic window or using a page setting containing several plots.

Options:

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

Landscape
Landscape or Portrait orientation.

Use page setting
Prints the current page created by the menu Page setting (§1.2.6).

Number of copies
fixes the number of copies.
Plot size
fixes the window size (the bigger side of the X window).
Square frame
the X and Y sizes will be the same.
Print type
Printer selection menu (Color, Grey Levels).

Round Line join
Drawing option of the intersection lines: sharp or round.

No logo
Prints (or not) a logo picture in the upper left corner of your page. This option is not used with the ``Use page setting'' selection where the exact logo position can be defined. If you want to use your own logo, create an Encapsulated PostScript file and specify its location on disk in the ~ /.Mgraph/MgraphDefaults file by adding a line:

LOGO_FILE /usr/my_directory/mylogo.eps

Note: You can introduce your own signature in the lower right corner of the page by modifying the line of the .Mgraph/MgraphDefaults file:

type:for:
SIGNATURE"L.O.A. Computer Team"Date + signature
SIGNATURE"  " (Spaces) Date
SIGNATURE"" (Empty) nothing

Send to printer
Uses the command defined in the editor ``Spooler shell'' to print the plot. The editor ``Spooler shell'' contains your PostScript printer favorite shell; it can be for example
lp -dPRINTER

When you have defined your printers, activate the option ``Save defaults'' to back them up.

Save as PostScript file
Creates a file containing the graph in PostScript format.

Save as Encapsulated PS file
This option creates a file in PostScript format and allows the insertion of the result into another document (Word or TeX).
Save settings as command file
Creates a command file close to the graphic presentation as possible (see lower §1.6). Mgraph.com is the default name.

1.1.4  FILES->SURFACE&CONTOUR

Menu ``Contours''

This menu allows surface interpolations to compute isovalue lines and projections. It can be activated only if the user has already stored a surface using the menus ``Files->Read files->Draw surface contours'' or ``Files->Save & restore->Draw''.

The menus ``Mgraph_surface_view'' and ``Mgraph_surface_geometry'' appear.

Mgraph_surface_view.gif

Mgraph_surface_view

This window does the surface visualization. On the right side an histogram of the values is drawn. Various options are available:

Drawing_area->ZoomEnlarge a part of the image.
Drawing_area->Show valuesShow the Z values of the surface.
Drawing_area->RescaleShow the original image.
Color_palette->Internal color look up tables.
Color_palette->User Lut Base User's data files containing color scales (See the menu ``Read files->Import a new lut'').
Color_palette->Grey scale etc... Basic color scales of Mgraph (description §1.2.8)
Objects->Clear all Clear all options.
Objects->Draw trianglesShow the triangles used in the interpolations.
Objects->Draw regionShow the computed areas separating the real points from the undefined points introduced by the options ``Undefined value'' or ``X Y Z irregular grid'' of the reading menu.
Objects->Draw points Show the measurement points.
Objects->Draw all Show all the options.


Mgraph_surface_geometry.gif

Mgraph_surface_geometry

allows the user to modify:

  • the number of points of the interpolation: ``Lines Columns'' editors.
  • the ratio width/height of the image: ``X/Y Ratio'' editor.
  • the relative distance (implicit 1) from which 2 triangles are disjoined.
  • the real scales of X and Y: ``X Min... Y Max'' editors.

  • The interpolation mode: If your image shows class of values with a non-linear scale, you must use option ``Nearest pixel interpolation''.

  • Add objects (Surface, Region, Dots, Triangles)
    This menu allows the addition to the graphic window of the surface, the domain contour in case of a nonregular surface, the triangles used in the interpolations and the points of measurements.

If you activate the option ``Apply'' the image is loaded in the main graphic window.
If you activate ``Show contour panel'' the window ``Mgraph_contour'' appears (see below).
If you activate the option ``Show perspective panel'', the menu Mgraph_3D_view appears which enables you to draw, in the graphic window, a 3D view (see §1.1.4).

Mgraph_contour.gif

Mgraph_contour
(called by the previous menu: Mgraph_surface_geometry)

This menu allows the user to draw the isovalue lines. The software predetermines some values of contours to be plotted. Click on ``Apply'' to run calculation and to plot the curves whose presentation can be modified in the menu ``Settings->Plot settings''.

Choice of the isovalue lines:

To enter its own list of values it is necessary to:

  • select with the mouse all the lines in the editor ``Isoline values'' then to type ``Backspace'' or ``space bar'' on the keyboard.
  • In the empty editor, type a list of values separated by spaces or use the editors of the menu ``Add isolines'' which generates a loop from... to ... with a real step (editor ``Z step'') or a number of intervals (editor ``inter. Nb'').

Curve presentation

The styles of the curves are determined by the various menus of ``Isoline plot style''. If the option ``Current color'' is chosen, colors are predetermined by the software.

Modification of the plot options of one or several isovalue lines:

Select the value with the mouse, then select in the different items the drawing options (color, type of line, symbol, labels ).
Activate ``Apply new style'' the parameters are modified in the editor. The new presentation will appear on the graph by activating the main ``Apply'' located at the bottom of the menu.
If the isovalue lines are drawn with the option ``Label'' you can change, by using the menus of the ``Label plot style'', the presentations (foreground or background color, distance between 2 labels).

The modifications appear by activating the main ``Apply'' of the menu.

Menu Surface set stretch

Image data values
The editors ``Image data values'' select a range of values (cut into 256 classes) of the image to be expanded; the values out of bounds will be assigned to the extreme colors of the LUT.

LUT values
The editors ``LUT values'' select the range of the color table (from 0 to 255) which will be used to colorize the range of the selected image data values.

Color scale stretch
If the color scale is drawn, you can select the boundaries of the LUT to be plotted (from 0 to 255),
in case you want to mask a part of the LUT.

Menu Surface perspective

Mgraph_3D_view.gif

This menu allows you to draw a 3D view of the computed surface displayed on the main window.

The window Mgraph_3D_view can project the surface into the graphic window with the ``Apply to main window'' button.

Show 3D
visualizes the surface into the window Mgraph_3D_view with given parameters.
This function is linked with main window 2D surface. You are able to zoom a part of the main surface and then to apply the show 3D function on the surface result.
Up/Down
Right/Left
fixes the projection angles.
Ground level
fixes the level of the origin (between Zmin to Zmax at left of the editor)
Add:
adds in the main window the following objects:
  • the 3D view
  • the 2D view project on the bottom or on the top
  • grids with variable size and thickness
  • 2D curves drawn on the bottom or on the top surface

for this addings, click on ``Apply to main window''.

You may modify the 3D level and its position in the window with two scrollbars (right and left). Click on ``Show 3D'' to show the result.

Menu Surface perspective clear

This menu allows you to come back to the 2D surface. You must clear the 3D view to read a new image.

1.1.5  FILES->EXPORT DATA

Create a .com file

Creates a command file as near as possible to the required graphical presentation for a simple curve or a page setting. It will allow the use of Mgraph in the non-interactive mode (see §1.6).

Create a EPS file

Creates an Encapsulated PostScript file for inclusion in Word or TeX documents.

Data to file

Creates an ASCII file containing the coordinates of the different visualized curves. You can directly read again this file with Mgraph (menu Files->ReadFiles) to redraw the plots.

The word ``Break'' breaks the continuity of a curve (Countour plotting for example).
The word ``NewCurve'' adds a new curve.

A line ``CURVE NUMBER:... separates the different curves, it is automatically skipped by the software with the second reading.

Options:


    * Select, with the mouse, the extract zone in the graphic window.
    * Select the type of data to extract: either the curves themselves, either the surface data.
    * Data preview: the data of curves are shown for validation.

``Create new file'' performs the extraction.

Plot to tiff / Plot to gif

Creates a file in TIFF or GIF format representing the graphic window. This image can be read by various types of visualization software or image format converters. drawing.tif is the default name.

1.1.6  FILES->SAVE DEFAULTS

A file `` ~ /.Mgraph/MgraphDefaults'' contains your options:

  • Position and type of 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 and limits of the axes
  • type of impression
  • type of the curves

It enables you to back up your configuration for the following sessions.

1.1.7  FILES->MISC

  • Project Data Base Recovery
    rebuilds the save base in case of loss.

  • Users stats
    statistics of differents menus of Mgraph .

==========================================================

1.2  MENU SETTINGS

==========================================================

1.2.1  SETTINGS->PLOT_SETTING

Mgraph_plot_setting.gif

This menu allows you to modify the style of each visualized curve and to modify the plot setting.

Plot mode

These options allow you, with immediate effect on visualization, to include (or remove) grids, labels, legend, 2 axes or 4 and the surface(``No Background'').

Plot title

Modifies the title; to activate this menu, you can also click on title zone.

Curve style

By activating the option ``Overlap'', the curves are presented together, which allows the modification of a parameter for all curves in one action.
parameter types:

  • curve color
  • line style
  • symbol style

If the option ``Overlap'' is unselected, the curves will be shown one by one. In this mode you can mask or remove a curve.

1.2.2  SETTINGS->PLOT_ANNOTATIONS

Mgraph_plot_annot.gif

This menu allows you to annotate the graphic window.
The graphic window can be empty of surface or plot drawing. See its utility in §1.2.9.
Various additions are possible:
text, symbol, line, box, arrow and extra axis plots.

For each annotation, you can choose:

  • either attach it to the graphic in real coordinates
  • either attach it to the graphic itself

For each one, you have to select the color and the type.

In the case of multiple annotations, you have the possibility to freeze the X or Y value. Activate Add and use the mouse to select position in the graphic window .
Replace allows you to reposition the annotation;
Redraw allows you to redraw the annotation in the same place;
Delete removes the annotation;
(See also in F.A.Q §3.4 the characters codification).


The annotation ``Extra axis'' allows you to draw an additional axis, or to replace one of the existing axes by a new one completely independent of the limits of the curve. In the axis editors the value of the ``mini'' can be higher than the ``maxi''; for an axis plotted using the mouse, the ``mini'' will be at the first selected point (see F.A.Q [3.4]).
Click on the button Free labels, allows you to label axis with a list:
the axis value following by a text between quotes or an independant value written with the given format.

Simply click on the annotations to make this menu appear.

1.2.3  SETTINGS->EDIT_LEGEND

Mgraph_plot_legend.gif

When this menu is called, the legend is visualized in the upper left corner of the graphics window. Each curve is represented (except the masked curves - see ``Plot Setting'' [1.2.1]). You can annotate, rotate the text, or mask each legend. The button ``move legend'' allows you to move and resize the legend.

1.2.4  SETTINGS->EDIT_COLOR_SCALE

This menu allows you to add a color scale into the graphic window.
The graphic window can be empty. See its utility in §1.2.9.

Two styles of color scale are proposed:

Draw a linear color scale

This option allows you to quickly draw a linear color scale.

  • Add labels to the linear color scale
    This menu allows you to fix a label, for any pixel value. This label may be a text around with quotes (") or a value written with the given format. You can also choose to draw or not ticks. The option ``Redraw'' redraws the scale with chosen options. The option ``Apply'' moves and draws the scale.

  • Clear the linear color scale
    This option clears the linear color scale.

Build the color scale with boxes

Mgraph_color_scale_edit.gif

This menu allows you to mark colored boxes with a label. Like for the linear color scale, you can choose between formatted value and text. The option ``Redraw'' redraw the scale with chosen options. The option ``Apply'' moves and draws the scale.

  • Clear the color scale with boxes
    This option clears the color scale with boxes.

Clear all colorscale

This option clears all color scales.

1.2.5  SETTINGS->AXIS_SETTING

Mgraph_axis.gif

This menu can also be called by clicking with the mouse on the center of the axis annotations, or in the lower left corner of the graphic window. For each axis, the editors allow you to set:

  • Title:
    the title and its height (multiplicative factor)
  • Mini Maxi:
    The minimum and the maximum; The minimum must be smaller than the maximum; if you want to plot a decreasing axis (ex: in the case of the atmospheric pressure) it will be necessary to use a formula transformation (see F.A.Q §3.4).
  • Label:
    The height and orientation of the labels.
    The format of the labels (multiplicative factor).
    The C language formulation is used: %[.precision]conversion
    precision:number of decimals for the formats f, e and E
    number of digits for the formats g and G (6 per default)
    conversion: g universal notation (i.e. d, f, or e)
    G universal notation (i.e. D, F, or E)
    f decimal notation (i.e. ' [-]dddd.ddd')
    e exponential notation (i.e. ' [-]d.ddde+dd')
    E exponential notation (i.e. ' [-]d.dddE+dd')

    example:
    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:
    it is the step (integer value) used to print tickmark labels.
  • Tick X step:
    Interval in axis unit for grid drawing.
  • Ref. Value:
    This value will be printed on the axis and used as reference for the other tickmark labels.

  • Scale to frame:
    The plot area will be 10% smaller than the axis area or will match the axis area.

  • Free labels allow you to label axis with a list:
    the axis value following by a text between quotes or an independant value written with the given format.

It's possible to undraw the labels (``No X-label'' item), to choose tics or grids (standard or half-tone) on the axes (``Std grid'').
You may cut out an axe (``No axis'').

Several types of axis are proposed: linear, logarithmic , calibrated in time or decimal degrees but also transformed by a user equation.
In this case, the original data are not transformed; only its graphic presentation is modified. Type a formula in the formula editor. This formula will be backed up and a list of equations will be created (listed in the panel Mgraph_formula_list). You may adjust the function domain of the projection to avoid, for example, dividing by zero. For more details, see §1.3.2 menu Math->Formula.

For each axis, you may define the tickness and color.

1.2.6  SETTINGS->PAGE_SETTING

Mgraph_page_setting.gif Mgraph_page_view.gif

This menu enables you to create interactively a page presentation with graphics.
The presentations are saved in the same user database (see ``Files->Save&Restore'' §1.1.2).

  • page style
    Select, or not, the orientation of the page (Landscape page) and the paper format (A4, A3 etc.).

  • creation of the cells
    It is necessary to define cells on the virtual page ``Mgraph_page_view''. The coordinates of the cells are given in centimeters or inches, the origin being the corner top left of the page:
    either you fill the editors with the positions, or, by activating ``Fill with mouse'', you draw a box using the mouse (you will be allowed to adjust the values in the editors). Then, by activating ``Create new cell'', the cell will be drawn on the virtual page. You can create up to 36 cells on a page.

  • attachment of the graphs
    It is necessary to fill the cell, either with the graph present in the main graphic window, either with a graph saved in the database; in this latter case, just click on the graph name in the displayed list.
    You are able to select a graphic in another project by selecting it in the ``Other selectable project files'' list, but the backup of the page will be done in the current project ``Main project name''. If you want to change your ``Main project name'' activate the button ``Select a new main project'' at the upper left of the window.
    After your final choice, activate ``Fill cell(selected plot)''.
    You can rotate a graphic inside the cell ``Landscape''. By default the cell box fits the graphic , if you select ``fit frame'',the cell box will fit the space delimited by the axes. The effect of these 2 options is visualized immediately on the virtual page.

  • page presentation page
    You can add your logo on the page.
    You can annotate the page with text, lines or boxes. Activate the option ``page annotation''.

Menu Page annotation

Mgraph_page_annot.gif

Each annotation may be positioned using the mouse ``Fill editors with mouse'' or directly by filling the editors.
The options ``Add'', ``Replace'' and ``Delete'' visualize the annotations on the page.

To print this page, activate menu ``Files->Print plot'' with the function ``Use page setting'' activated.

This page can also be exported in a command file for an automatic production.

1.2.7  SETTINGS->ADD POLAR AXIS

Mgraph_circular.gif

This menu allows you to replace axis drawing by a diagram composed of circles and radius. The options define:

Delta Theta circle step in degree.
Delta radiuscircle step in main radius unit.
Theta list free list in degrees.
Radius listfree list in main radius unit.
Delta phiradius step in degree.
Phi list free list in degree.
Upper viewupper view of the sphere.
Left side rightradius origin is at left or right.
Clock wize radius drawing in clock wise.
Axis formula uses of projection fixed in axis definition.


and various parameters of labels drawing on circles and radius (color, size and position).
The graphic window can be empty of curves or surface. See its utility in §1.2.9.
In this case, click on ``Default'' or ``Draw Diagram'' button and the editors (X,Y, Radius) will be filled with the value 0.5.

1.2.8  SETTINGS->COLOR PALETTE

User LUT base:

From the user's LUT base, this menu loads a new LUT.
Click on the filename, its contents will be shown at the right side.
The lines in the file beginning with the character # will not be read.
Two formats are decoded:

  • The LUT is defined by the value of the pixel (0 to 255) followed by the color components red, green, blue (Intensity from 0 to 255)
  • The LUT is defined by levels of values in (Z) surface units: level 1, levels 2, followed by the R, G, B values

Mgraph LUT:

scale.gif

1.2.9  ANNOTATIONS WINDOW

Mgraph gives the possibility to create a window WITHOUT CURVE NOR SURFACE, with annotations, color scale or circular diagram.
This window is used in a ``Page setting'' (§1.2.6), for example, to show a common color scale to many images in differents cells.
This window can be saved as standard windows. It will be registred as ``@Annotation window''.
Its scaling is defined by the software as 0. to 1. for X and Y.

==========================================================

1.3  MENU MATH

==========================================================

1.3.1  MATH->SMOOTH & FIT

Mgraph_smooth.gif Mgraph_mam.gif

The following options are common to all mathematic sub-menus:
The regression is done as y = f(x) by default but you can choose x = f(y).
You can also select to fit all the curves as an independent sets of data (the default) or as one set of data.
You can choose the domain of fit: the default is the data visible in the graphic window.
You can select the sampling of your resulting curves. (ex: the fit domain can be a little extended to do an extrapolation of the data).
The resulting curves can be added to the original curves or replace them.

  • Polynomial regression
    For a polynomial regression, you can select the order of the polynomial and the number of output points or interval value in X of the resulting curve. After the ``Apply'', the results are displayed in the menu window, you are able to grab them using the mouse in order to insert them in the graphic using the menu ``Settings->Plot annotation''.

  • Smooth
    To average the curve, you can choose the number of points used for the slide mean.

  • Bezier Smooth

  • Spline
    You can select the number of output points or the output X interval.

  • More advanced fit method
    A new menu is displayed: ``Mgraph_mam''
    You are able to fit your curves with a parameterized equation Y = f(X, p1¼pn). The syntax is identical to the menu ``Math->Formula'' (see below). You can use the mathematical operators and standard functions. The nomination of the parameters is arbitrary.
    The algorithm used is a search for iterative convergence (Levenberg Marquardt). The iteration stops when the relative error on each parameter and/or the relative error between the approximation and the points of data is smaller than the allowed error that you specified in the corresponding editor.
    You can kill the process using the button ``Terminate fit loop''.
    In case of nonconvergence, you can specify the initial conditions of each parameter (by default equal to 1), for example a = -1, b = 2.
    You can also indicate the number of output points.

1.3.2  MATH->FORMULA

Mgraph_formula.gif

This menu allows to process operations on the curves.
The operands are: ``xN'' and ``yN'' (where N is the curve number), 'pi' and 'x' to use the X domain editors.
The operators are: ' = ' , '+' , '-' , '*' , '/', '%', '**', '(', ')', '&' (and), '|' (or), '^' (xor).
The functions are the standard mathematical functions (see §2.3). 'rnd()' generates a random number between 0 and 1.

You can compute new curves by filling the editors ``X domain'':
example: y = sin(x) with Xstart = 0, Xend = 3.14 and Number of points = 100 then ``Apply'' will create the plot.

You are able , in the same way, to resample an existing curve : Type in the equation editor: x1 = x1 and fill the ``X domain'' editor with the sampling X values.

All the equations are saved and listed in the widget ``Mgraph Formula list'. You have to use this list to cut and paste lines for the ``Formula editor''.

1.3.3  MATH->FFT

Mgraph_fft.gif

The Fast Fourier Transform allows you to filter a curve, finding the most significant frequency components. Each component is displayed with the coefficient of correlation calculated between the data and the inverse FFT with this frequency suppressed.
This menu also enables you to remove, multiple frequencies (``Reduce spectrum'') or frequency by frequency (``Delete a component'').

1.3.4  MATH->STATISTICS

Mgraph_stats.gif

This menu computes average, standard deviation and so on, on the visible curves of the graphic main window.

1.3.5  MATH->BUILD A SURFACE FROM X Y DATA

From an ASCII file containing X,Y data, Mgraph computes a surface from boxes of variable size containing percentage of points.

==========================================================

1.4  MENU MISC

==========================================================

1.4.1  MISC->CLEAR WINDOW

This menu allows you to initialize the main graphic window. All the curves and the plot setting will be cleared.

1.4.2  MISC->NEW WINDOW

This menu allows you to create a new independent graphic window. You can open up to 10 windows simultaneously. The small red square in the upper left corner of the window indicates which one is active. Warning! Mgraph ``Quit'' function closes all the opened windows and stops the run.

1.4.3  MISC->ANIMATION

Mgraph_anim.gif

This menu allows to animate the curves plotted in the main graphic window to visualize, for example, time effects.

==========================================================

1.5  MENU DRAWING_AREA

==========================================================

1.5.1  DRAWING_AREA->ZOOM

Allows the user to delimit a set of points within a range of values by clicking with the right mouse button.
This function is also called by clicking on the small red square in the upper left corner of the graphic window.
(The green square is used to rescale the graphic window after a ``zoom'')

1.5.2  DRAWING_AREA->SHOW VALUES

Shows the coordinates of the points selected by the right mouse button. To quit the function click on the left mouse button.

1.5.3  DRAWING_AREA->RESCALE

This option rescales the plotting area to include all the plotted data points after a ``zoom'' or after an equation transformation.
This function is also called by clicking on the small green square in the upper left corner of the graphic window.

1.5.4  DRAWING_AREA->CLEAR AREA

Allows you to erase plotted data points. Caution! The selection box must be sufficiently large. If you wish to remove only one point, it will perhaps be necessary to increase the zone (zoom) before selecting ``Clear area''.

1.5.5  DRAWING_AREA->EXTRACT VALUES

Allows you to store in a file the points selected by the mouse button. The file name default is ``values.data''. This file name is incremented with each activation of the function:
values01.data, values02.data , and so on...
The file is in ASCII format: 2 columns (X-coordinate, Y-coordinate).
``Apply'' activates a window displaying the coordinates. The selected point is recorded when the left mouse button is pressed.
To quit the function, click on the right mouse button.

==========================================================

1.6  MENU HELP

==========================================================

French or English Help on line

**********************************************************

Chapter 2
COMMAND FILE

MGRAPH.COM

**********************************************************

2.1  GENERAL CONTROLS

In this mode, graphics are generated in an automatic way without visualization.
N.B. Mgraph interactive mode creates the file from the simple graphic window or from the complex page setting. So, you have just to change a few parameters if necessary.

The command can be:
Mgraph fich1.com
or
Mgraph fich1.com fich2.com and so on..

An option Mgraph -show fich1.com can be used; in this case, after the last plot, the Motif version of the software will start and the last curve will appear in the main graphic window.

A command file can be parameterized in a very simple way using a system of aliases (Free Word preceded by the character @). This allows to replace whole or part of a command by a line introduced into the data file.

Ex: in the command file aa.com we have:

		Verbose
		SetAlias
		ReadFile      File="./data" 
		PlotTitle     Title="@TITLE"  Height=1.20
		@STYLE
		etc.
In the file ``data'' we have:
		@TITLE  Data 12-10-97
		@STYLE LineStyle Curve=1 Style=MicroDash Color=Red Thickness=2
		0 	0
		100 	-1
		150 	1
		etc.
The command file finally executed will be
		Verbose
		SetAlias
		ReadFile      File="./data" 
		PlotTitle     Title="Data 12-10-97"   Height=1.20
		LineStyle     Curve=1  Style=MicroDash  Color=Red   Thickness=2
		etc.

2.2  OPTIONS OF THE COMMAND FILE

# This character comments a line of the file.
| This character means choice of options.
[  ] These characters mean optional argument.
\ This character mean that the next line is a continuation line.


Verbose This option prints the command lines step by step.
SetAlias Runs the analysis and the search of parameters introduced into the ASCII data files.
SetUnit INCH| CM

Switches the dimensions and coordinates to inch units (centimeter by default).

SetPaper A4 | A3 | B5 | USLETTER | USLEGAL
AddLogo [ FILE="filename"] XSTART= YSTART= XSCALE= YSCALE=

where Filename is the name of the EPS file containing the logo.

SetSignature "text"

Prints "text" as a page signature.

WindowSize WIDTH= HEIGHT=

Specifies the graphic window geometry.

LineJoin ROUND| SHARP
AnnotationWindow The cell may be empty (neither curve nor surface). The user can draw annotations, color scale or circular diagram.

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 block_name" etc...
allows you to draw data without reading an external file. These data will be placed in the command file itself (at the beginning or at the end of the file). to delimit the datablock as:
DATABLOCK block_name << to mark the top of the block
>> to mark the bottom of the block

example:

DataBlock block_name1 <<
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
                ...
        >>
It is possible to create several blocks corresponding to several 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

The following commands can be used in an ``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

where LabelPosition= is position of radius labels in degrees.

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=Ëquation" INIT=Ïnitial values" 

FIT_RESULT_AS_ANNOTATION=Yes|No

XSTART=0 YSTART=0

COLOR=Black STYLE=Plain|Bold HEIGHT=1

WARNING!

  • It is important to set the line ``FitResulFormat'' before the line ``Fit''.
  • The ``min'' and ``max'' must be in user units.
  • If the ``Fit'' lines are placed before the ``XAxis'' and ``YAxis'' lines, the fits will be computed in linear scale. In the other case, the fits will be computed in the axis type (in log for ex.)

2.2.6  MISC COMMANDS

Formula MIN=-1 MAX=-1 NPOINTS=-1 FORMULA=Ëquation"
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

where Zmin,Zmax are the minimum and maximum values (Z) of the surface. This interval will be divided into 256 color levels.

where FirstLevel and LastLevel are the interval values of the LUT ( 0 to 255) used for the level division V1 V2.)

AddObjects [ Region|Surface|Dots|Triangles ]

The following commands can be used in an ``Annotation Window''.
SurfaceLut LUTNUMBER=0 | FILE= "file_name"

where LutNumber= is the internal color LUT type between 1 and 14 (description §1.2.8)

if filename exist, the ASCII file "File_name" is decoded. 2 types of LUT :

- index (0- > 255) Red Blue Green (Intensity between 0- > 255)
- z1 z2 (Surface (Z) Boundaries) Red Blue Green (Color components)

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

where XStart.... YEnd are the coordinates of the rectangle. They are given in user units or expressed as a percentage of the size of the axes in this case numbers are followed by the character %.

where Min Max (0->255) are the boundaries of the color LUT to be plotted. (If you want to mask a part of the LUT).

where z0 label0.. are the z value following by label (value or text)

2.2.8  PLOT ANNOTATION

The following commands can be used in an ``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" ]

All the coordinates are given in user units or expressed as a percentage of the size of the axes; in this case numbers are followed by the character %

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 ]

All the coordinates are given in user units or expressed as a percentage of the size of the axes; in this case numbers are followed by the character %

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 ]

This command transfers the result to a PostScript viewer: Ex: SendToDisplay 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 TriangleUp TriangleDown Circle FSquare FDiamond FTriangleUp FTriangleDown Fcircle (Where F is the first letter of Filled)

Function used in the equations:

Exp, log10, log, sqrt, rnd()

sign, abs, int,

sin, cos, tan (in radian),sind, cosd, tand (in degrees)

asin, acos, atan, asind, acosd, atand,

sinh, cosh, tanh,

asinh, acosh, atanh,

cosec, sec, cotan, cosecd, secd, cotand

Operators used in the equations:

+, -, *, / , % (integer division),

** (power)

& (AND) , | (OR) , ^ (XOR), ~ (complement)

2.4  EXAMPLE

You are able to run this example by copying it in a file (a.com) and by running the command Mgraph -show a.com.
The result in PostScript will be contained in the file print.ps to be printed or visualized.

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

test.gif **********************************************************

Chapter 3
Mgraph is used in a program

FORTRAN / C INTERFACE

**********************************************************

A network version of the software (Mgraph_sp ) has been developed; it allows the visualization of graphics computed in a program. This version is useful in delicate problems such as the analysis of measurements where the constraints are: the choice of the sequences to be analyzed and the adjustment of physical coefficients in a model for example an inversion and a retrieval of physical parameters.

A library lib_Net_Mgraph.a with various modules to be integrated in the FORTRAN or C programs has been generated and several examples with comments are provided with the Mgraph distribution.

This network version makes possible for a user to launch his calculation program on a 1st computer which would run the visualization program Mgraph_sp on a 2nd computer and the graphic result would appear on the X terminal of a 3rd computer. This is possible whatever type of platform is used. (Warning: the user must have a login on the different computers). Usually the 3 steps are launched on the same computer, but this shows the independence of the user's program from the graphic visualization.

3.1  call of subroutines

Launch of software (§3.2.1) run_mgraph
run_mgraph_no_display
Global specifications (§3.2.2) send_resize
send_scale_to_frame
send_add_logo
send_signature
Axis drawing (§3.2.3) send_format
send_xaxes2
send_yaxes2
send_zaxes2
send_labelsize
Send of data (§3.2.4) send_data2
send_data_Xerror
send_data_Yerror
Send of Surface (§3.2.5) send_datasurf
send_irregulardatasurf
send_datasurf3d
send_colorscale
Send of Title or Annotation (§3.2.6)send_title
send_text2
send_line
send_box
send_mark
The Page Setting (§3.2.7) send_draw_cell
send_page_text
send_page_line
send_page_box
send_page_arrow
The Outputs (§3.2.8) send_print
send_create_ps
send_create_eps
send_export
The Animation (§3.2.9) send_animate
send_clear_window
Close the Dialog (§3.2.10)send_end_dialog
send_exit_mgraph


In FORTRAN langage, the names of the routines are simply followed of _f.
The detailed description of the parameters of the functions is given below.

3.2  Detailed description.

The following variables are used in several subroutines.

int client_id
Sequence number of the software; several Mgraph can be launched at the same time.
int window
Number of the window in which the action will be carried out. You can open to 10 windows simultaneously (-1 represents the current window).
int color
Number of the color: from 0 to 12 : Red, Blue, Magenta, Black, Green, Forest, Sienna, Yellow,Coral, Violet, Plum, Cyan, Turquoise and 16 for the White
int line_style
Style of the line: from 0 to 7 :Solid, NoLine, MicroDash, SmallDash, Dash, LongDash, DashDot, LineDot
int mark_type
Style of the marker: from 0 to 15 : NoMark, BigDot, SmallDot, Cross, X, Square, Diamond, TriangleUp, TriangleDown, Circle, filled Square, filled Diamond, filled TriangleUp, filled TriangleDown, filled Circle

3.2.1  Start Mgraph session:

Mgraph_sp can be launched with or without visualization:

/*----------------------------------------------------------------------------*/
/* 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 have to              */
/*                be launched; if NULL will be server_name                    */
/* DISPLAY        IP Address of terminal                                      */
/*----------------------------------------------------------------------------*/

run_mgraph (client_id, LOGIN, SHELL, PATH, PROG, COMPUTER, DISPLAY);
run_mgraph_no_display (client_id, LOGIN, SHELL, PATH, PROG, COMPUTER, DISPLAY);
int 	client_id;
char 	LOGIN[], SHELL[], PATH[], PROG[], COMPUTER[], DISPLAY[]; 

call run_mgraph_f (client_id, LOGIN, SHELL, PATH, PROG, COMPUTER, DISPLAY)
call run_mgraph_no_display_f (client_id, LOGIN, SHELL, PATH, PROG, COMPUTER, DISPLAY)
integer 	client_id
character*(*) 	LOGIN, SHELL, PATH, PROG, COMPUTER, DISPLAY

3.2.2  Global specifications:

The routine ``send_clear_window'' makes it possible to erase the indicated window. ``send_resize'' makes it possible to redefine the window geometry. ``send_scale_to_frame'' makes it possible to limit the axes to truths minimum and maximum whereas by default an extension of 10% is applied for a better presentation. ``send_add_logo'' and ``send_signature'' make it possible to send a logo and a signature on the page.

C:
==
send_clear_window(client_id,window);
int         client_id,window;

FORTRAN:
=======
call send_clear_window_f(client_id,window)
integer         client_id,window

/*--------------------------------------------------------------------------------*/
/* width,height            Window size in pixel                                   */
/*--------------------------------------------------------------------------------*/

C:
==
send_resize(client_id,window,width,height);
int 	client_id,window,width,height;

FORTRAN:
=======
call send_resize_f(client_id,window,width,height)
integer 	client_id,window,width,height

/*--------------------------------------------------------------------------------*/
/* flag             0->no    1->yes                                               */
/*--------------------------------------------------------------------------------*/

C:
==
send_scale_to_frame(client_id,window,flag);
int     client_id,window,flag;

FORTRAN:
=======
call send_scale_to_frame_f(client_id,window,flag)
integer     client_id,window,flag

/*--------------------------------------------------------------------------------*/
/* x_position, y_position       position of the logo                              */
/* w_scale, h_scale             scaling    "   "                                  */
/* file_name                    the EPS filename which contains the logo          */
/*--------------------------------------------------------------------------------*/

C:
==
send_add_logo(client_id,x_position,y_position,w_scale,h_scale,file_name);
int     client_id;
float   x_position,y_position,w_scale,h_scale;
char    *file_name;

FORTRAN:
=======
call send_add_logo_f(client_id,x_position,y_position,w_scale,h_scale,file_name)
integer      client_id
real         x_position,y_position,w_scale,h_scale
character    file_name()

/*--------------------------------------------------------------------------------*/
/* signature        your signature                                                */
/*--------------------------------------------------------------------------------*/

C:
==
send_signature(client_id,signature);
int     client_id;
char    *signature;

FORTRAN:
=======
call send_signature_f(client_id,signature)
integer      client_id
character    signature()

3.2.3  Draw axis:

The routine ``send_format'' allows, in only one call, to determine the axes in X and in Y. The calls of the routines ``send_xaxes2, send_yaxes2, send_zaxes2 '' make it possible to describe the axes one by one. ``send_labelsize'' makes it possible to change, in only one call, the size of all the labels.

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

/*  if extend = 1 (long mode):                                                         */
/*   Xmin, Xmax       X limits                                                         */
/*   Xref             X Reference value                                                */
/*   Xtick            X tick nb                                                        */
/*   Ymin, Ymax       Y limits                                                         */
/*   Yref             Y Reference value                                                */
/*   Ytick            Y tick nb                                                        */
/*-------------------------------------------------------------------------------------*/

C:
==
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         client_id,window,extend;
char        *XTitle,*YTitle ,*XForm,*YForm;
float       Xsize,Ysize;
int         Xgrid,Xlab,Ygrid,Ylab,Xlog,Ylog;
float       Xstep,Ystep;
float       Xmin,Xmax,Xref;
int         Xtick;
float       Ymin,Ymax,Yref;
int         Ytick;

FORTRAN:
=======
call send_format_f(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)

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


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

C:
==
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);

int         client_id,window;
char        *legend,*format;
float       label_size,min,max;
int         grid,color,thickness;
float       rotation,step,ref;
int         tick,log;
char        *Formula;

FORTRAN:
=======
call send_xaxes2_f(client_id,window,legend,format,label_size,min,max,grid,
            color,thickness,rotation,step,ref,tick,log,Formula)
call send_yaxes2_f(client_id,window,legend,format,label_size,min,max,grid,
            color,thickness,rotation,step,ref,tick,log,Formula)
call send_zaxes2_f(client_id,window,legend,format,label_size,min,max,grid,
            color,thickness,rotation,step,ref,tick,log,Formula)

integer       client_id,window;
character*(*) legend,format;
real          label_size,min,max;
integer       grid,color,thickness;
real          rotation,step,ref;
integer       tick,log;
character*(*) Formula;


/*-----------------------------------------------------------------------------*/
/* tit            size of title                                                */
/* xlab           size of Xaxis labels                                         */
/* ylab           size of Yaxis labels                                         */
/* xtit           size of Xaxis title                                          */
/* ytit           size of Yaxis title                                          */
/*-----------------------------------------------------------------------------*/

C:
==
send_labelsize(client_id,window,tit,xlab,ylab,xtit,ytit);
int         client_id,window;
float       tit,xlab,ylab,xtit,ytit;

FORTRAN:
=======
call send_labelsize_f(client_id,window,tit,xlab,ylab,xtit,ytit)
integer     client_id,window
real        tit,xlab,ylab,xtit,ytit

3.2.4  Send data to Mgraph:

The routine ``send_data2 '' makes it possible to send in a window a set of data, in 2 arrays (X and Y). the routines ``send_data_Xerror'' and ``send_data_Yerror'' makes it possible to draw these data with a bar of error (X, Y and array ERROR). For each one of these calls, you can determine the number of the curve (-1 will number automatically), the style (color, line and type of marker) of the curve (and of the bars of error).

/*----------------------------------------------------------------------------*/
/* clear               Window have to be cleared ? (Bool)                     */
/* plot_nb (0->512)    Number of the plot (-1 will determine an available one */
/* nbp                 Number of points in the data                           */
/* xx                  x       data                                           */
/* yy                  f(x)    data                                           */
/* error               X or Y error bar (Y+err Y-err (or X+err X-err) will be drawn) */
/*----------------------------------------------------------------------------*/

C:
==
send_data2(client_id,window,clear,plot_nb,nbp,xx,yy,color,style,mark,thickness,marksize);

int      client_id;
int      window,clear,plot_nb, nbp;
float    *xx,*yy;
int      color,style,mark,thickness,marksize;

send_data_Xerror(client_id,window,clear,plot_nb,nbp,xx,yy,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,xx,yy,error,
                bar_color,bar_style,bar_mark,bar_thickness,bar_marksize,
                curve_color,curve_style,curve_mark_type,curve_line_thickness,curve_mark_size);

int      client_id,window,clear,plot_nb,nbp;
float    *xx,*yy,*error;
int      bar_color,bar_style,bar_mark,bar_thickness,bar_marksize;
int      curve_color,curve_style,curve_mark_type,curve_line_thickness,curve_mark_size;

FORTRAN:
=======
call send_data2_f(client_id,window,clear,plot_nb,nbp,xx,yy,color,style,mark,thickness,marksize)

integer      client_id
integer      window,clear,plot_nb, nbp
real         xx(nbp),yy(nbp)
integer      color,style,mark,thickness,marksize

call send_data_Xerror_f(client_id,window,clear,plot_nb,nbp,xx,yy,error,
                bar_color,bar_style,bar_mark,bar_thickness,bar_marksize,
                curve_color,curve_style,curve_mark_type,curve_line_thickness,curve_mark_size)
call send_data_Yerror_f(client_id,window,clear,plot_nb,nbp,xx,yy,error,
                bar_color,bar_style,bar_mark,bar_thickness,bar_marksize,
                curve_color,curve_style,curve_mark_type,curve_line_thickness,curve_mark_size)

integer      client_id,window,clear,plot_nb,nbp
real         xx(nbp),yy(nbp),error(nbp)
integer      bar_color,bar_style,bar_mark,bar_thickness,bar_marksize
integer      curve_color,curve_style,curve_mark_type,curve_line_thickness,curve_mark_size

3.2.5  Send a surface to Mgraph:

The routine ``send_datasurf'' makes it possible to send a surface, in a regular grid, to Mgraph. The points are arranged in 1 array (data). ``send_irregulardatasurf'' makes it possible to send an irregular surface in 3 arrays (XX, YY and ZZ). ``send_datasurf3d'' allows a representation 3D of the surface previously drawn in a window and the call of ``send_colorscale'' makes it possible to draw a scale color, linear or using squares. For the description of the internal color scale, to see the §1.2.8.

/*-----------------------------------------------------------------------------------*/
/* width, height       surface dimensions                                            */
/* xmin xmax ymin ymax limits on X and Y                                             */
/* data[width*height]  data values                                                   */
/* nbcont              number of contour values                                      */
/* cont[nbcont]        contour values                                                */
/* color[nbcont]       (0->12 - 16)                                                  */
/* style[nbcont]       (0->7)      Line style                                        */
/* mark[nbcont]        (0->15)     Mark type                                         */
/* dolabel[nbcont]     Draw label? 0=No 1=Yes                                        */
/* add[4]              Surface , Region , Dots , Triangles (0/1)                     */
/* undef               Undef value (float)                                           */
/* distance            Region distance factor                                        */
/* pix[4]              Color tranformation: minv maxv minp maxp                      */
/* nlut                0=no lut   1->14=internal LUT 256=use following LUTS          */
/* Red[256]            LUT                                                           */
/* Green[256]          LUT                                                           */
/* Blue[256]           LUT                                                           */
/* near                pixel interpolation: 0=No 1=Yes                               */
/* Format              label C format                                                */
/* AddMode             1 = add contours on graphic window                            */
/*-----------------------------------------------------------------------------------*/

C:
==
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        client_id,window,width,height;
float      xmin,xmax,ymin,ymax;
float      *data;
int        nbcont;
float      *cont;
int        *color,*style,*mark,*dolabel;
int        *add;
float      undef,distance,*pix;
int        nlut;
short      *red,*green,*blue;
int        near;
char       *Format;
int        AddMode;

FORTRAN:
=======
call send_datasurf_f(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)
integer        client_id,window,width,height
real        xmin,xmax,ymin,ymax
real        data(nbp)
integer     nbcont
real        cont(nbcont)
integer     color(nbcont),style(nbcont),mark(nbcont),dolabel(nbcont)
integer     add(4)
real        undef,distance,pix(4)
integer     nlut
integer*2   red(256),green(256),blue(256)
integer     near
character*(*)  Format
integer     AddMode


/*-----------------------------------------------------------------------------------*/
/* width, height       surface dimensions [default 0]                                */
/* size                size of matrix X,Y,Z                                          */
/* xx                  X values (float)                                              */
/* yy                  Y values (float)                                              */
/* zz                  Z values (float)                                              */
/*-----------------------------------------------------------------------------------*/

C:
==
send_irregulardatasurf(client_id,window,width,height,size,xx,yy,zz,nbcont,cont,
		color,style,mark,dolabel,add,undef,distance,pix,nlut,
		red,green,blue,near,Format,AddMode);

int        client_id,window,width,height,size;
float      *xx,*yy,*zz;
int        nbcont;
float      *cont;
int        *color,*style,*mark,*dolabel;
int        *add;
float      undef,distance,*pix;
int        nlut;
short      *red,*green,*blue;
int        near;
char       *Format;
int        AddMode;

FORTRAN:
=======
call send_irregulardatasurf(client_id,window,width,height,size,xx,yy,zz,nbcont,cont,
		color,style,mark,dolabel,add,undef,distance,pix,nlut,
		red,green,blue,near,Format,AddMode)

integer        client_id,window,width,height,size
real           xx(size),yy(size),zz(size)
integer        nbcont
real           cont(nbcont)
integer        color(nbcont),style(nbcont),mark(nbcont),dolabel(nbcont)
integer        add(4)
real           undef,distance,pix(4)
integer        nlut
integer*2      red(256),green(256),blue(256)
integer        near
character*(*)  Format
integer        AddMode

/*-----------------------------------------------------------------------------------*/
/* updown              Up/Down angle in degrees                                      */
/* rightleft           Right/Left angle in degrees                                   */
/* groundlevel         Undef=8421                                                    */
/* stretch             between  0 to 1 : reduces z impact                            */
/* zeroposition        between -1 to 1 : shifts the graph position                   */
/* addings3D[8]        Top surface, Bottom surface, Surface, Grids,                  */
/*                     Top curves, Bottom curves  (0/1)     (7 &  8 unused)          */
/* nbgrid              Number of grids                                               */
/* thickness	       Grid thickness                                                */
/* color               Grid color (0->12 or 16 for white)                            */
/*-----------------------------------------------------------------------------------*/

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

int         client_id,window;
float       updown,rightleft,groundlevel,stretch,zeroposition;
int         *addings3D,nbgrid,thickness,color;

FORTRAN:
=======
call send_datasurf3d(client_id,window,updown,rightleft,groundlevel,
                stretch,zeroposition,addings3D,nbgrid,thickness,color)

integer         client_id,window
real            updown,rightleft,groundlevel,stretch,zeroposition
integer         addings3D(8),nbgrid,thickness,color


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

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

int         client_id,window,mode;
float       x1,y1,x2,y2;
int         min,max,position,color_label,NoTick;
float       size_label;
int         coord;
char        *format,*list;

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

integer         client_id,window,mode
real            x1,y1,x2,y2
integer         min,max,position,color_label,NoTick
real            size_label
integer         coord
character*(*)   format,list


3.2.6  Send the title or an annotation to Mgraph:

The following calls enable you to add a title in a window or annotations: text, line or mark. The variable ``relative'' makes it possible to attach the annotations to the graph in real coordinates or to attach them to the graph itself (in %).


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

C:
==
send_title(client_id,window,text);
int 	client_id,window;
char 	*text;

send_text2(client_id,window,color,rotation,size,bold,x_position,y_position,text,relative);
int         client_id,window,color;
float       rotation,size;
int         bold;
float       x_position,y_position;
char        *text;
int         relative;

send_line(client_id,window,color,style,thickness,x_start,y_start,x_end,y_end,relative);
int         client_id,window,color,style,thickness;
float       x_start,y_start,x_end,y_end;
int         relative;

send_box(client_id,window,color,style,thickness,x_start,y_start,x_end,y_end,relative);
int        client_id,window,color,style,thickness;
float      x_start,y_start,x_end,y_end;
int        relative;

send_mark(client_id,window,color,type,size,x_pos,y_pos,relative);
int        client_id,window,color,type,size;
float      x_pos,y_pos;
int        relative;


FORTRAN:
=======
call send_title_f(client_id,window,text)
integer 	client_id,window
character*(*)  	text

call send_text2_f(client_id,window,color,rotation,size,bold,x_position,y_position,text,relative)
integer         client_id,window,color
real            rotation,size
integer         bold
real            x_position,y_position
character*(*)   text
integer         relative

call send_line_f(client_id,window,color,style,thickness,x_start,y_start,x_end,y_end,relative)
integer         client_id,window,color,style,thickness
real            x_start,y_start,x_end,y_end
integer         relative

call send_box_f(client_id,window,color,style,thickness,x_start,y_start,x_end,y_end,relative)
integer        client_id,window,color,style,thickness
real           x_start,y_start,x_end,y_end
integer        relative

call send_mark_f(client_id,window,color,type,size,x_pos,y_pos,relative)
integer        client_id,window,color,type,size
real           x_pos,y_pos
integer        relative

3.2.7  Make a page setting

You can print your graph directly by using outputs PostScript, GIF or Tiff but also by making a page setting with the following calls: ``send_draw_cell'' makes it possible to send the graph in a cell positioned on a page, then ``send_page_text'' etc... makes it possible to make annotations on the page.

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

C:
==
send_draw_cell(client_id,window,x_position,y_position,width,height,type,orientation,fit_frame);
int        client_id,window;
float      x_position,y_position,width,height;
int        type,orientation,fit_frame;

FORTRAN:
=======
call send_draw_cell_f(client_id,window,x_position,y_position,width,height,type,orientation,fit_frame)
integer        client_id,window
real           x_position,y_position,width,height
integer        type,orientation,fit_frame;

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

C:
==
send_page_text(client_id,x_position,y_position,color,bold,height,rotation,text);
int         client_id;
float       x_position,y_position;
int         color,bold;
float       height,rotation;
char        *text;

send_page_line(client_id,x_start,y_start,x_end,y_end,color,style,thickness);
int         client_id;
float       x_start,y_start,x_end,y_end;
int         color,style;
float       thickness;

send_page_box(client_id,x_start,y_start,x_end,y_end,color,style,thickness);
int         client_id;
float       x_start,y_start,x_end,y_end;
int         color,style;
float       thickness;

send_page_arrow(client_id,x_start,y_start,x_end,y_end,color,style,thickness);
int         client_id;
float       x_start,y_start,x_end,y_end;
int         color,style;
float       thickness;

FORTRAN:
=======
call send_page_text_f(client_id,x_position,y_position,color,bold,height,rotation,text)
integer          client_id
real             x_position,y_position
integer          color,bold
real             height,rotation
character*(*)    text

call send_page_line_f(client_id,x_start,y_start,x_end,y_end,color,style,thickness)
integer         client_id
real            x_start,y_start,x_end,y_end
integer         color,style
real            thickness

call send_page_box_f(client_id,x_start,y_start,x_end,y_end,color,style,thickness)
integer         client_id
real            x_start,y_start,x_end,y_end
integer         color,style
real            thickness

call send_page_arrow_f(client_id,x_start,y_start,x_end,y_end,color,style,thickness)
integer         client_id
real            x_start,y_start,x_end,y_end
integer         color,style
real            thickness

3.2.8  The outputs:PostScript, Gif or Tiff

You can print your graph or your page setting either directly on a printer through a command ``shell'', or in a file (PS or EPS). You can also export a graph in a file Tiff or GIF.


/*------------------------------------------------------------------------------------*/
/*           allows you to send the graphic window  to a spooler command              */
/*              or in a  (Encapsulated)PostScript file                                */
/* size                 size in cm (std 16 cm)                                        */
/* type                 0=B/W    1=GreyScale    2=Color                               */
/* square               square frame? 0=No     1=Yes                                  */
/* logo                 add the logo? 0=No     1=Yes                                  */
/* orientation          0=Portrait 1=Landscape                                        */
/* printer_shell        spooler command: example: "lp -d Myprinter"                   */
/* file_name            your PS file name                                             */
/*------------------------------------------------------------------------------------*/

C:
==
send_print(client_id,window,size,type,square,logo,orientation,printer_shell);
int        client_id,window;
float      size;
int        type,square,logo,orientation;
char       *printer_shell;

send_create_ps (client_id,window,size,type,square,logo,orientation,file_name);
int     client_id,window;
float   size;
int     type,square,logo,orientation;
char    *file_name;

send_create_eps(client_id,window,type,orientation,file_name);
int     client_id,window,type,orientation;
char    *file_name;

FORTRAN:
=======
call send_print_f(client_id,window,size,type,square,logo,orientation,printer_shell)
integer        client_id,window
real           size
integer        type,square,logo,orientation
character*(*)  printer_shell

call send_create_ps_f(client_id,window,size,type,square,logo,orientation,file_name)
integer        client_id,window
real           size
integer        type,square,logo,orientation
character*(*)  file_name

call send_create_eps_f(client_id,window,type,orientation,file_name)
integer        client_id,window,type,orientation
character*(*)  file_name

/*------------------------------------------------------------------------------------*/
/*           allows you to export the graphic window                                  */
/*                   in a Gif / Tiff file                                             */
/* type                 0-> gif 1-> Tiff                                              */
/* file_name            your Gif/Tiff file name                                       */
/*------------------------------------------------------------------------------------*/

C:
==
send_export(client_id,window,type,file_name);
int     client_id,window;
int     type;
char    *file_name;

FORTRAN:
=======
call send_export_f(client_id,window,type,file_name)
integer          client_id,window
integer          type
character*(*)    file_name

3.2.9  Animate curves:

If several curves were plotted in the window, they can be animated in the following way:

/*-------------------------------------------------------------*/
/* elapse               time : 10 -> 100                       */
/* plot step            > 1 if the animation is too slow       */
/*-------------------------------------------------------------*/

C:
==
send_animate(client_id,window,elapse,plot_step)
int          client_id,window,elapse,plot_step;

FORTRAN:
=======
call send_animate_f(client_id,window,elapse,plot_step)
integer        client_id,window,elapse,plot_step

3.2.10  Close the session:

The routine ``send_end_dialog'' makes it possible to leave your program by preserving active Mgraph. The routine ``send_exit_mgraph'' leaves Mgraph.


C:
==
send_end_dialog(client_id)
int      client_id;

send_exit_mgraph(client_id)
int      client_id;

FORTRAN:
=======
call send_end_dialog_f(client_id)
integer      client_id

call send_exit_mgraph_f(client_id)
integer      client_id

3.3  C program examples:

/*-----------------------------------------------
        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;
            }
/*-----------------------------------------------
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);
}

If the file prog.c contains this program, execute the compilation shell:

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

3.4  FORTRAN program examples:

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

If the file prog.f contains this program, execute the compilation shell:

f77 prog.f -o prog lib_Net_Mgraph.a

**********************************************************

Chapter 4
CGI

**********************************************************

Mgraph is used in a CGI script

For a correct use of Mgraph in Internet, you must take care of server parameters:
The server must autorize the usage of CGI scripts.
For the apache server, see the configuration files (access.conf, httpd.conf or srm.conf), to modify the access to the directory containing CGI scripts.

Below, examples of use of Mgraph in scripts written in C language and PERL.


  • Example of form in HTML
    This forms allows the lauch of the CGI file.
        <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>
    

  • C program
    This program computes x,y,z data which are image of a surface. It is used by the script under the name ``sub''
    #include <stdio.h>
    #include <math.h>
    
    /* This program (called "Mgraph_with_cgi_example" in examples) 
       generates a surface data file */
    
    main()
    {
     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);
      	    }
     	}
    }
    

  • Command file
    This command file is used by the script below.
    It has been created by Mgraph . It is called My_com_file in the script.

    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
    
    

  • Example of script in SHELL
    This script launches the previous program, then launches Mgraph on the command file My_com_file which reads the data and creates a PostScript file.
    If necessary, it can build a gif image (use of 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>"
    
    

  • Example of script in PERL
    This script launches the previous program then creates the command file and launches Mgraph on it.
    #!/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";
    
    #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 .="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";
    }
    
    

**********************************************************

Chapter 5
FAQ

**********************************************************

  • Faster way to plot an ASCII file

    cat DATA | Mgraph

  • Encoding characters in strings:

    In all character strings, you can use symbols,exponents, subscripts or accents.

    particular character: \n return line feed
    \\ \
    Accents, etc. \`e é
    \'e /'e
    \ê ê
    \ë ë
    same way for a,e,i,o,u,A,E,I,O,U
    \'Y Ý
    \`y \`y
    \ÿ ÿ

    Symbols \pounds £
    \S §
    \copyright ©
    \pm ±
    \P
    \AA Å (Angstrom)
    \AE Æ
    \cC C
    \ ~ N Ñ
    \times ×
    \ss ß
    \aa å (angstrom)
    \ae æ
    \cc c
    \ ~ n ñ
    \div ¸
    \o Æ
    ${a+b} a+b
    $mm mm
    $$ $

    exponents and subscripts _{sub} the string `sub' is written in subscript
    _nm the character n is written in subscript
    __ _
    ^{sup} the entire string sup is written in exponent
    ^nm the character n is written as exponent but not m
    ^^^

    examples:
    A^{$a^2} give Aa2
    X^{y_{1+n}} give Xy1+n
    A^i_j give Aij

  • You want to plot a column according to an increment (from 1 to n points):
    Menu Files - > Read files
    Type 0 in the X column editor
    Type the column number in the Y column
    Activate Apply

  • You want to plot an axis in the decreasing direction: for example plot Y axes for pressures from 1023 to 0

    Menu Settings - > Axis setting
    Use `User formula' instead of `linear scale'
    In the equation editor type: -y
    Activate Apply

  • You want to change the axis presentation:

    for example plot X axis from 0 to 1.e+9. Mgraph shows automatically from 0 to 1000 with the title: `X 106'.
    You prefer to show from 0 to 10 and as title Xx108:
    Menu Settings - > Plot annotation
    Choose `Extra axis' then `Bottom axis'
    Mini:0 Maxi 10 Title:X 108 Color:black
    Activate Apply

  • You want to overlay 2 curves with differents limits:

    For example: the curve Y1=f(X) has its coordinates between 0.5 and 1 and the curve Y2=f(X) has its coordinates between 0 and 100. The limits have been fixed to 0-100.

    Menu Math - > Formula
    Type equation: 'y1= (y1-0.5)*200'.
    Activate Apply

    The curve 1 is drawn between 0 and 100.
    Menu Settings - > Plot_annotations
    Select Extra_axis and Right axis with 0.5 and 1 as limits.
    Activate Apply

  • you want to sample the data of a curve.

    Menu Math- > Formula
    Fill the editors 'X domain'
    Type the equation: 'y1=y1' or 'x1=x1'
    Activate Apply

  • You want to remove a legend among several:

    For example: a curve is plotted with standard deviations. The legend is represented by 2 items: the curve and the standard deviation. You wish to keep only the representation of the curve:

    Menu Settings- > Edit legend
    Visualize the legend corresponding to the standard
    Activate Masked

  • You want to add noise to a curve:

    Menu Math - > Formula
    Write in the equation editor:
    y= y1 + rnd()
    Activate Apply

  • You want to remove the drawing of the 4 axes:

    Menu Settings- > Plot setting
    activate no frame
    Menu Settings- > Axis setting
    select X axis
    activate No axis
    select Y axis
    activate No axis

  • You want to draw y1=f(y2):

    You have 2 curves y1=f(x1) and y2=f(x2). The x1 and x2 values are different but their domain is the same. You want to see the correlation between the 2 functions as: y1=f(y2)

    Menu Math - > Formula
    Write in the equation editor:
    x1 = y2

    You can also execute the difference between 2 functions which have differents abcisses. WARNING! This operation needs an interpolation and may take a lot of time if there are many points.

  • You want to use system of aliases to indroduce files names in a command file (.com):
    Create a file (AliasFile for ex.) with alias of the files names:
    ex: @file1 "data1"
    @file2 "data2" etc..

    In the command file, after the line:
    SetAlias
    You add:
    Readfile file=ÄliasesFile"
    and use @file1, @file2 etc.. as a common alias
    ex: ReadBinSurface File=@file1

  • You want to add to a file columns from another file:

    pr -t -m -s' ' file1 file2 > file3
    or paste file1 file2 > file3

**********************************************************

Appendix A
Command files examples

The command files below were created directly by interactive Mgraph .


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] 

#############################################################

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
    

3D.gif


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
    

ARM.gif



#############################################################

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  
    

Modis01.gif




#############################################################

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 
    

Modis02.gif



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"
    

psy_P1L1TBG1003134BD_1.gif



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  
    

eucrex.gif

Appendix B
Graphic output examples

The command files hereafter were created by users of Mgraph.

inversion.gif

astex.gif

MSBermuda.gif

lum_pol.gif

Pinatubo.gif

polder.gif

HIRSall_07km.gif

figure_month.gif

**********************************************************

AUTHORS

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 is available on:
http://www-loa.univ-lille1.fr/Mgraph/















The authors wish to thank:

Dr Descloitres J. for his contribution to the development of the software and more particularly in the processing part of surfaces.

Dr. J.R. Shewchuk for his developments on:
"Triangle: Engineering a 2D Quality Mesh Generator
and Delaunay Triangulator," First Workshop
on Applied Computational Geometry, ACM, May 1996. [*]


File translated from TEX by TTH, version 2.72.
On 3 Apr 2001, 11:48.