diff --git a/harmonica/gravity_corrections.py b/harmonica/gravity_corrections.py index 46cb3faff..09bc00e31 100644 --- a/harmonica/gravity_corrections.py +++ b/harmonica/gravity_corrections.py @@ -1,5 +1,10 @@ """ -Gravity corrections like Normal Gravity and Bouguer corrections. +Gravity corrections like Bouguer corrections, free air, spherical cap and +atmospheric. + +Refer to Hinze(2005) for formula. +http://library.seg.org/doi/10.1190/1.1988183 + """ import numpy as np @@ -7,7 +12,7 @@ def bouguer_correction(topography, density_crust=2670, density_water=1040): - r""" + """ Gravitational effect of topography using a Bouguer plate approximation Used to remove the gravitational attraction of topography above the @@ -69,3 +74,72 @@ def bouguer_correction(topography, density_crust=2670, density_water=1040): density[oceans] = -1 * (density_water - density_crust) bouguer = 1e5 * 2 * np.pi * GRAVITATIONAL_CONST * density * topography return bouguer + +def atmospheric_correction(topography): + """ + Calculates atmospheric correction as per Hinze 2005 eqn 5. + + .. math:: + + g_{atm} = 0.874 - 9.9E-5 h + 3.56E-9 h^2 + + in which :math:`h` is the elevation of the station above the ellipsoid + and :math:`g_{atm}` is the gravitational effect of the atmospheric the air + mass in mGal. + + Parameters + ---------- + topography : array or :class:`xarray.DataArray` + Topography height and bathymetry depth in meters. + Should be referenced to the ellipsoid (ie, geometric heights). + + + Returns + ------- + atmos_correction : array or :class:`xarray.DataArray` + The gravitational effect of the atmosphere in mGal + + """ + atmos_correction = 0.874 - 9.9e-05 * topography + 3.56e-09 * topography**2 + + return atmos_correction + + +def spherical_bouguer_cap_correction(topography): + """ + Calculates spherical cap correction for the Bouguer slab as per Hinze 2013. + + Gravity and Magnetic Exploration, Cambridge Press 2013 + + .. math:: + + g_{spher} = 0.001464139 h - 3.533047e-07 h^{2} + 1.002709e-13 h^{3} + + 3.002407E-18 h^{4} + + in which :math:`h` is the elevation of the station above the ellipsoid + and :math:`g_{spher}` is the gravitational effect of the spherical cap to + 166.7 km in mGal. + + Parameters + ---------- + topography : array or :class:`xarray.DataArray` + Topography height and bathymetry depth in meters. + Should be referenced to the ellipsoid (ie, geometric heights). + + + Returns + ------- + spher_cap_corr : array or :class:`xarray.DataArray` + The gravitational effect of the spherical cap in mGal + + """ + spher_cap_corr = 0.001464139 * topography - 3.533047e-07 * topography**2 + + 1.002709e-13 * topography**3 + 3.002407E-18 * topography**4 + + return spher_cap_corr + + + + + + \ No newline at end of file