Atmosphere

Atmosphere module.

pyBADA.atmosphere.ISATemperatureDeviation(temperature, pressureAltitude)[source]

Calculates ISA temperature deviation at a given pressure altitude. Supports Python scalars, numpy arrays, pandas Series/DataFrame, xarray DataArray; handles broadcasting between inputs.

Parameters:
  • temperature – Air temperature in Kelvin.

  • pressureAltitude – Pressure altitude in meters.

Returns:

ISA temperature deviation in Kelvin, wrapped to original type.

pyBADA.atmosphere.aSound(theta)[source]

Calculates the speed of sound based on the normalized air temperature.

Parameters:

theta – Normalized temperature [-]. Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

Returns:

Speed of sound in meters per second (m/s)

pyBADA.atmosphere.atmosphereProperties(h, DeltaTemp)[source]

Calculates atmospheric properties: normalized temperature, pressure, and density ratios based on altitude and temperature deviation from ISA. Vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • h (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Altitude in meters (m). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • DeltaTemp (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Deviation from ISA temperature in Kelvin (K). Same type as h.

Returns:

List of [theta_norm, delta_norm, sigma_norm], each matching the type of input.

pyBADA.atmosphere.cas2Mach(cas, theta, delta, sigma)[source]

Converts calibrated airspeed (CAS) to Mach number, vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • cas (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Calibrated airspeed in meters per second (m/s). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • theta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air temperature [-]. Same type as cas.

  • delta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air pressure [-]. Same type as cas.

  • sigma (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air density [-]. Same type as cas.

Returns:

Mach number [-].

pyBADA.atmosphere.cas2Tas(cas, delta, sigma)[source]

Converts calibrated airspeed (CAS) to true airspeed (TAS), vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • cas (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Calibrated airspeed in meters per second (m/s). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • delta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air pressure [-]. Same type as cas.

  • sigma (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air density [-]. Same type as cas.

Returns:

True airspeed in meters per second (m/s).

pyBADA.atmosphere.convertSpeed(v, speedType, theta, delta, sigma)[source]

Calculates Mach, true airspeed (TAS), and calibrated airspeed (CAS) based on input speed and its type. Vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • v – Airspeed value, depending on the type provided (M, CAS, TAS) [-, kt, kt]. Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • speedType – Type of input speed: “M” (Mach), “CAS”, or “TAS”.

  • theta – Normalized air temperature [-]. Same type as v.

  • delta – Normalized air pressure [-]. Same type as v.

  • sigma – Normalized air density [-]. Same type as v.

Returns:

[Mach number, CAS (m/s), TAS (m/s)] each matching the type of input.

pyBADA.atmosphere.crossOver(cas, Mach)[source]

Calculates the cross-over altitude where calibrated airspeed (CAS) and Mach number intersect, vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • cas (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Calibrated airspeed in meters per second (m/s). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • Mach (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Mach number [-]. Same type as cas.

Returns:

Cross-over altitude in meters (m).

pyBADA.atmosphere.delta(h, DeltaTemp)[source]

Normalized pressure according to the ISA model, vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • h (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Altitude in meters (m). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • DeltaTemp (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Deviation from ISA temperature in Kelvin (K). Same type as h.

Returns:

Normalized pressure [-].

pyBADA.atmosphere.mach2Cas(Mach, theta, delta, sigma)[source]

Converts Mach number to calibrated airspeed (CAS), vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • Mach (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Mach number [-]. Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • theta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air temperature [-]. Same type as Mach.

  • delta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air pressure [-]. Same type as Mach.

  • sigma (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air density [-]. Same type as Mach.

Returns:

Calibrated airspeed in meters per second (m/s).

pyBADA.atmosphere.mach2Tas(Mach, theta)[source]

Converts Mach number to true airspeed (TAS), vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • Mach (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Mach number [-]. Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • theta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air temperature [-]. Same type as Mach.

Returns:

True airspeed in meters per second (m/s).

pyBADA.atmosphere.pressureAltitude(pressure, QNH=101325.0)[source]

Calculates pressure altitude based on air pressure and reference pressure (QNH), vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • pressure (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Air pressure in Pascals (Pa). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • QNH (float) – Reference sea-level pressure in Pascals (Pa). Default 101325 Pa.

Returns:

Pressure altitude in meters (m).

pyBADA.atmosphere.sigma(h=None, DeltaTemp=None, theta=None, delta=None)[source]

Normalized density according to ISA, vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

You can either provide:
  • h (pressure altitude) and DeltaTemp (temperature deviation) to compute normalized temperature and pressure internally;

  • Or precomputed theta (normalized temperature) and delta (normalized pressure) directly to avoid recomputation.

Parameters:
  • h (float or array-like or xarray.DataArray or pandas Series/DataFrame) – pressure altitude AMSL [m], required if theta is None.

  • DeltaTemp (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Temperature deviation from ISA at sea level [K], required if theta is None.

  • theta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Precomputed normalized temperature [-], optional.

  • delta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Precomputed normalized pressure [-], optional.

Returns:

Normalized air density [-]

pyBADA.atmosphere.tas2Cas(tas, delta, sigma)[source]

Converts true airspeed (TAS) to calibrated airspeed (CAS), vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • tas (float or array-like or xarray.DataArray or pandas Series/DataFrame) – True airspeed in meters per second (m/s). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • delta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air pressure [-]. Same type as tas.

  • sigma (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air density [-]. Same type as tas.

Returns:

Calibrated airspeed in meters per second (m/s)

pyBADA.atmosphere.tas2Mach(v, theta)[source]

Converts true airspeed (TAS) to Mach number, vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • v (float or array-like or xarray.DataArray or pandas Series/DataFrame) – True airspeed in meters per second (m/s). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • theta (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Normalized air temperature [-]. Same type as v.

Returns:

Mach number [-].

pyBADA.atmosphere.theta(h, DeltaTemp)[source]

Normalized temperature according to the ISA model, vectorized for xarray.DataArray, pandas Series/DataFrame, and numpy arrays/scalars.

Parameters:
  • h (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Altitude in meters (m). Can be scalar, numpy array, pandas Series/DataFrame, or xarray.DataArray.

  • DeltaTemp (float or array-like or xarray.DataArray or pandas Series/DataFrame) – Deviation from ISA temperature in Kelvin (K). Same type as h.

Returns:

Normalized temperature [-].