(5) Control spline gridding via eigenvalues

Our next animation performs gridding using cubic splines but restricts the solution to using only the first k eigenvalues of the 52 that are required for an exact interpolation of this data set consisting of 52 points. We use greenspline to grid the data and select an ever-increasing number of eigenvalues, then show a contour map of the evolving surface. The data misfits are indicated by the colored circles; as we approach the full solution these all become white (no misfit). These 52 frames are well suited for an animated GIF.

#!/bin/bash
#               GMT ANIMATION 05
#               $Id$
#
# Purpose:      Make web page with simple animated GIF of gridding
# GMT modules:  grdcontour, greenspline, psxy, pstext, psconvert
# Unix progs:   mkdir, rm, mv, echo, convert, cat
# Note:         Run with any argument to build movie; otherwise 1st frame is plotted only.
#
# 1. Initialization
# 1a) Assign movie parameters
. gmt_shell_functions.sh
n_eigen=`gmt_get_ndatarecords ${src:-.}/table_5.11`
dpi=100
name=anim_05
ps=${name}.ps
mkdir -p $$
gmt makecpt -Cpolar -T-25/25 > t.cpt
frame=0
let k=1
while [ $k -le $n_eigen ]; do
	file=`gmt_set_framename ${name} ${frame}`
	gmt greenspline ${src:-.}/table_5.11 -R0/6.5/0/6.5 -I0.05 -Sc -Gt.nc -D1 -Cn${k} -Emisfit.txt 2> /dev/null
	gmt grdcontour t.nc -C25 -A50 -Baf -BWsNE -JX4i -P -K -Gl3.6/6.5/4.05/0.75 -X0.25i -Y0.4i --PS_MEDIA=4.5ix5.0i > $$.ps
	gmt psxy misfit.txt -R -J -O -K -Ct.cpt -Sc0.15c -Wfaint -i0,1,4 >> $$.ps
	echo $k | gmt pstext -R -J -O -K -F+cTR+jTR+f18p -Dj0.1i >> $$.ps
	gmt psscale -R -J -O -Ct.cpt -DJBC+e -Bxaf -By+l"misfit" >> $$.ps
	[[ ${frame} -eq 0 ]] && cp $$.ps ${ps}
	if [ $# -eq 0 ]; then
		gmt_cleanup .gmt
		gmt_abort "${0}: First frame plotted to ${name}.ps"
	fi
	gmt psconvert $$.ps -Tt -E${dpi}
	mv $$.tif $$/${file}.tif
	let k=k+1
        echo "Frame ${frame} completed"
	frame=`gmt_set_framenext ${frame}`
done
${GRAPHICSMAGICK-gm} convert -delay 10 -loop 0 +dither $$/${name_}*.tif ${name}.gif
cat << END > ${name}.html
<HTML>
<TITLE>GMT Spline gridding as function of number of eigenvalues</TITLE>
<BODY bgcolor="#ffffff">
<CENTER>
<H1>GMT Spline gridding as function of number of eigenvalues</H1>
<IMG src="${name}.gif" border=1>
</CENTER>
<HR>
Here we show how gridding with splines are affected by the number of eigenvalues
used in the construction of the final solution.
<I>${name}.sh: Created by ${USER} on `date`</I>
</BODY>      
</HTML>
END
# 4. Clean up temporary files
gmt_cleanup .gmt
../_images/anim_05.png

Evolution of a splined grid.