223 lines
7.2 KiB
Rust
223 lines
7.2 KiB
Rust
//! Physical and astronomical constants used across the workspace.
|
||
//!
|
||
//! All values are expressed in SI units unless the name or doc comment
|
||
//! states otherwise. Values that are fixed by definition are given exactly;
|
||
//! measured values carry the number of significant digits justified by the
|
||
//! public source.
|
||
//!
|
||
//! Sources:
|
||
//!
|
||
//! - SI defining constants: BIPM, *The International System of Units (SI)*,
|
||
//! 9th edition, 2019.
|
||
//! - CODATA 2018 recommended values: E. Tiesinga et al., *CODATA
|
||
//! recommended values of the fundamental physical constants: 2018*,
|
||
//! Rev. Mod. Phys. 93, 025010, 2021.
|
||
//! - Earth gravitational parameter and equatorial radius: WGS 84,
|
||
//! NIMA TR8350.2, 2000.
|
||
//! - Astronomical unit: IAU 2012 Resolution B2.
|
||
//!
|
||
//! Where a value is defined exactly by a standard, the doc comment says so,
|
||
//! because several derived quantities depend on the exact value rather than
|
||
//! the rounded printed one.
|
||
//!
|
||
//! 当某个数值由标准精确定义时,文档注释会指出这一点,因为若干导出量依赖精确值
|
||
//! 而非取整后的打印值。
|
||
|
||
/// Speed of light in vacuum, in meters per second.
|
||
///
|
||
/// Exact by definition of the metre in the SI.
|
||
///
|
||
/// 真空光速,单位为米每秒。
|
||
///
|
||
/// 由 SI 对米的定义精确确定。
|
||
pub const SPEED_OF_LIGHT: f64 = 299_792_458.0;
|
||
|
||
/// Newtonian constant of gravitation, in cubic meters per kilogram per
|
||
/// second squared.
|
||
///
|
||
/// CODATA 2018 value with its standard uncertainty of
|
||
/// `1.5e-11 m^3 kg^-1 s^-2`.
|
||
///
|
||
/// 牛顿万有引力常数,单位为立方米每千克每二次方秒。
|
||
///
|
||
/// CODATA 2018 推荐值,标准不确定度为 `1.5e-11 m^3 kg^-1 s^-2`。
|
||
pub const GRAVITATIONAL_CONSTANT: f64 = 6.674_30e-11;
|
||
|
||
/// Boltzmann constant, in joules per kelvin.
|
||
///
|
||
/// Exact by definition of the kelvin in the SI.
|
||
///
|
||
/// 玻尔兹曼常量,单位为焦耳每开尔文。
|
||
///
|
||
/// 由 SI 对开尔文的定义精确确定。
|
||
pub const BOLTZMANN: f64 = 1.380_649e-23;
|
||
|
||
/// Planck constant, in joule seconds.
|
||
///
|
||
/// Exact by definition of the kilogram in the SI.
|
||
///
|
||
/// 普朗克常量,单位为焦耳秒。
|
||
///
|
||
/// 由 SI 对千克的定义精确确定。
|
||
pub const PLANCK: f64 = 6.626_070_15e-34;
|
||
|
||
/// Elementary charge, in coulombs.
|
||
///
|
||
/// Exact by definition of the ampere in the SI.
|
||
///
|
||
/// elementary charge,单位为库仑。
|
||
///
|
||
/// 由 SI 对安培的定义精确确定。
|
||
pub const ELEMENTARY_CHARGE: f64 = 1.602_176_634e-19;
|
||
|
||
/// Astronomical unit, in meters.
|
||
///
|
||
/// Exact by IAU 2012 Resolution B2.
|
||
///
|
||
/// 天文单位,单位为米。
|
||
///
|
||
/// 由 IAU 2012 Resolution B2 精确确定。
|
||
pub const ASTRONOMICAL_UNIT: f64 = 149_597_870_700.0;
|
||
|
||
/// Standard gravity, in meters per second squared.
|
||
///
|
||
/// Exact by definition of the standard atmosphere.
|
||
///
|
||
/// 标准重力加速度,单位为米每二次方秒。
|
||
///
|
||
/// 由标准大气的定义精确确定。
|
||
pub const STANDARD_GRAVITY: f64 = 9.806_65;
|
||
|
||
/// One minute, in seconds.
|
||
///
|
||
/// 一分钟,单位为秒。
|
||
pub const MINUTE: f64 = 60.0;
|
||
|
||
/// One hour, in seconds.
|
||
///
|
||
/// 一小时,单位为秒。
|
||
pub const HOUR: f64 = 3_600.0;
|
||
|
||
/// One day of 24 hours, in seconds.
|
||
///
|
||
/// This is the SI day. It is not the mean solar day, which is slightly
|
||
/// longer, and not the Julian day of 86 400 seconds used in Julian date
|
||
/// arithmetic, which is identical to this value.
|
||
///
|
||
/// 一个 24 小时的日,单位为秒。
|
||
///
|
||
/// 这是 SI 日。它不是略长的平均太阳日,也不是儒略日运算中使用的 86 400 秒
|
||
/// 儒略日,后者与本值相同。
|
||
pub const DAY: f64 = 86_400.0;
|
||
|
||
/// One Julian year of 365.25 days, in seconds.
|
||
///
|
||
/// Exact by definition of the Julian year.
|
||
///
|
||
/// 一个 365.25 日的儒略年,单位为秒。
|
||
///
|
||
/// 由儒略年的定义精确确定。
|
||
pub const JULIAN_YEAR: f64 = 31_557_600.0;
|
||
|
||
/// One Julian century of 36 525 days, in seconds.
|
||
///
|
||
/// Exact by definition of the Julian year, used by precession and secular
|
||
/// rate expressions quoted per Julian century.
|
||
///
|
||
/// 一个 36 525 日的儒略世纪,单位为秒。
|
||
///
|
||
/// 由儒略年的定义精确确定;岁差与长期变化率表达式按儒略世纪引用时使用它。
|
||
pub const JULIAN_CENTURY: f64 = 3_155_760_000.0;
|
||
|
||
/// Julian date of the Unix epoch, 1970-01-01T00:00:00 UTC.
|
||
///
|
||
/// This is `2 440 587.5` in the Julian date system.
|
||
///
|
||
/// Unix 历元的儒略日,1970-01-01T00:00:00 UTC。
|
||
///
|
||
/// 在儒略日体系中该值为 `2 440 587.5`。
|
||
pub const JULIAN_DATE_UNIX_EPOCH: f64 = 2_440_587.5;
|
||
|
||
/// Julian date of the J2000.0 epoch, 2000-01-01T12:00:00 TT.
|
||
///
|
||
/// Exact by definition of the J2000.0 epoch.
|
||
///
|
||
/// J2000.0 历元的儒略日,2000-01-01T12:00:00 TT。
|
||
///
|
||
/// 由 J2000.0 历元的定义精确确定。
|
||
pub const JULIAN_DATE_J2000: f64 = 2_451_545.0;
|
||
|
||
/// The number of seconds between the J2000.0 epoch and the Unix epoch.
|
||
///
|
||
/// Derived from [`JULIAN_DATE_J2000`] and [`JULIAN_DATE_UNIX_EPOCH`].
|
||
///
|
||
/// J2000.0 历元与 Unix 历元之间的秒数。
|
||
///
|
||
/// 由 [`JULIAN_DATE_J2000`] 与 [`JULIAN_DATE_UNIX_EPOCH`] 导出。
|
||
pub const SECONDS_J2000_TO_UNIX: f64 = (JULIAN_DATE_J2000 - JULIAN_DATE_UNIX_EPOCH) * DAY;
|
||
|
||
/// Earth gravitational parameter, in cubic kilometers per second squared.
|
||
///
|
||
/// WGS 84 value, `GM = 398 600.4418 km^3/s^2`, with an uncertainty that is
|
||
/// dominated by the uncertainty in the Newtonian constant of gravitation.
|
||
/// Orbit propagation uses kilometers, so the value is given in those units
|
||
/// rather than in SI.
|
||
///
|
||
/// 地球引力参数,单位为立方千米每二次方秒。
|
||
///
|
||
/// WGS 84 取值 `GM = 398 600.4418 km^3/s^2`,其不确定度主要来自牛顿万有引力常数的
|
||
/// 不确定度。轨道传播使用千米,故该值以千米给出而非 SI 单位。
|
||
pub const EARTH_MU: f64 = 398_600.441_8;
|
||
|
||
/// Earth equatorial radius, in kilometers.
|
||
///
|
||
/// WGS 84 semi-major axis, `a = 6 378.137 km`.
|
||
///
|
||
/// 地球赤道半径,单位为千米。
|
||
///
|
||
/// WGS 84 半长轴,`a = 6 378.137 km`。
|
||
pub const EARTH_EQUATORIAL_RADIUS: f64 = 6_378.137;
|
||
|
||
/// Earth flattening, dimensionless.
|
||
///
|
||
/// WGS 84 value, `f = 1 / 298.257 223 563`.
|
||
///
|
||
/// 地球扁率,无量纲。
|
||
///
|
||
/// WGS 84 取值 `f = 1 / 298.257 223 563`。
|
||
pub const EARTH_FLATTENING: f64 = 1.0 / 298.257_223_563;
|
||
|
||
/// Earth rotation rate, in radians per second.
|
||
///
|
||
/// WGS 84 value. This is the nominal mean angular velocity of the Earth,
|
||
/// `omega = 7.292 115e-5 rad/s`.
|
||
///
|
||
/// WGS 84 取值,即地球的名义平均角速度,
|
||
/// `omega = 7.292 115e-5 rad/s`。
|
||
pub const EARTH_ROTATION_RATE: f64 = 7.292_115_0e-5;
|
||
|
||
/// Earth second zonal harmonic, dimensionless.
|
||
///
|
||
/// WGS 84 value, `J2 = 1.082 626 683e-3`.
|
||
///
|
||
/// WGS 84 取值,`J2 = 1.082 626 683e-3`。
|
||
pub const EARTH_J2: f64 = 1.082_626_683e-3;
|
||
|
||
/// Standard atmosphere sea level pressure, in pascals.
|
||
///
|
||
/// Exact by definition of the standard atmosphere.
|
||
///
|
||
/// 标准大气海平面气压,单位为帕斯卡。
|
||
///
|
||
/// 由标准大气的定义精确确定。
|
||
pub const STANDARD_ATMOSPHERE: f64 = 101_325.0;
|
||
|
||
/// Zero degrees Celsius on the thermodynamic temperature scale, in kelvin.
|
||
///
|
||
/// Exact by definition of the Celsius scale.
|
||
///
|
||
/// 热力学温标上零摄氏度对应的温度,单位为开尔文。
|
||
///
|
||
/// 由摄氏标度的定义精确确定。
|
||
pub const ZERO_CELSIUS_IN_KELVIN: f64 = 273.15;
|