diff --git a/regional_mom6/regional_mom6.py b/regional_mom6/regional_mom6.py index f8daa9b6..0818c14a 100644 --- a/regional_mom6/regional_mom6.py +++ b/regional_mom6/regional_mom6.py @@ -21,7 +21,7 @@ "motu_requests", "dz", "angle_between", - "quad_area", + "quadilateral_area", "rectangular_hgrid", "experiment", "segment", @@ -300,7 +300,7 @@ def angle_between(v1, v2, v3): # Borrowed from grid tools (GFDL) -def quad_area(lat, lon): +def quadilateral_area(lat, lon): """Returns area of spherical quadrilaterals (bounded by great arcs).""" # x, y, z are 3D coordinates on the unit sphere @@ -356,7 +356,7 @@ def rectangular_hgrid(λ, φ): lon, lat = np.meshgrid(λ, φ) - area = quad_area(lat, lon) * R**2 + area = quadilateral_area(lat, lon) * R**2 attrs = { "tile": { diff --git a/tests/test_grid_generation.py b/tests/test_grid_generation.py index 3a7f2da0..d39bed9e 100644 --- a/tests/test_grid_generation.py +++ b/tests/test_grid_generation.py @@ -1,7 +1,7 @@ import numpy as np import pytest from regional_mom6 import angle_between -from regional_mom6 import quad_area +from regional_mom6 import quadilateral_area from regional_mom6 import rectangular_hgrid import xarray as xr @@ -18,17 +18,21 @@ def test_angle_between(v1, v2, v3, true_angle): # create a lat-lon mesh that covers 1/4 of the North Hemisphere -lon, lat = np.meshgrid(np.linspace(0, 90, 5), np.linspace(0, 90, 5)) +lon1, lat1 = np.meshgrid(np.linspace(0, 90, 5), np.linspace(0, 90, 5)) + +# create a lat-lon mesh that covers 1/4 of the whole globe +lon2, lat2 = np.meshgrid(np.linspace(-45, 45, 5), np.linspace(-90, 90, 5)) @pytest.mark.parametrize( ("lat", "lon", "true_area"), [ - (lat, lon, 0.5 * np.pi), + (lat1, lon1, 0.5 * np.pi), + (lat2, lon2, np.pi), ], ) -def test_quad_area(lat, lon, true_area): - assert np.isclose(np.sum(quad_area(lat, lon)), true_area) +def test_quadilateral_area(lat, lon, true_area): + assert np.isclose(np.sum(quadilateral_area(lat, lon)), true_area) # a simple test that rectangular_hgrid runs without erroring