此脚本可用于在平面图上绘制轨迹。例子为绘制LGD算法的迭代路径,数据如下(仅截取前10行):

0 20 20 20 20
1 21.2864 20.6638 21 21
2 21.9939 21.0072 23.198 23.3067
3 22.4359 21.2145 26.3405 27.2079
4 22.5849 21.2829 32.1681 37.2527
5 26.0376 22.8571 32.8254 37.0327
6 28.1978 23.6712 33.8682 36.4159
7 31.0379 24.6084 34.8022 35.6868
8 31.104 24.626 37.3802 33.666
9 32.2038 24.918 38.7026 32.4291

数据共5列,分别为序号、轨迹1x、轨迹1y、轨迹2x、轨迹2y。

脚本

#!/usr/bin/env bash

# 1. Create files needed in the loop
cat << 'EOF' > pre.sh
gmt begin pre
	gmt set FONT_ANNOT_PRIMARY=15p,Times-Roman,black
	gmt set FONT_LABEL=15p,Times-Roman,black
	gmt set MAP_GRID_CROSS_SIZE_PRIMARY=5p
	gmt set MAP_FRAME_PEN=thinnest,black
	gmt set MAP_TICK_LENGTH_PRIMARY=4p/2p
	gmt grd2cpt data/gauss_model.nc -Clapaz -R0/100/0/100 -Z -D
	gmt grdimage data/gauss_model.nc -R0/100/0/100 -Bxag+l"x (m)" -Byag+l"y (m)" -JX15c/15c -X4.5c -Y1.5c
gmt end
EOF

# 2. Set up the main frame script
cat << 'EOF' > main.sh
gmt begin
	# Plot smooth blue curve and dark red dots at all steps so far
	gmt convert data/lgd_trace.txt -qi0:${MOVIE_FRAME} > data.txt
	gmt plot data.txt -W0.05p,white -R0/100/0/100 -JX15c/15c -X4.5c -Y1.5c -i1,2
	gmt plot data.txt -Sc0.05i -Gred -i1,2
	gmt plot data.txt -W0.05p,yellow -R0/100/0/100 -JX15c/15c -i3,4
	gmt plot data.txt -Sc0.05i -Gblack -i3,4
gmt end
EOF

# 3. Run the movie
gmt movie main.sh -Sbpre.sh -Cxga -Tdata/lgd_trace.txt -Vi -D5 -Zs -Nlgd_anim -Fmp4

动画

查看完整脚本