✍️ 朱邓达  •  📅 2025-04-17

合成静态位移

Python中合成静态位移的主函数为 gen_syn_from_gf_*() (*表示对不同震源)(与合成动态位移的函数共用) ,C模块为 static_syn

使用上节计算的格林函数,合成静态位移。为方便画图,以下结果都使用ZNE分量。

不同震源

以下绘图使用 GMT 绘制。这里提供计算和绘图的 Python 脚本和 Shell 脚本供下载参考。

Shell Scripts

Python Scripts

爆炸源

标量矩 1e24 dyne·cm。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -N -Gstgrn.nc -Ostsyn_ex.nc
../../_images/syn_ex1.svg

单力源

北向力 \(f_N=1\),东向力 \(f_E=-0.5\),垂直向下的力 \(f_Z=2\),单位 1e16 dyne。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e16 -F1/-0.5/2 -N -Gstgrn.nc -Ostsyn_sf.nc
../../_images/syn_sf1.svg

剪切源

断层走向33°,倾角50°,滑动角120°,标量矩 1e24 dyne·cm。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -M33/50/120 -N -Gstgrn.nc -Ostsyn_dc.nc
../../_images/syn_dc1.svg

这里如果改变倾角为90°,滑动角0°,就可以看到清晰的蝴蝶状辐射花样。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -M33/90/0 -N -Gstgrn.nc -Ostsyn_dc2.nc
../../_images/syn_dc2.svg

张裂源

断层走向33°,倾角50°,标量矩 1e24 dyne·cm。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -M33/50 -N -Gstgrn.nc -Ostsyn_ts.nc
../../_images/syn_ts1.svg

沙滩球仅绘制了张裂源中的 DC+CLVD 分量

这里如果改变倾角为90°,就可以看到清晰的对称辐射花样。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -M33/90 -N -Gstgrn.nc -Ostsyn_ts2.nc
../../_images/syn_ts2.svg

沙滩球仅绘制了张裂源中的 DC+CLVD 分量

矩张量源

\(M_{xx}=0.1, M_{xy}=-0.2, M_{xz}=1.0, M_{yy}=0.3, M_{yz}=-0.5, M_{zz}=-2.0\),单位 1e24 dyne·cm, 其中X为北向,Y为东向,Z为垂直向下

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -T0.1/-0.2/1.0/0.3/-0.5/-2.0 -N -Gstgrn.nc -Ostsyn_mt.nc
../../_images/syn_mt1.svg

若指定 \(M_{xy}=-0.2\),其它均为零,则为纯剪切。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -T0/-0.2/0/0/0/0 -N -Gstgrn.nc -Ostsyn_mt2.nc
../../_images/syn_mt2.svg

指定新的 XY 网格

以上示例结果中, XY 网格位置都沿用了静态格林函数计算时传入的 XY 网格。

程序也支持在合成阶段指定新的 XY 网格,此时每个节点将使用最近震中距的格林函数来进行合成, 因此这是一种近似方法,程序会打印震中距之差的统计信息,以方便评估近似效果。 但近似好处是一旦静态格林函数计算好,合成阶段使用新的网格也可以复用格林函数,无需再计算。

以下以一个与上面相同的走滑断层作为示例进行计算,选取了间隔稍大的网格。

# 从网格文件中读取格林函数,再将合成结果写入新网格
grt static syn -S1e24 -M33/90/0 -N -Gstgrn.nc -OstsynXY_dc2.nc -X-3/3/0.2 -Y-2.5/2.5/0.25