doc-calculator 0.2__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,228 @@
1
+ Metadata-Version: 2.2
2
+ Name: doc_calculator
3
+ Version: 0.4.0
4
+ Description-Content-Type: text/markdown
5
+ License-File: LICENSE
6
+ Requires-Dist: gemseo
7
+ Dynamic: description
8
+ Dynamic: description-content-type
9
+ Dynamic: requires-dist
10
+
11
+ # Aircraft Direct Operating Cost Calculator
12
+
13
+ `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.
14
+
15
+ ## Features
16
+
17
+ - Compute **Direct Operating Costs (DOC)** and **Indirect Operating Costs (IOC)**
18
+ - Supports both **conventional** and **hybrid-electric** propulsion systems
19
+ - Cost modules for:
20
+ - **Fuel**, **Electricity** and **Hydrogen** consumption
21
+ - Financial costs anlsysis including **Depreciation**, **Interests** and **Insurance**
22
+ - Charges and Fees:
23
+ - Landing
24
+ - Payload Handling
25
+ - Navigation
26
+ - Noise Emissions
27
+ - CO Emissions
28
+ - NOx Emissions
29
+ - CO2 Emissions (EU ETS)
30
+ - Maintenance costs for:
31
+ - Airframe
32
+ - Turboprop Engines
33
+ - Propulsive Batteries
34
+ - Fuel Cells
35
+ - Electric Machines
36
+ - Power Electronics
37
+ - Crew Handling costs:
38
+ - Pilots costs
39
+ - Cabin Crew costs
40
+
41
+ - 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.
42
+
43
+ ## Installation
44
+
45
+ Install the package using `pip`:
46
+
47
+ ```bash
48
+ pip install doc-calculator
49
+ ```
50
+ ## Usage
51
+
52
+ Import the `DirectOperatingCost` class
53
+
54
+ ```python
55
+ from doc_calculator import DirectOperatingCost
56
+ ```
57
+
58
+ Prepare Aircraft Input Dictionary
59
+
60
+ ```python
61
+ aircraft_data = {
62
+ "adp": 85, # Aircraft Delivery Price (USD M)
63
+ "mtow": 70, # Max Take-off Weight (Tonnes)
64
+ "pld": 18, # Payload (Tonnes)
65
+ "mew": 40, # Manufacturer Empty Weight (Tonnes)
66
+ "bengw": 1.2, # Bare engine weight (Tonnes)
67
+ "enpri": 6.5, # Engine Price (USD M)
68
+ "en": 2, # Number of engines
69
+ "crewtech": 2,
70
+ "crewc": 4,
71
+ "bt": 1.5, # Sector Block Time (Hours)
72
+ "bf": 2500, # Sector Block Fuel (KG)
73
+ "sector": 600, # Sector length (NM)
74
+ "ieng": 1,
75
+ "shp": 25000, # Shaft Horse Power (for ieng = 1)
76
+ "eoc": 0.0, # (Only used if ieng = 2)
77
+ "afspare": 0.1,
78
+ "enspare": 0.3,
79
+ "dyrs": 15,
80
+ "rval": 0.15,
81
+ "rinsh": 0.005,
82
+ "crtechr": 200,
83
+ "crcabhr": 50,
84
+ "labor_rate": 90,
85
+ "fuelpri": 1.8,
86
+ "ioc_fact": 0.65,
87
+ "util": 2800,
88
+ "lifespan": 20,
89
+ "l_app": 95.0,
90
+ "l_lat": 94.0,
91
+ "l_flyov": 96.0,
92
+ "cnox": 5,
93
+ "nox_value": 200,
94
+ "cco": 4,
95
+ "co_value": 150,
96
+ "co2_value": 10000,
97
+ "prico2": 0.02,
98
+ }
99
+ ```
100
+ > **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.
101
+
102
+ Create DirectOperatingCost Object and Run Calculations
103
+
104
+ ```python
105
+ doc_calculator = DirectOperatingCost(aircraft=aircraft_data)
106
+
107
+ # Calculate DOC
108
+ doc_result = doc_calculator.calculate_doc()
109
+ for key, value in doc_result.items():
110
+ print(f"{key}:\t{value}")
111
+
112
+ # Calculate IOC
113
+ ioc_result = doc_calculator.calculate_ioc()
114
+ for key, value in ioc_result.items():
115
+ print(f"{key}:\t{value}")
116
+ ```
117
+ ---
118
+
119
+ To use the GEMSEO discipline, import the `GemseoDirectOperatingCost` class
120
+
121
+ ```python
122
+ from doc_calculator import GemseoDirectOperatingCost
123
+ import numpy as np
124
+ ```
125
+
126
+ Prepare Aircraft Input Dictionary. Make sure to use Numpy arrays.
127
+
128
+ ```python
129
+ aircraft_data = {
130
+ "adp": np.array([85]), # Aircraft Delivery Price (USD M)
131
+ "mtow": np.array([70]), # Max Take-off Weight (Tonnes)
132
+ "pld": np.array([18]), # Payload (Tonnes)
133
+ "mew": np.array([40]), # Manufacturer Empty Weight (Tonnes)
134
+ "bengw": np.array([1.2]), # Bare engine weight (Tonnes)
135
+ "enpri": np.array([6.5]), # Engine Price (USD M)
136
+ "en": np.array([2]), # Number of engines
137
+ "crewtech": np.array([2]),
138
+ "crewc": np.array([4]),
139
+ "bt": np.array([1.5]), # Sector Block Time (Hours)
140
+ "bf": np.array([2500]), # Sector Block Fuel (KG)
141
+ "sector": np.array([600]), # Sector length (NM)
142
+
143
+ # add all other required keys
144
+ }
145
+ ```
146
+
147
+ Create the disciplne and Run Calculations
148
+
149
+ ```python
150
+ doc_displine = GemseoDirectOperatingCost()
151
+
152
+ out = doc_displine.execute(input_data=aircraft_data)
153
+ ```
154
+
155
+ ---
156
+
157
+ To fully customize the analysis of aircraft operating costs the `Params` dataclass helps you modify typical unit rates, depending on the economic scenario
158
+
159
+ Import the class
160
+
161
+ ```python
162
+ from doc_calculator.core.utils.params import Params
163
+ ```
164
+
165
+ Modify economic assumptions and pass the object through the `params` keyword
166
+
167
+ ```python
168
+ parameters = Params()
169
+ parameters.ENR = 85.0 # Unit Rate for the En-route Navigation Charge
170
+
171
+ # DirectOperatingCost
172
+ doc_calculator = DirectOperatingCost(aircraft=aircraft_data, params=parameters)
173
+
174
+ # GemseoDirectOperatingCost
175
+ doc_displine = GemseoDirectOperatingCost(params=parameters)
176
+ ```
177
+
178
+ > **Note:** See the `Params` class source code for all available unit rates and economic scenario constants
179
+
180
+ ## References / Citation
181
+
182
+ If you use `doc_calculator` for academic or research purposes, please cite:
183
+
184
+ ```latex
185
+ @article{MARCIELLO2024118517,
186
+ title = {Evaluating the economic landscape of hybrid-electric regional aircraft: A cost analysis across three time horizons},
187
+ journal = {Energy Conversion and Management},
188
+ volume = {312},
189
+ pages = {118517},
190
+ year = {2024},
191
+ issn = {0196-8904},
192
+ doi = {https://doi.org/10.1016/j.enconman.2024.118517},
193
+ url = {https://www.sciencedirect.com/science/article/pii/S0196890424004588},
194
+ author = {Valerio Marciello and Vincenzo Cusati and Fabrizio Nicolosi and Karen Saavedra-Rubio and Eleonore Pierrat and Nils Thonemann and Alexis Laurent},
195
+ keywords = {Direct operating costs, Hybrid electric propulsion, Regional aviation, Technology roadmap, Sustainable aviation},
196
+ }
197
+
198
+ @manual{EUETS,
199
+ title = {EU emissions trading system (EU ETS)},
200
+ key = {European commission},
201
+ url = {https://climate.ec.europa.eu/eu-action/eu-emissions-trading-system-eu-ets_en},
202
+ year = {2023}
203
+ }
204
+
205
+ @book{ATA,
206
+ author = {Air Transport Association of America},
207
+ year = {1967},
208
+ title = {Air Transport Association of America. Standard Method of Estimating Comparative Direct Operating Costs of Turbine Powered Transport Airplanes.},
209
+ publisher = {The Association},
210
+ address = {},
211
+ edition = {}
212
+ }
213
+
214
+ @book{association1989short,
215
+ title = {Short medium range aircraft: AEA requirements},
216
+ author = {Association of European Airlines},
217
+ url = {https://books.google.it/books?id=6dz0jgEACAAJ},
218
+ year = {1989}
219
+ }
220
+ ```
221
+
222
+ ## Contact
223
+
224
+ For questions, support, or suggestions, feel free to reach out:
225
+
226
+ **Email:** michele.tuccillo98@gmail.com
227
+
228
+ **Report issues:** GitHub Issues
@@ -8,8 +8,8 @@ doc_calculator/gemseo_discipline/DOC_Calculator.py,sha256=hgnZ7eOqNNh34NeehY6c5V
8
8
  doc_calculator/gemseo_discipline/__init__.py,sha256=lwTMrOr2oUeNTElP14atth9NdxyG6Qr1tUV2231YqBM,53
9
9
  doc_calculator/gemseo_discipline/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  doc_calculator/gemseo_discipline/utils/utils_functions.py,sha256=kSaSP2FFllAjw7FI87KEb_IUfJ1uKVVVeREPVJufUKQ,295
11
- doc_calculator-0.2.dist-info/LICENSE,sha256=0hLLMdm78mvfi_SZni23FLSVq0vYbvmRuLPUwy6Gc7I,1094
12
- doc_calculator-0.2.dist-info/METADATA,sha256=x8Q2LEF1h0Ozi6DYcKh87GhVv3apkziOjOjYihDt6Jg,129
13
- doc_calculator-0.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
14
- doc_calculator-0.2.dist-info/top_level.txt,sha256=dTASglOF0CjM5b8VIFNUVVa3wXtrMNXgEwQ4l8wtrss,15
15
- doc_calculator-0.2.dist-info/RECORD,,
11
+ doc_calculator-0.4.0.dist-info/LICENSE,sha256=0hLLMdm78mvfi_SZni23FLSVq0vYbvmRuLPUwy6Gc7I,1094
12
+ doc_calculator-0.4.0.dist-info/METADATA,sha256=UuohNImqiV-T0wWx5Kg7icW2AewEykT2JRV0lJIu4oo,7314
13
+ doc_calculator-0.4.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
14
+ doc_calculator-0.4.0.dist-info/top_level.txt,sha256=dTASglOF0CjM5b8VIFNUVVa3wXtrMNXgEwQ4l8wtrss,15
15
+ doc_calculator-0.4.0.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- Metadata-Version: 2.2
2
- Name: doc_calculator
3
- Version: 0.2
4
- License-File: LICENSE
5
- Requires-Dist: gemseo
6
- Dynamic: requires-dist