Next: Gridding of data and Up: Cook-book Previous: Optimal triangulation of data

#
Plotting of vector fields

In many areas, such as fluid dynamics and elasticity, it is desirable to plot vector fields of various kinds. GMT provides a way to illustrate 2-component vector fields using the grdvector utility. The two components of the field (Cartesian or polar components) are stored in separate grdfiles. In this example we use grdmath to generate a surface and to calculate by returning the x- and y-derivatives separately. We superpose the gradient vector field and the surface z and also plot the components of the gradient in separate windows:

    #!/bin/csh
    #        GMT EXAMPLE 13
    #
    #        @(#)job13.csh    1.5  02/01/99
    #
    # Purpose:    Illustrate vectors and contouring
    # GMT progs:    grdmath, grdcontour, pstext
    # Unix progs:    echo, rm
    #
    grdmath -R-2/2/-2/2 -I0.1 X Y R2 NEG EXP X MUL = z.grd
    grdmath z.grd DDX = dzdx.grd
    grdmath z.grd DDY = dzdy.grd
    grdcontour dzdx.grd -JX3i -B1/1WSne -C0.1 -A0.5 -K -P -G2i/10 -S4 -T0.1i/0.03i \
       -U"Example 13 in Cookbook" >! example_13.ps
    grdcontour dzdy.grd -JX -B1/1WSne -C0.05 -A0.2 -O -K -G2i/10 -S4 -T0.1i/0.03i -X3.45i >> example_13.ps
    grdcontour z.grd -JX -B1/1WSne -C0.05 -A0.1 -O -K -G2i/10 -S4 -T0.1i/0.03i -X-3.45i -Y3.45i \
       >> example_13.ps
    grdcontour z.grd -JX -B1/1WSne -C0.05 -O -K -G2i/10 -S4 -X3.45i >> example_13.ps
    grdvector dzdx.grd dzdy.grd -I0.2 -JX -O -K -Q0.03i/0.1i/0.09in0.25i -G0 -S5i >> example_13.ps
    echo "3.2 3.6 40 0 6 2 z(x,y) = x * exp(-x@+2@+-y@+2@+)" | pstext -R0/6/0/4.5 -Jx1i -O -X-3.45i \
       >> example_13.ps
    \rm -f z.grd dzdx.grd dzdy.grd .gmtcommands

A pstext call to place a header finishes the plot (Figure 6.13.

Figure 6.13: Display of vector fields in GMT