Skip to content

Trigonometry🍋

angle_between_points(p1, p2, dip_convention=DipDownward.NEGATIVE) 🍋

Compute angle between two points.

Parameters:

Name Type Description Default
p1 ndarray

Point in 2 or 3 dimension.

required
p2 ndarray

Point in 2 or 3 dimension.

required
dip_convention DipDownward

Convention of downward dip angle sign.

NEGATIVE

Returns:

Type Description
Tuple[float, float]

Angles in a given Metric convention.

angle_between_vectors(v1, v2) 🍋

Compute the angle between two vectors using the dot product.

Parameters:

Name Type Description Default
v1 ndarray

first cartesian vector.

required
v2 ndarray

second cartesian vector.

required

Returns:

Type Description
float

Angle between two vectors in radians.

normalize(a, center) 🍋

(Adapted from Apach Commons normalizeAngle, MathUtils sources) Normalize an angle in a 2pi; wide interval around a center value.

This method has three main uses:

  • normalize an angle between 0 and 2pi: a = normalize(a, np.pi)
  • normalize an angle between -pi and +pi: a = normalize(a, 0.0)
  • compute the angle between two defining angular positions: angle = normalize(end, start) - start

Parameters:

Name Type Description Default
a float

angle to be normalized (in radians).

required
center float

center value in radians.

required

Returns:

Type Description
float

normalized angle in radians.

Example

import geolime as geo
import numpy as np
geo.normalize(np.pi / 2, 2 * np.pi)
Output
7.853981633974483

Info

Due to numerical accuracy and since pi cannot be represented exactly, the result interval is closed, it cannot be half-closed as would be more satisfactory in a purely mathematical view.


Last update: 2022-01-06