題目資料:
a) 計算下列五項:
b) 假設同一位置、同一實測重力值,但測站位於海洋表面,下方水深正好 487.9 m,重新計算自由空氣異常與布格異常。
γ₀ = 978032.5337 × (1 + 0.0053024 sin²φ − 0.0000058 sin²2φ) mGal| 項目 | 數值 |
|---|---|
| i) 理論重力 | 980,533.82 mGal |
| ii) 自由空氣校正 | +150.58 mGal |
| iii) 布格校正 | –54.61 mGal |
| iv) 自由空氣異常 | +32.99 mGal |
| v) 布格異常 | +87.60 mGal |
| 項目 | 數值 |
|---|---|
| 自由空氣校正 | 0.00 mGal |
| 海洋布格校正(缺失岩石) | +33.57 mGal |
| 自由空氣異常 | +183.57 mGal |
| 布格異常 | +150.00 mGal |
# -*- coding: utf-8 -*-
"""
重力站計算程式 - 題目 8-2
支援陸地與海洋兩種情境
"""
import math
# ==============================
# 常數定義(國際標準)
# ==============================
A = 978032.5337
B = 0.0053024
C = 0.0000058
FREE_AIR_RATE = 0.3086
BOUGUER_CONSTANT = 0.041908637 # mGal/m/(g/cm³)
RHO_ROCK = 2.67
RHO_WATER = 1.03
# ==============================
# 輸入資料
# ==============================
lat = 48.1195
elevation_land = 487.9
g_obs = 980717.39
water_depth = 487.9
# ==============================
# 計算理論重力
# ==============================
def theoretical_gravity(lat_deg):
phi = math.radians(lat_deg)
sin2_phi = math.sin(phi)**2
sin2_2phi = math.sin(2*phi)**2
gamma_0 = A * (1 + B * sin2_phi - C * sin2_2phi)
return round(gamma_0, 2)
gamma_0 = theoretical_gravity(lat)
print("=== 重力站計算結果 ===\n")
print(f"緯度:{lat}°N")
print(f"理論正常重力 γ₀ = {gamma_0} mGal\n")
# ==============================
# a) 陸地站
# ==============================
print("【a】陸地重力站(海拔 {elevation_land} m)".format(elevation_land=elevation_land))
fac = round(FREE_AIR_RATE * elevation_land, 2)
bouguer_correction = round(-BOUGUER_CONSTANT * RHO_ROCK * elevation_land, 2)
faa = round(g_obs - (gamma_0 + fac), 2)
ba = round(g_obs - (gamma_0 + fac + bouguer_correction), 2)
print(f"i) 理論重力 = {gamma_0} mGal")
print(f"ii) 自由空氣校正 = +{fac} mGal")
print(f"iii) 布格校正 = {bouguer_correction} mGal")
print(f"iv) 自由空氣異常 = {faa:+.2f} mGal")
print(f"v) 布格異常 = {ba:+.2f} mGal\n")
# ==============================
# b) 海洋站
# ==============================
print("【b】海洋重力站(海平面,水深 {water_depth} m)".format(water_depth=water_depth))
fac_ocean = 0.0
delta_rho = RHO_ROCK - RHO_WATER
ocean_bouguer_correction = round(-BOUGUER_CONSTANT * delta_rho * water_depth, 2)
faa_ocean = round(g_obs - (gamma_0 + fac_ocean), 2)
ba_ocean = round(g_obs - (gamma_0 + fac_ocean + ocean_bouguer_correction), 2)
print(f"自由空氣校正 = {fac_ocean} mGal")
print(f"海洋布格校正(缺失岩石)= +{abs(ocean_bouguer_correction):.2f} mGal")
print(f"自由空氣異常 = {faa_ocean:+.2f} mGal")
print(f"布格異常 = {ba_ocean:+.2f} mGal")
=== 重力站計算結果 ===
緯度:48.1195°N
理論正常重力 γ₀ = 980533.82 mGal
【a】陸地重力站(海拔 487.9 m)
i) 理論重力 = 980533.82 mGal
ii) 自由空氣校正 = +150.58 mGal
iii) 布格校正 = -54.61 mGal
iv) 自由空氣異常 = +32.99 mGal
v) 布格異常 = +87.60 mGal
【b】海洋重力站(海平面,水深 487.9 m)
自由空氣校正 = 0.0 mGal
海洋布格校正(缺失岩石)= +33.57 mGal
自由空氣異常 = +183.57 mGal
布格異常 = +150.00 mGal