Aerospace utilities: flight conditions package, standard atmosphere model, and more.

Overview

Aerospace Utilities

About

Module that contains commonly-used aerospace utilities for problem solving.

  • Flight Condition: input altitude to compute common flight condition data. Easily swap between true airspeed, calibrated airspeed, and equivalent airspeed. Includes atmospheric data.
  • Atmosphere: input altitude to compute 1993 International Standard Atmosphere data. Additional derived quantities also included.

Author

Matthew C. Jones <[email protected]>

Installation

Install generally with:

pip install aeroutils

Or from the downloaded source code with:

pip install <path/to/aeroutils>

Usage

In an ipython notebook or a Python script, import all utilities with:

from aeroutils import *

Flight Condition Package

The flightcondition package can be used to compute and interact with common flight condition data.

Usage:

from aeroutils.flightcondition import FlightCondition
from aeroutils.units import *

# Compute flight conditions for a scalar or array of altitudes
altitudes = [0, 10e3, 33.5e3] * unit('ft')
fc = FlightCondition(altitudes, EAS=300*unit('knots'))
print(f"\nAirspeed in multiple formats: {fc}")
print(f"Even more data: {fc.tostring()}")
print(f"Access atmospheric data (see Atmosphere class): {fc.atm}")

# Or view fc formats individually:")
print(f"\nThe Mach number is {fc.mach:.5g}")
print(f"The true fc is {fc.TAS:.5g}")
print(f"The calibrated fc is {fc.CAS:.5g}")
print(f"The equivalent fc is {fc.EAS:.5g}")

# Define flight condition with Mach number, TAS, CAS, or EAS:")
fc = FlightCondition(altitudes, mach=0.4535*dimless)
fc = FlightCondition(altitudes, TAS=300*unit('knots'))
fc = FlightCondition(altitudes, CAS=300*unit('knots'))
fc = FlightCondition(altitudes, EAS=300*unit('knots'))

# Compute flight condition data based on input length scale
ell = 5 * unit('ft')
print(f"\nThe Reynolds number is {fc.reynolds_number(ell):.5g}")
print(f"The Reynolds number per unit length is "
    f"{fc.reynolds_number_by_unit_length('in'):.5g}")

# Use unit functionality to convert dimensions as desired:")
print(f"\nThe dynamic pressure is {fc.q_inf.to('psi'):.5g}")

Atmosphere Package

The atmosphere package can be used to compute and interact with common standard atmosphere data and derived quantities.

Outputs include:

  • Pressure p
  • Temperature T
  • Density rho
  • Sound speed a
  • Dynamic viscosity mu
  • Kinematic viscosity nu
  • Thermal conductivity k
  • Layer name layer.name
  • Geometric altitude h
  • Geopotential altitude H
  • Acceleration due to gravity g
  • Mean free path mean_free_path

Usage:

from aeroutils.atmosphere import Atmosphere
from aeroutils.units import *

# Compute atmospheric data for a scalar or array of altitudes
h = [0.0, 12.0, 33.5] * unit('km')
atm = Atmosphere(h)
print(f"Abbreviated output: {atm}")
print(f"Extended output in Imperial units: "
    f"{atm.tostring(short_repr=False, imperial_units=False)}")

# Access individual properties and convert to desired units: "
print(f"\np={atm.p}\nT={atm.T.to('degR')}\nrho={atm.rho.to('kg/m^3')}")

# Compute properties such as thermal conductivity, mean free path and
# many more!
print(f"\nthermal conductivity k={atm.k}"
    f"\nmean free path = {atm.mean_free_path} and many more!")

License

aeroutils is licensed under the MIT LICENSE. See the LICENSE document.

Dependencies

  • numpy: package for broad scientific computing.
  • pint: package for dealing with units.
You might also like...
Creates a release pull request updating changelog and tags with standard-version

standard version release branch Github action to open releases following convent

A functional standard library for Python.

Toolz A set of utility functions for iterators, functions, and dictionaries. See the PyToolz documentation at https://toolz.readthedocs.io LICENSE New

🌈Python cheatsheet for all standard libraries(Continuously Updated)

Python Standard Libraries Cheatsheet Depend on Python v3.9.8 All code snippets have been tested to ensure they work properly. Fork me on GitHub. 中文 En

Standard mutable string (character array) implementation for Python.

chararray A standard mutable character array implementation for Python.

Neogex is a human readable parser standard, being implemented in Python

Neogex (New Expressions) Parsing Standard Much like Regex, Neogex allows for string parsing and validation based on a set of requirements. Unlike Rege

A competition for forecasting electricity demand at the country-level using a standard backtesting framework

A competition for forecasting electricity demand at the country-level using a standard backtesting framework

A Lite Package focuses on making overwrite and mending functions easier and more flexible.

Overwrite Make Overwrite More flexible In Python A Lite Package focuses on making overwrite and mending functions easier and more flexible. Certain Me

Cross-platform config and manager for click console utilities.

climan Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayPal: https

python DroneCAN code generation, interface and utilities

UAVCAN v0 stack in Python Python implementation of the UAVCAN v0 protocol stack. UAVCAN is a lightweight protocol designed for reliable communication

Owner
null
Aero is an open source airplane intelligence tool. Aero supports more than 13,000 airlines and 250 countries. Any flight worldwide at your fingertips.

Aero Aero supports more than 13,000 airlines and 250 countries. Any flight worldwide at your fingertips. Features Main : Flight lookup Aircraft lookup

Vickey 비키 4 Oct 27, 2021
A pairs trade is a market neutral trading strategy enabling traders to profit from virtually any market conditions.

A pairs trade is a market neutral trading strategy enabling traders to profit from virtually any market conditions. This strategy is categorized as a statistical arbitrage and convergence trading strategy.

Kanupriya Anand 13 Nov 27, 2022
ChronoRace is a tool to accurately perform timed race conditions to circumvent application business logic.

ChronoRace is a tool to accurately perform timed race conditions to circumvent application business logic. I've found in my research that w

Tanner 64 Aug 4, 2022
Developing and Comparing Vision-based Algorithms for Vision-based Agile Flight

DodgeDrone: Vision-based Agile Drone Flight (ICRA 2022 Competition) Would you like to push the boundaries of drone navigation? Then participate in the

Robotics and Perception Group 115 Dec 10, 2022
Flight Reservation App With Python

Flight Reservation App With Python

victor-h. 1 Nov 21, 2021
Project for viewing the cheapest flight deals from Netherlands to other countries.

Flight_Deals_AMS Project for viewing the cheapest flight deals from Netherlands to other countries.

null 2 Dec 17, 2022
PyPIContents is an application that generates a Module Index from the Python Package Index (PyPI) and also from various versions of the Python Standard Library.

PyPIContents is an application that generates a Module Index from the Python Package Index (PyPI) and also from various versions of the Python Standar

Collage Labs 10 Nov 19, 2022
🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.

Boltons boltons should be builtins. Boltons is a set of over 230 BSD-licensed, pure-Python utilities in the same spirit as — and yet conspicuously mis

Mahmoud Hashemi 6k Jan 6, 2023
🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.

Boltons boltons should be builtins. Boltons is a set of over 230 BSD-licensed, pure-Python utilities in the same spirit as — and yet conspicuously mis

Mahmoud Hashemi 5.4k Feb 20, 2021
A small script I made that takes any standard Decklist of magic the gathering cards and pulls all card images from scryfall at once!

A small script I made that takes any standard Decklist of magic the gathering cards and pulls all card images from scryfall at once!

null 15 Aug 26, 2022