(24) Data selection based on geospatial criteria
Although we are not seismologists, we have yet another example involving
seismicity. We use seismicity data for the Australia/New Zealand region
to demonstrate how we can extract subsets of data using geospatial
criteria. In particular, we wish to plot the epicenters given in the remote
file oz_quakes_24.txt
as red or green circles. Green circles should only be used for
epicenters that satisfy the following three criteria:
They are located in the ocean and not on land
They are within 3000 km of Hobart
They are more than 1000 km away from the International Dateline
All remaining earthquakes should be plotted in red. Rather that doing the selection process twice we simply plot all quakes as red circles and then replot those that pass our criteria. Most of the work here is done by gmtselect; the rest is carried out by the usual coast and plot workhorses. Note for our purposes the Dateline is just a line along the 180 meridian.
The script produces the plot in Figure. Note that the horizontal distance from the dateline seems to increase as we go south; however that is just the projected distance (Mercator distortion) and not the actual distance which remains constant at 1000 km.
#!/usr/bin/env bash
# GMT EXAMPLE 24
#
# Purpose: Extract subsets of data based on geospatial criteria
# GMT modules: select, coast, plot, info
# Unix progs: echo, cat, rm
#
# Highlight oceanic earthquakes within 3000 km of Hobart and > 1000 km from dateline
gmt begin ex24
echo "147:13 -42:48 6000" > point.txt
cat <<- END > dateline.txt
> Our proxy for the dateline
180 0
180 -90
END
R=$(gmt info -I10 @oz_quakes_24.txt)
gmt coast $R -JM22c -Gtan -Sdarkblue -Wthin,white -Dl -A500 -Ba20f10g10 -BWeSn
gmt plot @oz_quakes_24.txt -Sc0.1c -Gred
gmt select @oz_quakes_24.txt -Ldateline.txt+d1000k -Nk/s -Cpoint.txt+d3000k -fg -Il \
| gmt plot -Sc0.1c -Ggreen
gmt plot point.txt -SE- -Wfat,white
gmt text point.txt -F+f14p,Helvetica-Bold,white+jLT+tHobart -Dj7p
gmt plot point.txt -Wfat,white -S+0.5c
gmt plot dateline.txt -Wfat,white -A
rm -f point.txt dateline.txt
gmt end show