Skip to content
David Bookstaber edited this page Jan 7, 2025 · 5 revisions

Atmospheric calculations

From the U.S. Standard Atmosphere, 1976 model, from sea level to 11km altitude:

  • H = altitude
  • $g_0 = 9.80665 \text{ m/s²}$ (Gravitational constant at sea level)
  • $T_0 = 288.15 \text{ K}$ (Standard temperature at sea level)
  • $M_0 = 28.9644 \text{ kg/kmol}$ (Mass of dry air)
  • $L_m = -6.5 \text{ K/km}$ (Temperature Lapse Rate)
  • $R^* = 8.31432 \times 10^{-3} \text{ N·m/(kmol·K)}$ (Gas constant)

Standard temperature at altitude $T_m(H) = T_0 + L_m \cdot H$

Standard pressure at altitude $P(H) = P_b \left( 1+ \frac{H \cdot L_m}{T_m} \right)^{\frac{-g_0 \cdot M_0}{R^* \cdot L_m}} $

Installation

It is not necessary to run setup.py build_ext --inplace or py -m build then install from dist, because the package has long been configured for self-assembly. More clear way to build and install exts from repo root:

cd  ./py_ballisticcalc.exts
pip install -e .

To remove just pip uninstall py_ballisticcalc.exts

This is because when installing through pip it tries to build wheel using setup.py or pyproject.toml, which creates an isolated environment, downloads build dependencies (like setuptools and cython) and then builds wheel, then installs package using this wheel. So if using -e flag it installs it locally in editable mode (not to the site packages). Then if you change the code in pyx/pxd you can re-run pip install -e . to recompile binaries. With pure python modules you should not rerun pip install after changes, except in cases when you added entries to pyproject.toml, setup.py, etc.

Or to ensure all dependencies, from repo-root:

pip install -e .[dev,charts]
pip install -e ./py_ballisticcalc.exts[dev]
Clone this wiki locally