gmt-template/showxyz.sh

89 lines
2.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# 包含GMT自带脚本文件 其中包含了一些有用的功能 比如获取网格文件的范围
. gmt_shell_functions.sh
# 本脚本的功能为显示一个规则网的三列数据
# 我们会用到之前编写的另几个脚本来生成结果图片 这里专门提供了一个参数来传递参数到调用的相应脚本中
data='null'
range='null'
overwriteRange='null'
overwrite=0
interval='null'
cols='0,1,2'
script='null'
outname='null'
geoframe=0
nogridfile=0
while getopts "ht:o:r:i:c:s:gn" arg
do
case $arg in
h)
printf "plot xyz like data \nAuthor: Yi Zhang (zhangyi.cugwuhan@gmail.com)\n"
printf "usage: ${0##*/} -t<table-file> -i<interval>/<interval> [-o<outfile-name>] [-r<w>/<e>/<s>/<n>] [-c<col0>,<col1>,<col2>...] [-s<scripts>] [-g] [-n] \n"
printf "%s\t%s\n" "-t" "input table file."
printf "%s\t%s\n" "-o" "output file name, the input table name will be used if this option is absent."
printf "%s\t%s\n" "-i" "data intervals in x and y directions."
printf "%s\t%s\n" "-r" "data range. The template will ditect the input data range automaticly, the use of this option will overwrite the range."
printf "%s\t%s\n" "-c" "select data columns will be used for plotting, the default is 0,1,2."
printf "%s\t%s\n" "-s" "additional commands that will be pasted down to plotting scripts."
printf "%s\t%s\n" "-g" "the default poltting script used here is \"gmtxy-image\", set -g option to use \"gmtsph-regional\"."
printf "%s\t%s\n" "-n" "do not save .nc file, the default will save a output .nc grid file."
exit 0;;
t)
data=$OPTARG;;
o)
outname=$OPTARG;;
i)
interval=$OPTARG;;
r)
overwrite=1
overwriteRange=$OPTARG;;
c)
cols=$OPTARG;;
s)
script=$OPTARG;;
g)
geoframe=1;;
n)
nogridfile=1;;
?)
printf "error: unknow argument\nuse -h option to see help information\n"
exit 1;;
esac
done
if [[ $data == 'null' || $interval == 'null' ]]; then
printf "error: no input file name or no -i option setted\nuse -h option to see help information\n"
exit 1
else
if [[ $outname == 'null' ]]; then
ncfile=${data%.*}.nc
else
ncfile=${outname}
fi
# 获取网格范围
if [[ $overwrite == 1 ]]; then
range=${overwriteRange}
else
range=$(gmt_get_region ${data})
fi
xyz2grd ${data} -G${ncfile} -R${range} -I${interval} -i${cols}
if [[ $geoframe == 1 ]]; then
if [[ $script == 'null' ]]; then
gmtsph-regional -i ${ncfile}
else
gmtsph-regional -i ${ncfile} ${script}
fi
else
if [[ $script == 'null' ]]; then
gmtxy-image -i ${ncfile}
else
gmtxy-image -i ${ncfile} ${script}
fi
fi
if [[ $nogridfile == 1 ]]; then
rm ${ncfile}
fi
fi