此脚本可用于在平面图上绘制轨迹。例子为绘制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
动画
查看完整脚本。