doc-calculator 0.2__tar.gz → 0.4.0__tar.gz

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