根据震级大小绘制不同大小的圆点并进行统计

示例贡献者:

陈箫翰


GMT 配合使用 Bash 脚本命令,可以实现相当强大的功能(参考 Bash 编程基础知识 )。 例如本例根据地震震级大小进行地震数量统计,并计算合适的直径绘制不同大小的圆。

#!/usr/bin/env bash
gmt begin ex009
        # 从GMT远程服务器下载示例地震目录文件
        gmt which -Gl @quakes_07.txt

        gmt basemap -JM10c -R308/352/-12/24 -Baf
        gmt grdimage @earth_relief_10m_p -Cgeo
        gmt colorbar -Bxaf -C
        # 示例文件三列分别为经度、纬度、震级。
        # 根据震级绘制不同大小的圆点。用户可以根据自己数据震级的最大最小值,调整圆点直径的计算参数
        gawk '{print $1, $2, 0.2*($3-4.0)}' quakes_07.txt | gmt plot -Scc -Gred -W0.1

        # 统计不同震级
        c4=$(gawk '4<=$3 && $3<5 {count++}END{print count}' quakes_07.txt | tr -d '\n\r')
        c5=$(gawk '5<=$3 && $3<6 {count++}END{print count}' quakes_07.txt | tr -d '\n\r')
        c6=$(gawk '6<=$3 && $3<7 {count++}END{print count}' quakes_07.txt | tr -d '\n\r')

        # 输出统计结果
        gmt basemap -JX5c/-5c -R0/10/0/10 -Y4c -X10.5c -Brt
        #
        echo 1 2 | gmt plot -Sc0.2c -Gred -W0.1p
        echo 2 2 '4<=mag<5:' ${c4} | gmt text -F+f14p+jML

        echo 1 4 | gmt plot -Sc0.4c -Gred -W0.1p
        echo 2 4 '5<=mag<6:' ${c5} | gmt text -F+f14p+jML

        echo 1 6 | gmt plot -Sc0.6c -Gred -W0.1p
        echo 2 6 '6<=mag<7:' ${c6} | gmt text -F+f14p+jML
gmt end show
../../_images/cbaa40761dca56aee43271d2f794ce04.png