No project description provided
Project description
Aircraft Direct Operating Cost Calculator
doc_calculator is a Python package designed to calculate Direct Operating Costs (DOC) and Indirect Operating Costs (IOC) for short-haul and medium-haul aircraft. It supports both regional and large transport categories, and includes modules for hybrid-electric aircraft configurations.
Features
-
Compute Direct Operating Costs (DOC) and Indirect Operating Costs (IOC)
-
Supports both conventional and hybrid-electric propulsion systems
-
Cost modules for:
- Fuel, Electricity and Hydrogen consumption
- Financial costs anlsysis including Depreciation, Interests and Insurance
- Charges and Fees:
- Landing
- Payload Handling
- Navigation
- Noise Emissions
- CO Emissions
- NOx Emissions
- CO2 Emissions (EU ETS)
- Maintenance costs for:
- Airframe
- Turboprop Engines
- Propulsive Batteries
- Fuel Cells
- Electric Machines
- Power Electronics
- Crew Handling costs:
- Pilots costs
- Cabin Crew costs
-
The package includes a ready-to-use GEMSEO discipline to allow integration with multidisciplinary design analysis (MDA) and optimization (MDO) workflows based on the GEMSEO framework.
Installation
Install the package using pip:
pip install doc_calculator
Usage
Import the DirectOperatingCost class
from doc_calculator import DirectOperatingCost
Prepare Aircraft Input Dictionary
aircraft_data = {
"adp": 85, # Aircraft Delivery Price (USD M)
"mtow": 70, # Max Take-off Weight (Tonnes)
"pld": 18, # Payload (Tonnes)
"mew": 40, # Manufacturer Empty Weight (Tonnes)
"bengw": 1.2, # Bare engine weight (Tonnes)
"enpri": 6.5, # Engine Price (USD M)
"en": 2, # Number of engines
"crewtech": 2,
"crewc": 4,
"bt": 1.5, # Sector Block Time (Hours)
"bf": 2500, # Sector Block Fuel (KG)
"sector": 600, # Sector length (NM)
"ieng": 1,
"shp": 25000, # Shaft Horse Power (for ieng = 1)
"eoc": 0.0, # (Only used if ieng = 2)
"afspare": 0.1,
"enspare": 0.3,
"dyrs": 15,
"rval": 0.15,
"rinsh": 0.005,
"crtechr": 200,
"crcabhr": 50,
"labor_rate": 90,
"fuelpri": 1.8,
"ioc_fact": 0.65,
"util": 2800,
"lifespan": 20,
"l_app": 95.0,
"l_lat": 94.0,
"l_flyov": 96.0,
"cnox": 5,
"nox_value": 200,
"cco": 4,
"co_value": 150,
"co2_value": 10000,
"prico2": 0.02,
}
Note: Many parameters are optional depending on configuration. Refer to the full list of accepted keys in the docstring of the
__init__method for more customization.
Create DirectOperatingCost Object and Run Calculations
doc_calculator = DirectOperatingCost(aircraft=aircraft_data)
# Calculate DOC
doc_result = doc_calculator.calculate_doc()
for key, value in doc_result.items():
print(f"{key}:\t{value}")
# Calculate IOC
ioc_result = doc_calculator.calculate_ioc()
for key, value in ioc_result.items():
print(f"{key}:\t{value}")
To use the GEMSEO discipline, import the GemseoDirectOperatingCost class
from doc_calculator import GemseoDirectOperatingCost
import numpy as np
Prepare Aircraft Input Dictionary. Make sure to use Numpy arrays.
aircraft_data = {
"adp": np.array([85]), # Aircraft Delivery Price (USD M)
"mtow": np.array([70]), # Max Take-off Weight (Tonnes)
"pld": np.array([18]), # Payload (Tonnes)
"mew": np.array([40]), # Manufacturer Empty Weight (Tonnes)
"bengw": np.array([1.2]), # Bare engine weight (Tonnes)
"enpri": np.array([6.5]), # Engine Price (USD M)
"en": np.array([2]), # Number of engines
"crewtech": np.array([2]),
"crewc": np.array([4]),
"bt": np.array([1.5]), # Sector Block Time (Hours)
"bf": np.array([2500]), # Sector Block Fuel (KG)
"sector": np.array([600]), # Sector length (NM)
# add all other required keys
}
Create the disciplne and Run Calculations
doc_displine = GemseoDirectOperatingCost()
out = doc_displine.execute(input_data=aircraft_data)
To fully customize the analysis of aircraft operating costs the Params dataclass helps you modify typical unit rates, depending on the economic scenario
Import the class
from doc_calculator.core.utils.params import Params
Modify economic assumptions and pass the object through the params keyword
parameters = Params()
parameters.ENR = 85.0 # Unit Rate for the En-route Navigation Charge
# DirectOperatingCost
doc_calculator = DirectOperatingCost(aircraft=aircraft_data, params=parameters)
# GemseoDirectOperatingCost
doc_displine = GemseoDirectOperatingCost(params=parameters)
Note: See the
Paramsclass source code for all available unit rates and economic scenario constants
References / Citation
If you use doc_calculator for academic or research purposes, please cite:
@article{MARCIELLO2024118517,
title = {Evaluating the economic landscape of hybrid-electric regional aircraft: A cost analysis across three time horizons},
journal = {Energy Conversion and Management},
volume = {312},
pages = {118517},
year = {2024},
issn = {0196-8904},
doi = {https://doi.org/10.1016/j.enconman.2024.118517},
url = {https://www.sciencedirect.com/science/article/pii/S0196890424004588},
author = {Valerio Marciello and Vincenzo Cusati and Fabrizio Nicolosi and Karen Saavedra-Rubio and Eleonore Pierrat and Nils Thonemann and Alexis Laurent},
keywords = {Direct operating costs, Hybrid electric propulsion, Regional aviation, Technology roadmap, Sustainable aviation},
}
@manual{EUETS,
title = {EU emissions trading system (EU ETS)},
key = {European commission},
url = {https://climate.ec.europa.eu/eu-action/eu-emissions-trading-system-eu-ets_en},
year = {2023}
}
@book{ATA,
author = {Air Transport Association of America},
year = {1967},
title = {Air Transport Association of America. Standard Method of Estimating Comparative Direct Operating Costs of Turbine Powered Transport Airplanes.},
publisher = {The Association},
address = {},
edition = {}
}
@book{association1989short,
title = {Short medium range aircraft: AEA requirements},
author = {Association of European Airlines},
url = {https://books.google.it/books?id=6dz0jgEACAAJ},
year = {1989}
}
Contact
For questions, support, or suggestions, feel free to reach out:
Email: michele.tuccillo98@gmail.com
Report issues: GitHub Issues
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doc_calculator-0.3.0.tar.gz.
File metadata
- Download URL: doc_calculator-0.3.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d603eb512f4b0a5d348757d025217c6a82c8ec3a393f64a248e59b40f0a570f
|
|
| MD5 |
79a80955d6bf1ac6bd1313b3ee352d33
|
|
| BLAKE2b-256 |
d88dd4daf483fa3ac3e4a10524ea6ca6af2a04bb844f60eb9d2d23e86a81b940
|
File details
Details for the file doc_calculator-0.3.0-py3-none-any.whl.
File metadata
- Download URL: doc_calculator-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03917d30b71fc2e2a131052052e364525f711f845c7efebec4e290fca42653c5
|
|
| MD5 |
01e89558c227769fa9aabf4a3fb5affb
|
|
| BLAKE2b-256 |
59319856e6c90f3566fa9e731b1b62d65a4dc44226d7eaf2936a2cd60f14ee69
|