✍️ 朱邓达  •  📅 2025-04-17  •  ⚡ 2025-09-22

计算静态格林函数

Python中计算静态格林函数的主函数为 compute_static_grn() ,C模块为 static_greenfn

建议先阅读完 计算动态格林函数 部分。静态情况与动态情况采取的计算方法一致,只是推导细节会有不同,详见 初稿

示例程序

假设在 milrow 模型中,震源深度2km,接收点位于地表。北向(X/km)在[-3,3]范围内等距间隔 0.15 km 采样,东向(Y/km)在[-2.5,2.5]范围内等距间隔 0.15 km 采样,计算这些点上的静态格林函数。

depsrc=2
deprcv=0

x1=-3
x2=3
dx=0.15

y1=-2.5
y2=2.5
dy=0.15
# 输出到NetCDF网格文件
grt static greenfn -Mmilrow -D${depsrc}/${deprcv} -X$x1/$x2/$dx -Y$y1/$y2/$dy -Ostgrn.nc

结果输出为 NetCDF 网格格式,方便使用 GMT 等软件处理和绘制。 如下使用 ncdump -h 命令可查看网格文件基本信息。

netcdf stgrn {
dimensions:
	north = 41 ;
	east = 34 ;
variables:
	double north(north) ;
	double east(east) ;
	double EXZ(north, east) ;
	double EXR(north, east) ;
	double VFZ(north, east) ;
	double VFR(north, east) ;
	double HFZ(north, east) ;
	double HFR(north, east) ;
	double HFT(north, east) ;
	double DDZ(north, east) ;
	double DDR(north, east) ;
	double DSZ(north, east) ;
	double DSR(north, east) ;
	double DST(north, east) ;
	double SSZ(north, east) ;
	double SSR(north, east) ;
	double SST(north, east) ;

// global attributes:
		:src_va = 4.9 ;
		:src_vb = 2.8 ;
		:src_rho = 2.6 ;
		:rcv_va = 3.4 ;
		:rcv_vb = 1.7 ;
		:rcv_rho = 2.3 ;
		:calc_upar = 0 ;
}