pycontrails.physics.units

Unit conversion support.

Functions

degrees_to_radians(degrees)

Convert from degrees to radians.

dt_to_seconds(dt[, dtype])

Convert a time delta to seconds as a float with specified dtype precision.

ft_to_m(ft)

Convert length from feet to meter.

ft_to_pl(h)

Convert from altitude (ft) to pressure level (hPa).

kelvin_to_celsius(kelvin)

Convert temperature from Kelvin to Celsius.

knots_to_m_per_s(knots)

Convert speed from knots to meters per second (m/s).

latitude_distance_to_m(distance_degrees)

Convert latitude degrees distance between two points to cartesian distances in meters.

lbs_to_kg(lbs)

Convert mass from pounds (lbs) to kilograms (kg).

longitude_distance_to_m(distance_degrees, ...)

Convert longitude degrees distance between two points to cartesian distances in meters.

m_per_s_to_knots(m_per_s)

Convert speed from meters per second (m/s) to knots.

m_to_T_isa(h)

Calculate the ambient temperature (K) for a given altitude (m).

m_to_ft(m)

Convert length from meters to feet.

m_to_latitude_distance(distance_m)

Convert cartesian distance (meters) to differences in latitude degrees.

m_to_longitude_distance(distance_m, ...)

Convert cartesian distance (meters) to differences in longitude degrees.

m_to_pl(h)

Convert from altitude (m) to pressure level (hPa).

mach_number_to_tas(mach_number, T)

Calculate true airspeed from the Mach number at a specified ambient temperature.

pl_to_ft(pl)

Convert from pressure level (hPa) to altitude (ft).

pl_to_m(pl)

Convert from pressure level (hPa) to altitude (m).

radians_to_degrees(radians)

Convert from radians to degrees.

tas_to_mach_number(true_airspeed, T)

Calculate Mach number from true airspeed at a specified ambient temperature.

pycontrails.physics.units.degrees_to_radians[A: (ndarray, DataArray, float)](degrees)

Convert from degrees to radians.

Parameters:

degrees (A) – Degrees values, [\(\deg\)]

Returns:

A – Radians values

pycontrails.physics.units.dt_to_seconds(dt, dtype=<class 'numpy.float64'>)

Convert a time delta to seconds as a float with specified dtype precision.

Parameters:
  • dt (numpy.ndarray) – Time delta for each waypoint

  • dtype (np.dtype) – Data type of the output array

Returns:

numpy.ndarray – Time delta in seconds as a float

pycontrails.physics.units.ft_to_m[A: (ndarray, DataArray, float)](ft)

Convert length from feet to meter.

Parameters:

ft (A) – length, [\(ft\)]

Returns:

A – length, [\(m\)]

pycontrails.physics.units.ft_to_pl[A: (ndarray, DataArray, float)](h)

Convert from altitude (ft) to pressure level (hPa).

Assumes the ICAO standard atmosphere.

Parameters:

h (A) – altitude, [\(ft\)]

Returns:

A – pressure level, [\(hPa\)], [\(mbar\)]

pycontrails.physics.units.kelvin_to_celsius[A: (ndarray, DataArray, float)](kelvin)

Convert temperature from Kelvin to Celsius.

Parameters:

kelvin (A) – temperature [\(K\)]

Returns:

A – temperature [\(C\)]

pycontrails.physics.units.knots_to_m_per_s[A: (ndarray, DataArray, float)](knots)

Convert speed from knots to meters per second (m/s).

Parameters:

knots (A) – Speed, [\(knots\)]

Returns:

A – Speed, [\(m \ s^{-1}\)]

pycontrails.physics.units.latitude_distance_to_m[A: (ndarray, DataArray, float)](distance_degrees)

Convert latitude degrees distance between two points to cartesian distances in meters.

Parameters:

distance_degrees (A) – latitude distance, [\(\deg\)]

Returns:

A – Cartesian distance along the latitude axis, [\(m\)]

pycontrails.physics.units.lbs_to_kg[A: (ndarray, DataArray, float)](lbs)

Convert mass from pounds (lbs) to kilograms (kg).

Parameters:

lbs (A) – mass, pounds [\(lbs\)]

Returns:

A – mass, kilograms [\(kg\)]

pycontrails.physics.units.longitude_distance_to_m[A: (ndarray, DataArray, float)](distance_degrees, latitude_mean)

Convert longitude degrees distance between two points to cartesian distances in meters.

Parameters:
  • distance_degrees (A) – longitude distance, [\(\deg\)]

  • latitude_mean (A, optional) – mean latitude between longitude_1 and longitude_2, [\(\deg\)]

Returns:

A – cartesian distance along the longitude axis, [\(m\)]

