如何计算一个二维地质模型的表面重力值和重力异常

核心概念区分

  1. 表面重力值:指在观测点(地表)测得的绝对重力值,由整个地球的质量、地球自转、地形以及地下局部密度不均共同贡献。直接计算非常复杂。
  2. 重力异常这是我们通常计算和关注的核心 。它指的是在观测点测得的实际重力值 减去该点的正常重力值(或区域背景场)后的剩余部分。这个"异常"主要反映了目标地质体(密度与围岩不同的部分)产生的引力效应。在正演计算中,我们通常直接计算这个"异常值"。

基本原理:牛顿万有引力定律

计算基础是:将密度不均匀的地质体分解成无数个质量微元 dm,计算每个微元对地面观测点 P 的引力垂直分量,然后在整个地质体空间进行积分。

对于一个二维模型,我们假设地质体在垂直于剖面的方向(Y方向)是无限延伸的。这极大地简化了计算,将三维体积分转化为二维面积分。

关键假设与模型设定

  1. 二维无限延伸:模型在Y方向无限长,密度仅随X(水平)和Z(深度)变化。这是计算的核心简化。
  2. 密度均匀:每个地质单元内部密度是均匀的(常密度)。
  3. 直角坐标系
    • X轴:水平方向,沿测量剖面。
    • Z轴:垂直向下为正。
    • 观测点位于地表 Z = 0 平面上。

核心公式(线段元公式)

最常用且稳定的是计算一个横截面为任意多边形的无限长柱体所产生的重力异常公式。这是一个闭式解析解,精度高。

对于一个由 n 个顶点 (x_i, z_i) 按顺序定义的多边形截面柱体(密度为 ρ,密度差为 Δρ 相对于背景密度),在地表观测点 (x_p, 0) 处的重力异常 Δg 为:

Δg = 2GΔρ Σ_{i=1}^{n} [ F_i ]

其中:

  • G 是万有引力常数(6.67430 × 10⁻¹¹ m³ kg⁻¹ s⁻²,计算时注意单位)。
  • Δρ 是地质体与围岩的密度差(kg/m³)。这是产生异常的源。
  • F_i 是与第 i 条边相关的函数,其表达式为:
matlab 复制代码
令:
x1 = x_i - x_p,   z1 = z_i
x2 = x_{i+1} - x_p, z2 = z_{i+1}  (当i=n时,x_{n+1}=x_1, z_{n+1}=z_1)

r1 = sqrt(x1² + z1²)
r2 = sqrt(x2² + z2²)

θ1 = atan2(z1, x1)  # 四象限反正切函数,结果在(-π, π]之间
θ2 = atan2(z2, x2)

# 确保角度差在正确范围内
dθ = θ2 - θ1
if dθ > π: dθ = dθ - 2π
if dθ < -π: dθ = dθ + 2π

A = x1 * (θ2 - θ1)
B = z1 * log(r2 / r1)
C = z2 - z1
D = x2 - x1

如果 D ≠ 0(边不垂直):
    F_i = θ2*x2 - θ1*x1 - (z2*θ2 - z1*θ1) + (C/D) * (A + B - z1*(θ2-θ1))
否则(边垂直,即 x1 = x2):
    F_i = A + B - z1*(θ2-θ1)

注意:这个公式看起来复杂,但它是数值稳定的,并且被广泛用于地球物理软件中。求和是对多边形的所有边进行的。

计算步骤

  1. 定义二维模型

    • 确定模型的剖面(X-Z平面)。
    • 用多边形顶点坐标 (x, z) 描述每个地质体(如背斜、矿体、断层等)的截面形状。
    • 为每个地质体赋予一个密度差 Δρ (相对于背景围岩)。Δρ > 0 产生正异常(如铁矿、高密度基岩),Δρ < 0 产生负异常(如盐丘、沉积盆地)。
  2. 定义观测点

    • 在模型地表 (z=0) 设置一系列观测点 x_p,通常沿X轴等间距分布,构成一条测线。
  3. 应用公式计算

    • 每个观测点 ,对每个地质体多边形 ,使用上述公式计算其贡献 Δg_i
    • 将所有地质体在该点的贡献累加Δg_total(x_p) = Σ Δg_i
    • 重复此过程,得到整条测线上的重力异常曲线 Δg(x)
  4. 单位换算

    • 在国际单位制(SI)中,Δg 的单位是 m/s²。但重力异常值很小,常用 毫伽(mGal) 表示。
    • 1 mGal = 10⁻⁵ m/s²
    • 计算时,将 GΔρ 用 SI 单位代入,得到结果后再乘以 10^5 转换为 mGal。

实例:一个简单背斜模型

假设一个背斜构造,其截面为一个拱形多边形。

  • 顶点坐标(单位:米):(0, 1000), (500, 800), (1000, 1000), (1000, 2000), (0, 2000)。形成一个顶部浅、两翼深的背斜。
  • 围岩密度 ρ_s = 2600 kg/m³
  • 背斜内核密度 ρ_a = 2700 kg/m³
  • 密度差 Δρ = 100 kg/m³
  • 观测点从 x = -500m1500m,间隔 50m

按照上述步骤,对每个观测点计算该多边形柱体产生的重力异常,结果将是一条在背斜中心上方(~500m处)取得最大值的平滑异常曲线。

可视化与解释

计算完成后,你可以绘制:

  1. 地质模型剖面图:显示多边形和密度分布。
  2. 重力异常曲线图:横坐标是观测点位置,纵坐标是重力异常值(mGal)。曲线形态反映了地下密度体的分布。

参考代码 反演计算二维地质模型的表面重力值和重力异常 www.3dddown.com/csa/96047.html

实用工具推荐

在实际工作中,几乎没有人手工计算。常用软件有:

  • GM-SYS(商业软件,集成于Oasis montaj和Geosoft平台):业界标准,功能强大。
  • MATLAB的Gravity工具箱
  • UBC-GIF的DCINV2D/FWD2D:开源的二维/三维重磁正反演代码。

总结来说,计算二维地质模型的重力异常,核心是使用"任意多边形横截面无限长柱体"的解析公式,对模型剖面上的每个地质体多边形在各个观测点进行循环计算并叠加。理解其原理、假设和局限性,对于正确建立模型和合理解释结果至关重要。

相关推荐
代码游侠2 小时前
应用——基于Linux的音乐播放器项目
linux·运维·笔记·学习·算法
智驱力人工智能3 小时前
仓库园区无人机烟雾识别:构建立体化、智能化的早期火灾预警体系 无人机烟雾检测 无人机动态烟雾分析AI系统 无人机辅助火灾救援系统
人工智能·opencv·算法·目标检测·架构·无人机·边缘计算
Christo33 小时前
2022-《Deep Clustering: A Comprehensive Survey》
人工智能·算法·机器学习·数据挖掘
Yzzz-F3 小时前
牛客周赛round123 G小红出千[补题][滑动窗口]
算法
肆悟先生4 小时前
3.16 含有可变参数的函数
c++·算法
步步为营DotNet4 小时前
深度解析.NET中属性(Property)的幕后机制:优化数据访问与封装
java·算法·.net
Swift社区4 小时前
LeetCode 454 - 四数相加 II
java·算法·leetcode
tokepson4 小时前
反向传播
深度学习·算法·ai·反向传播