Skip to content

redplanet.helper_functions.geodesy.move_forward

move_forward(
    start: list | numpy.ndarray,
    azimuth: float | list | numpy.ndarray,
    distance: float,
) -> ndarray

Calculate the coordinates of a point on the surface of Mars after moving a certain geodesic distance along a given angle.

Parameters:

Name Type Description Default
start list | np.ndarray

Array of shape (2) containing the longitude and latitude coordinates of the starting point.

required
azimuth float | list | np.ndarray

Array of shape (n_points) containing the azimuth angle(s) to "move forward" in degrees, where 0 is north and 90 is east.

required
distance float

The geodesic distance to move forward in meters.

required

Returns:

Type Description
np.ndarray

Array of shape (2) or (n_points, 2) [? verify this] containing the longitude and latitude coordinates of the point(s) after moving forward.

See Also

For more details about the reference ellipsoid and geodesic calculations, see redplanet.helper_functions.geodesy.get_distance.

Source code in src/redplanet/helper_functions/geodesy.py
def move_forward(
    start    : list | np.ndarray,
    azimuth  : float | list | np.ndarray,
    distance : float,
) -> np.ndarray:
    """
    Calculate the coordinates of a point on the surface of Mars after moving a certain geodesic distance along a given angle.

    Parameters
    ----------
    start : list | np.ndarray
        Array of shape (2) containing the longitude and latitude coordinates of the starting point.
    azimuth : float | list | np.ndarray
        Array of shape (n_points) containing the azimuth angle(s) to "move forward" in degrees, where 0 is north and 90 is east.
    distance : float
        The geodesic distance to move forward in meters.

    Returns
    -------
    np.ndarray
        Array of shape (2) or (n_points, 2) [? verify this] containing the longitude and latitude coordinates of the point(s) after moving forward.

    See Also
    --------
    For more details about the reference ellipsoid and geodesic calculations, see `redplanet.helper_functions.geodesy.get_distance`.
    """
    geodesic = __get_mars_geodesic()
    return geodesic.direct(start, azimuth, distance)[:,:2]