def test_latitude_dependend_values():
    # From
    # Deakin, R.E. and Hunter, M.N., 2010. Geometric geodesy part A. Lecture
    # Notes, School of Mathematical & Geospatial Sciences, RMIT University,
    # Melbourne, Australia.
    # pp. 87 - 88
    ell = Ellipsoid('GRS80')
    lat = -(37 + 48 / 60 + 33.1234 / 3600) * u.deg

    np.testing.assert_almost_equal(ell._w(lat).value, 0.998741298, decimal=9)
    np.testing.assert_almost_equal(ell._v(lat).value, 1.002101154, decimal=9)
    np.testing.assert_almost_equal(ell.meridian_curvature_radius(lat).value,
                                   6359422.962,
                                   decimal=3)
    np.testing.assert_almost_equal(
        ell.prime_vertical_curvature_radius(lat).value, 6386175.289, decimal=3)
    np.testing.assert_almost_equal(ell.mean_curvature(lat).value,
                                   1 / 6372785.088,
                                   decimal=16)
    np.testing.assert_almost_equal(ell.meridian_arc_distance(0.0 * u.deg,
                                                             lat).value,
                                   4186320.340,
                                   decimal=3)
Exemple #2
0
    def gravity_ell(self,
                    lat: u.deg,
                    height: u.m,
                    ell: Ellipsoid,
                    elastic: bool = True) -> u.m / u.s**2:
        """Return permanent tidal gravity variation along the ellipsoidal normal.

        Parameters
        ----------
        lat : ~astropy.units.Quantity
            Geodetic latitude.
        height : ~astropy.units.Quantity
            Geodetic height.
        ell : ~pygeoid.coordinates.ellipsoid.Ellipsoid
            Reference ellipsoid to which geodetic coordinates are referenced to.
        elastic : bool, optional
            If True then the Earth is elastic (deformable)
            and gravity change is multiplied by the gravimetric factor
            specified in the class instance.

        Returns
        -------
        delta_g : ~astropy.units.Quantity
            Permanent tidal potential gravity variation.

        """
        pvcr = ell.prime_vertical_curvature_radius(lat.radian) * u.m

        delta_g = 2 / 3 * self.coeff / self.r0**2 * (
            (pvcr *
             (3 - 2 * ell.e2) + 3 * height) * np.sin(lat)**2 - (pvcr + height))

        if elastic:
            delta_g *= self.gravimetric_factor

        return -delta_g