pycontrails.physics.units.m_per_s_to_knots[A: (ndarray, DataArray, float)](m_per_s)

Convert speed from meters per second (m/s) to knots.

Parameters:

m_per_s (A) – Speed, [\(m \ s^{-1}\)]

Returns:

A – Speed, [\(knots\)]

pycontrails.physics.units.m_to_T_isa[A: (ndarray, DataArray, float)](h)

Calculate the ambient temperature (K) for a given altitude (m).

Assumes the ICAO standard atmosphere.

Parameters:

h (A) – altitude, [\(m\)]

Returns:

A – ICAO standard atmosphere ambient temperature, [\(K\)]

References

Notes

See https://en.wikipedia.org/wiki/International_Standard_Atmosphere

This implementation agrees with the ISA only up to 20000 m. A warning is emitted for higher altitudes.

See also

m_to_pl, ft_to_pl

pycontrails.physics.units.m_to_ft[A: (ndarray, DataArray, float)](m)

Convert length from meters to feet.

Parameters:

m (A) – length, [\(m\)]

Returns:

A – length, [\(ft\)]

pycontrails.physics.units.m_to_latitude_distance[A: (ndarray, DataArray, float)](distance_m)

Convert cartesian distance (meters) to differences in latitude degrees.

Small angle approximation for distance_m << radius_earth

Parameters:

distance_m (A) – cartesian distance along latitude axis, [\(m\)]

Returns:

A – latitude distance, [\(\deg\)]

pycontrails.physics.units.m_to_longitude_distance[A: (ndarray, DataArray, float)](distance_m, latitude_mean)

Convert cartesian distance (meters) to differences in longitude degrees.

Small angle approximation for distance_m << radius_earth

Parameters:
  • distance_m (A) – cartesian distance along longitude axis, [\(m\)]

  • latitude_mean (A) – mean latitude between longitude_1 and longitude_2, [\(\deg\)]

Returns:

A – longitude distance, [\(\deg\)]

pycontrails.physics.units.m_to_pl[A: (ndarray, DataArray, float)](h)

Convert from altitude (m) to pressure level (hPa).

Parameters:

h (A) – altitude, [\(m\)]

Returns:

A – pressure level, [\(hPa\)], [\(mbar\)]

References

Notes

See https://en.wikipedia.org/wiki/Barometric_formula

This implementation agrees with the ISA only up to 20000 m. A warning is emitted for higher altitudes.

See also

m_to_T_isa, ft_to_pl

pycontrails.physics.units.mach_number_to_tas(mach_number, T)

Calculate true airspeed from the Mach number at a specified ambient temperature.

Parameters:
  • mach_number (float | npt.NDArray[np.floating]) – Mach number, [:math: Ma]

  • T (npt.NDArray[np.floating]) – Ambient temperature, [\(K\)]

Returns:

npt.NDArray[np.floating] – True airspeed, [\(m \ s^{-1}\)]

References

pycontrails.physics.units.pl_to_ft[A: (ndarray, DataArray, float)](pl)

Convert from pressure level (hPa) to altitude (ft).

Assumes the ICAO standard atmosphere.

Parameters:

pl (A) – pressure level, [\(hPa\)], [\(mbar\)]

Returns:

A – altitude, [\(ft\)]

pycontrails.physics.units.pl_to_m[A: (ndarray, DataArray, float)](pl)

Convert from pressure level (hPa) to altitude (m).

Function is slightly different from the classical formula: constants.T_msl / 0.0065) * (1 - (pl_pa / constants.p_surface) ** (1 / 5.255) in order to provide a mathematical inverse to m_to_pl().

For low altitudes (below the tropopause), this implementation closely agrees to classical formula.

Parameters:

pl (A) – pressure level, [\(hPa\)], [\(mbar\)]

Returns:

A – altitude, [\(m\)]

References

Notes

See https://en.wikipedia.org/wiki/Barometric_formula

This implementation agrees with the ISA only for pressure levels above the ISA pressure at 20000 m. A warning is emitted for lower pressure levels.

pycontrails.physics.units.radians_to_degrees[A: (ndarray, DataArray, float)](radians)

Convert from radians to degrees.

Parameters:

radians (A) – degrees values, [\(\rad\)]

Returns:

A – Radian values

pycontrails.physics.units.tas_to_mach_number[A: (ndarray, DataArray, float)](true_airspeed, T)

Calculate Mach number from true airspeed at a specified ambient temperature.

Parameters:
  • true_airspeed (A) – True airspeed, [\(m \ s^{-1}\)]

  • T (A) – Ambient temperature, [\(K\)]

Returns:

A – Mach number, [:math: Ma]

References