minisky.quantities¶
quantities
¶
Physical quantity annotations and unit conversions used by MiniSky.
minisky uses SI units internally. To convert from imperial for example:
>>> from minisky import quantities as q
>>> q.ft_to_m(1300)
396.24
Furthermore, we recommend annotating your types with quantity kind and unit metadata, for example:
>>> from minisky import quantities as q
>>> def _(alt: q.PressureAltitudeM): ...
>>> from dataclasses import dataclass
>>> @dataclass
... class Container:
... alt: q.PressureAltitudeM
...
Use unconstrained type variables where possible. Do not unnecessarily
strictly type inputs like np.ndarray | float, they destroy type information.
For more information, see: https://github.com/open-aviation/minisky/issues/38#issuecomment-5156669559
MagneticDeclinationDeg
module-attribute
¶
Magnetic declination (also called magnetic variation) in degrees.
It is the angular difference between true north and magnetic north. For
example, with 10 degrees west declination, magnetic north lies 10 degrees west
of true north, i.e. magnetic heading = true heading - magnetic declination.
TrueHeadingDegrees
module-attribute
¶
TrueHeadingDegrees = Annotated[_T, aerospace.HEADING_TRUE(isqx.DEG)]
MagneticHeadingDegrees
module-attribute
¶
MagneticHeadingDegrees = Annotated[_T, aerospace.HEADING_MAG(isqx.DEG)]
TurnRateDegPerS
module-attribute
¶
YawRateDegPerS
module-attribute
¶
WindDirectionDeg
module-attribute
¶
WindDirectionDeg = Annotated[_T, aerospace.HEADING_TRUE_WIND(isqx.DEG)]
VerticalDistanceM
module-attribute
¶
VerticalDistanceFt
module-attribute
¶
PressureAltitudeM
module-attribute
¶
PressureAltitudeM = Annotated[_T, aerospace.PRESSURE_ALTITUDE(isqx.M)]
PressureAltitudeFt
module-attribute
¶
PressureAltitudeFt = Annotated[_T, aerospace.PRESSURE_ALTITUDE(isqx.usc.FT)]
MslAltitudeM
module-attribute
¶
BarometricHeightM
module-attribute
¶
AglHeightM
module-attribute
¶
AglHeightM = Annotated[_T, aerospace.HEIGHT_ABOVE_GROUND_LEVEL(isqx.M)]
CalibratedAirspeedMps
module-attribute
¶
CalibratedAirspeedMps = Annotated[_T, aerospace.CALIBRATED_AIRSPEED(isqx.M_PERS)]
CalibratedAirspeedKt
module-attribute
¶
CalibratedAirspeedKt = Annotated[_T, aerospace.CALIBRATED_AIRSPEED(isqx.usc.KNOT)]
EquivalentAirspeedMps
module-attribute
¶
EquivalentAirspeedMps = Annotated[_T, aerospace.EQUIVALENT_AIRSPEED(isqx.M_PERS)]
TrueAirspeedMps
module-attribute
¶
TrueAirspeedMps = Annotated[_T, aerospace.TRUE_AIRSPEED(isqx.M_PERS)]
TrueAirspeedKt
module-attribute
¶
TrueAirspeedKt = Annotated[_T, aerospace.TRUE_AIRSPEED(isqx.usc.KNOT)]
GroundSpeedMps
module-attribute
¶
GroundSpeedMps = Annotated[_T, aerospace.GROUND_SPEED(isqx.M_PERS)]
GroundSpeedKt
module-attribute
¶
GroundSpeedKt = Annotated[_T, aerospace.GROUND_SPEED(isqx.usc.KNOT)]
VerticalRateMps
module-attribute
¶
VerticalRateMps = Annotated[_T, aerospace.VERTICAL_RATE(isqx.M * isqx.S ** -1)]
VerticalRateFpm
module-attribute
¶
AccelerationMps2
module-attribute
¶
AccelerationMps2 = Annotated[_T, isqx.ACCELERATION(isqx.M * isqx.S ** -2)]
GravitationalAccelerationMps2
module-attribute
¶
GravitationalAccelerationMps2 = Annotated[_T, isqx.ACCELERATION_OF_FREE_FALL(isqx.M_PERS2)]
SpecificGasConstantJPerKgK
module-attribute
¶
SpecificGasConstantJPerKgK = Annotated[_T, isqx.SPECIFIC_GAS_CONSTANT(isqx.J * isqx.KG ** -1 * isqx.K ** -1)]
TemperatureGradientKPerM
module-attribute
¶
PositionDiffusionMPerSqrtS
module-attribute
¶
StaticTemperatureK
module-attribute
¶
StaticTemperatureK = Annotated[_T, aerospace.STATIC_TEMPERATURE(isqx.K)]
DensityKgPerM3
module-attribute
¶
SpeedOfSoundMps
module-attribute
¶
SpeedOfSoundMps = Annotated[_T, isqx.SPEED_OF_SOUND(isqx.M_PERS)]
MassFlowKgPerS
module-attribute
¶
MassFlowKgPerS = Annotated[_T, isqx.MASS_FLOW_RATE(isqx.KG * isqx.S ** -1)]
ZeroLiftDragCoefficient
module-attribute
¶
ZeroLiftDragCoefficient = Annotated[_T, aerospace.ZERO_LIFT_DRAG_COEFFICIENT]
LiftInducedDragCoefficient
module-attribute
¶
LiftInducedDragCoefficient = Annotated[_T, aerospace.LIFT_INDUCED_DRAG_COEFFICIENT]
InducedDragFactor
module-attribute
¶
InducedDragFactor = Annotated[_T, isqx.Dimensionless('induced_drag_factor')]
kmh_to_mps
module-attribute
¶
fpm_to_mps
module-attribute
¶
fpm_per_s_to_mps2
module-attribute
¶
fpm_per_s_to_mps2 = isqx.convert(isqx.usc.FT * isqx.MIN ** -1 * isqx.S ** -1, isqx.M * isqx.S ** -2)