Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename "point_mass_gravity" to "point_gravity" #280

Merged
merged 10 commits into from
Nov 23, 2021
2 changes: 1 addition & 1 deletion doc/api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Forward modelling
.. autosummary::
:toctree: generated/

point_mass_gravity
point_gravity
prism_gravity
tesseroid_gravity
prism_layer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
in Cartesian or in geocentric spherical coordinate systems. We will compute the
gravitational acceleration generated by a set of point masses on a computation
grid given in Cartesian coordinates using the
:func:`harmonica.point_mass_gravity` function.
:func:`harmonica.point_gravity` function.
"""
import harmonica as hm
import verde as vd
Expand All @@ -41,7 +41,7 @@
)

# Compute the downward component of the gravitational acceleration
gravity = hm.point_mass_gravity(
gravity = hm.point_gravity(
coordinates, points, masses, field="g_z", coordinate_system="cartesian"
)
print(gravity)
Expand Down
2 changes: 1 addition & 1 deletion harmonica/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from .io import load_icgem_gdf
from .isostasy import isostasy_airy
from .gravity_corrections import bouguer_correction
from .forward.point_mass import point_mass_gravity
from .forward.point import point_gravity, point_mass_gravity
from .forward.tesseroid import tesseroid_gravity
from .forward.prism import prism_gravity
from .forward.prism_layer import prism_layer, DatasetAccessorPrismLayer
Expand Down
34 changes: 33 additions & 1 deletion harmonica/forward/point_mass.py → harmonica/forward/point.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
"""
Forward modelling for point masses
"""
import warnings
import numpy as np
from numba import jit, prange

from ..constants import GRAVITATIONAL_CONST
from .utils import check_coordinate_system, distance_cartesian, distance_spherical_core


def point_mass_gravity(
def point_gravity(
coordinates,
points,
masses,
Expand Down Expand Up @@ -215,6 +216,37 @@ def point_mass_gravity(
return result.reshape(cast.shape)


def point_mass_gravity(
coordinates,
points,
masses,
field,
coordinate_system="cartesian",
parallel=True,
dtype="float64",
):
"""
DEPRECATED. Use :func:`harmonica.point_gravity` instead.

This function exists to support backward compatibility until next release.
"""
warnings.warn(
"The 'point_mass_gravity' function has been renamed to 'point_gravity' "
+ "and will be deprecated on the next release, "
+ "please use 'point_gravity' instead.",
FutureWarning,
)
return point_gravity(
coordinates=coordinates,
points=points,
masses=masses,
field=field,
coordinate_system=coordinate_system,
parallel=parallel,
dtype=dtype,
)


def dispatcher(coordinate_system, parallel):
"""
Return the appropriate forward model function
Expand Down
2 changes: 1 addition & 1 deletion harmonica/forward/tesseroid.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

