(7) Spinning Earth showing crustal agesΒΆ

It is relatively simple to make a spinning Earth movie by using the frame number as view longitude. Here we simulate sunlight to modulate the slopes of the global relief and color the seafloor using the crustal age grids from EarthByte.

#!/usr/bin/env bash
#               GMT ANIMATION 07
#
# Purpose:      Make a Plate Tectonics movie of crustal ages
# GMT modules:  math, set, grdgradient, grdmath, grdimage, makecpt, movie, coast
# Unix progs:   cat
# Note:         Run with any argument to build movie; otherwise one frame is plotted only.

if [ $# -eq 0 ]; then   # Just make master PostScript frame 10
	opt="-M10,ps -Fnone"
	ps=anim07.ps
else	# Make movie in MP4 format and a thumbnail animated GIF using every 10th frame
	opt="-Fmp4 -A+l+s5"
fi
# 1. Create background plot and data files needed in the loop
cat << EOF > pre.sh
gmt begin
	# Set view and sun longitudes
	gmt math -T0/360/5 -I T 5 SUB = longitudes.txt
	# Extract a topography CPT
	gmt makecpt -Cdem2 -T0/6000 -H > t.cpt
	# Get gradients of the relief from N45E
	gmt grdgradient @earth_relief_20m -Nt1.25 -A45 -Gintens.nc
gmt end
EOF
# 2. Set up main script
cat << EOF > main.sh
gmt begin
	# Let HSV minimum value go to zero
	gmt set COLOR_HSV_MIN_V 0
	# Fake simulation of sun illumination from east combined with relief slopes
	gmt grdmath intens.nc X \${MOVIE_COL1} SUB DUP -180 LE 360 MUL ADD 90 DIV ERF ADD 0.25 SUB = s.nc
	# Plot age grid first using age cpt
	gmt grdimage @age.3.20.nc -Is.nc -C@crustal_age.cpt -JG\${MOVIE_COL0}/0/6i -X0 -Y0
	# Clip to expose land areas only
	gmt coast -G
	# Overlay relief over land only using dem cpt
	gmt grdimage @earth_relief_20m -Is.nc -Ct.cpt
	# Undo clipping and overlay gridlines
	gmt coast -Q -B30g30
gmt end
EOF
# 3. Run the movie
gmt movie main.sh -Sbpre.sh -C6ix6ix100 -Tlongitudes.txt -Nanim07 -H2 -Z $opt
rm -rf main.sh pre.sh
../_images/anim07.png

Spinning Earth showing crustal ages.