我在使用 PyTomoATT 基于 crust1.0 model 生成 ATT模型的时候,发现 0 km插值数据有问题。
问题原因在于散点 griddata 插值是采用凸包。由于crust1.0 模型的散点,在不同经纬度上,最浅的深度不一样。例如,有的地方最浅是 2 km(地下2km),还有的地方最浅能到 -5 km (地上5km),这导致插值 0 km的时候,可能附近经纬度的最浅深度都只有 2 km,无奈只能从很远的位置(那些地方最浅能到地上)插值过来(因为是凸包)。就导致插值出了问题。
我准备了下面这个例子:
20251201-PTA生成crust1.0模型问题.zip
运行 reason.ipynb 能看到griddata 插值的问题
运行 1_new_interpolate.ipynb 可以比较旧插值 和 提交的新的插值方式
是这样更新的插值方式,不使用griddata进行三维散点插值。通过搜索局部一维模型,并进行局部进行一维插值。这样效率更高,同时也避免了凸包插值的问题。
更新放在了这个 pull request里面。请随意参考。
#34