Next: 7.23 All great-circle paths Up: 7. Creating GMT Graphics Previous: 7.21 Time-series of RedHat Contents Index

#
7.22 World-wide seismicity the last 7 days

The next example uses the command-line tool wget to obtain a data file from a specified URL7.4. In the example script this line is commented out so the example will run even if you do not have wget (we use the supplied neic_quakes.d which normally would be created by wget); remove the comment to get the actual current seismicity plot using the live data. The main purpose of this script is not to show how to plot a map background and a few circles, but rather demonstrate how a map legend may be composed using the new tool pslegend. Some scripting is used to pull out information from the data file that is later used in the legend. The legend will normally have the email address of the script owner; here that command is commented out and the user is hardwired to ``GMT guru''. The USGS logo, taken from their web page and converted to a Sun raster file, is used to spice up the legend.

    #!/bin/sh
    #               GMT EXAMPLE 22
    #
    # Purpose:      Automatic map of last 7 days of world-wide seismicity
    # GMT progs:    gmtset, pscoast, psxy, pslegend
    # Unix progs:   cat, sed, awk, wget|curl
    #
    ps=example_22.ps
    gmtset ANNOT_FONT_SIZE_PRIMARY 10p HEADER_FONT_SIZE 18p PLOT_DEGREE_FORMAT ddd:mm:ssF

    # Get the data (-q quietly) from USGS using the wget (comment out in case
    # your system does not have wget or curl)

    #wget http://neic.usgs.gov/neis/gis/bulletin.asc -q -O neic_quakes.d
    #curl http://neic.usgs.gov/neis/gis/bulletin.asc -s > neic_quakes.d

    # Count the number of events (to be used in title later. one less due to header)

    n=`cat neic_quakes.d | wc -l`
    n=`expr $n - 1`

    # Pull out the first and last timestamp to use in legend title

    first=`sed -n 2p neic_quakes.d | $AWK -F, '{printf "%s %s\n", $1, $2}'`
    last=`sed -n '$p' neic_quakes.d | $AWK -F, '{printf "%s %s\n", $1, $2}'`

    # Assign a string that contains the current user @ the current computer node.
    # Note that two @@ is needed to print a single @ in pstext:

    #set me = "$user@@`hostname`"
    me="GMT guru @@ GMTbox"

    # Create standard seismicity color table

    cat > neis.cpt << END
    0       red     100     red
    100     green   300     green
    300     blue    10000   blue
    END

    # Start plotting. First lay down map, then plot quakes with size = magintude/50":

    pscoast -Rg -JK180/9i -B45g30:."World-wide earthquake activity": -Gbrown -Slightblue \
            -Dc -A1000 -K -U/-0.75i/-2.5i/"Example 22 in Cookbook" -Y2.75i > $ps
    $AWK -F, '{ print $4, $3, $6, $5*0.02}' neic_quakes.d \
            | psxy -R -JK -O -K -Cneis.cpt -Sci -Wthin -H >> $ps
    # Create legend input file for NEIS quake plot

    cat > neis.legend << END
    H 16 1 $n events during $first to $last
    D 0 1p
    N 3
    V 0 1p
    S 0.1i c 0.1i red 0.25p 0.2i Shallow depth (0-100 km)
    S 0.1i c 0.1i green 0.25p 0.2i Intermediate depth (100-300 km)
    S 0.1i c 0.1i blue 0.25p 0.2i Very deep (> 300 km)
    V 0 1p
    D 0 1p
    N 7
    V 0 1p
    S 0.1i c 0.06i - 0.25p 0.3i M 3
    S 0.1i c 0.08i - 0.25p 0.3i M 4
    S 0.1i c 0.10i - 0.25p 0.3i M 5
    S 0.1i c 0.12i - 0.25p 0.3i M 6
    S 0.1i c 0.14i - 0.25p 0.3i M 7
    S 0.1i c 0.16i - 0.25p 0.3i M 8
    S 0.1i c 0.18i - 0.25p 0.3i M 9
    V 0 1p
    D 0 1p
    N 1
    >
    END

    # Put together a reasonable legend text, and add logo and user's name:

    cat << END >> neis.legend
    >
    T USGS/NEIS most recent earthquakes for the last seven days.  The data were
    T obtained automatically from the USGS Earthquake Hazards Program page at
    T @_http://neic/usgs.gov @_.  Interested users may also receive email alerts
    T from the USGS.
    T This script can be called daily to update the latest information.
    G 0.4i
    # Add USGS logo
    I USGS.ras 1i RT
    G -0.3i
    L 12 6 LB $me
    END

    # OK, now we can actually run pslegend.  We center the legend below the map.
    # Trial and error shows that 1.7i is a good legend height:

    pslegend -Dx4.5i/-0.4i/7i/1.7i/TC -J -R -O -F neis.legend -Glightyellow >> $ps

    # Clean up after ourselves:

    rm -f neis.* .gmt*

Figure 7.22: World-wide seismicity the last 7 days.

The script produces the plot in Figure 7.22, giving the URL where these and similar data can be obtained.

Next: 7.23 All great-circle paths Up: 7. Creating GMT Graphics Previous: 7.21 Time-series of RedHat Contents Index