from ..constants import GRAVITATIONAL_CONST
from .utils import distance_spherical
from .point_mass import (
from .point import (
kernel_potential_spherical,
kernel_g_z_spherical,
)
Expand Down
22 changes: 11 additions & 11 deletions harmonica/tests/test_eq_sources_cartesian.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import verde as vd
import verde.base as vdb

from .. import EquivalentSources, EQLHarmonic, point_mass_gravity
from .. import EquivalentSources, EQLHarmonic, point_gravity
from ..equivalent_sources.cartesian import greens_func_cartesian
from ..equivalent_sources.utils import (
jacobian_numba_serial,
Expand Down Expand Up @@ -57,7 +57,7 @@ def test_equivalent_sources_cartesian():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(40, 40), extra_coords=0)
# Get synthetic data
data = point_mass_gravity(coordinates, points, masses, field="g_z")
data = point_gravity(coordinates, points, masses, field="g_z")

# The interpolation should be perfect on the data points
eqs = EquivalentSources()
Expand All @@ -69,7 +69,7 @@ def test_equivalent_sources_cartesian():
upward = 0
shape = (60, 60)
grid = vd.grid_coordinates(region=region, shape=shape, extra_coords=upward)
true = point_mass_gravity(grid, points, masses, field="g_z")
true = point_gravity(grid, points, masses, field="g_z")
npt.assert_allclose(true, eqs.predict(grid), rtol=1e-3)

# Test grid method
Expand All @@ -80,7 +80,7 @@ def test_equivalent_sources_cartesian():
point1 = (region[0], region[2])
point2 = (region[0], region[3])
profile = eqs.profile(point1, point2, upward, shape[0])
true = point_mass_gravity(
true = point_gravity(
(profile.easting, profile.northing, profile.upward), points, masses, field="g_z"
)
npt.assert_allclose(true, profile.scalars, rtol=1e-3)
Expand All @@ -98,7 +98,7 @@ def test_equivalent_sources_small_data_cartesian():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(8, 8), extra_coords=0)
# Get synthetic data
data = point_mass_gravity(coordinates, points, masses, field="g_z")
data = point_gravity(coordinates, points, masses, field="g_z")

# The interpolation should be perfect on the data points
eqs = EquivalentSources(depth=500)
Expand All @@ -115,7 +115,7 @@ def test_equivalent_sources_small_data_cartesian():
upward = 20
shape = (8, 8)
grid = vd.grid_coordinates(region=region, shape=shape, extra_coords=upward)
true = point_mass_gravity(grid, points, masses, field="g_z")
true = point_gravity(grid, points, masses, field="g_z")
npt.assert_allclose(true, eqs.predict(grid), rtol=0.08)

# Test grid method
Expand All @@ -126,7 +126,7 @@ def test_equivalent_sources_small_data_cartesian():
point1 = (region[0], region[2])
point2 = (region[0], region[3])
profile = eqs.profile(point1, point2, upward, 10)
true = point_mass_gravity(
true = point_gravity(
(profile.easting, profile.northing, profile.upward), points, masses, field="g_z"
)
npt.assert_allclose(true, profile.scalars, rtol=0.05)
Expand Down Expand Up @@ -253,7 +253,7 @@ def test_equivalent_sources_points_depth():
upward = np.arange(25, dtype=float).reshape((5, 5))
coordinates = (easting, northing, upward)
# Get synthetic data
data = point_mass_gravity(coordinates, points, masses, field="g_z")
data = point_gravity(coordinates, points, masses, field="g_z")

# Test with constant depth
eqs = EquivalentSources(depth=1.3e3, depth_type="constant")
Expand Down Expand Up @@ -292,7 +292,7 @@ def test_equivalent_sources_custom_points_cartesian():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(5, 5), extra_coords=0)
# Get synthetic data
data = point_mass_gravity(coordinates, points, masses, field="g_z")
data = point_gravity(coordinates, points, masses, field="g_z")

# Pass a custom set of point sources
points_custom = tuple(
Expand Down Expand Up @@ -355,7 +355,7 @@ def test_equivalent_sources_cartesian_parallel():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(40, 40), extra_coords=0)
# Get synthetic data
data = point_mass_gravity(coordinates, points, masses, field="g_z")
data = point_gravity(coordinates, points, masses, field="g_z")

# The predictions should be equal whether are run in parallel or in serial
eqs_serial = EquivalentSources(parallel=False)
Expand Down Expand Up @@ -386,7 +386,7 @@ def test_backward_eqlharmonic(depth_type):
upward = np.arange(25, dtype=float).reshape((5, 5))
coordinates = (easting, northing, upward)
# Get synthetic data
data = point_mass_gravity(coordinates, points, masses, field="g_z")
data = point_gravity(coordinates, points, masses, field="g_z")

# Fit EquivalentSources instance
eqs = EquivalentSources(depth=1.3e3, depth_type=depth_type)
Expand Down
16 changes: 8 additions & 8 deletions harmonica/tests/test_eq_sources_spherical.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import xarray.testing as xrt
import verde as vd

from .. import EquivalentSourcesSph, EQLHarmonicSpherical, point_mass_gravity
from .. import EquivalentSourcesSph, EQLHarmonicSpherical, point_gravity
from .utils import run_only_with_numba


Expand All @@ -36,7 +36,7 @@ def test_equivalent_sources_spherical():
region=region, shape=(40, 40), extra_coords=radius
)
# Get synthetic data
data = point_mass_gravity(
data = point_gravity(
coordinates, points, masses, field="g_z", coordinate_system="spherical"
)

Expand All @@ -50,7 +50,7 @@ def test_equivalent_sources_spherical():
upward = radius
shape = (60, 60)
grid = vd.grid_coordinates(region=region, shape=shape, extra_coords=upward)
true = point_mass_gravity(
true = point_gravity(
grid, points, masses, field="g_z", coordinate_system="spherical"
)
npt.assert_allclose(true, eqs.predict(grid), rtol=1e-3)
Expand All @@ -75,7 +75,7 @@ def test_equivalent_sources_small_data_spherical():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(8, 8), extra_coords=radius)
# Get synthetic data
data = point_mass_gravity(
data = point_gravity(
coordinates, points, masses, field="g_z", coordinate_system="spherical"
)

Expand All @@ -94,7 +94,7 @@ def test_equivalent_sources_small_data_spherical():
upward = radius + 2e3
shape = (8, 8)
grid = vd.grid_coordinates(region=region, shape=shape, extra_coords=upward)
true = point_mass_gravity(
true = point_gravity(
grid, points, masses, field="g_z", coordinate_system="spherical"
)
npt.assert_allclose(true, eqs.predict(grid), rtol=0.05)
Expand All @@ -119,7 +119,7 @@ def test_equivalent_sources_custom_points_spherical():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(5, 5), extra_coords=radius)
# Get synthetic data
data = point_mass_gravity(
data = point_gravity(
coordinates, points, masses, field="g_z", coordinate_system="spherical"
)

Expand Down Expand Up @@ -181,7 +181,7 @@ def test_equivalent_sources_spherical_parallel():
region=region, shape=(40, 40), extra_coords=radius
)
# Get synthetic data
data = point_mass_gravity(
data = point_gravity(
coordinates, points, masses, field="g_z", coordinate_system="spherical"
)

Expand Down Expand Up @@ -215,7 +215,7 @@ def test_backward_eqlharmonicspherical():
# Define a set of observation points
coordinates = vd.grid_coordinates(region=region, shape=(8, 8), extra_coords=radius)
# Get synthetic data
data = point_mass_gravity(
data = point_gravity(
coordinates, points, masses, field="g_z", coordinate_system="spherical"
)

Expand Down
Loading