|
24 | 24 |
|
25 | 25 | import geophires_x.Model as Model |
26 | 26 | from geophires_x.EconomicsSamCashFlow import _calculate_sam_economics_cash_flow |
| 27 | +from geophires_x.Parameter import Parameter |
27 | 28 | from geophires_x.Units import convertible_unit |
28 | 29 |
|
29 | 30 | _SAM_CASH_FLOW_PROFILE_KEY = 'Cash Flow' |
@@ -103,14 +104,17 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]: |
103 | 104 |
|
104 | 105 | ret: dict[str, Any] = {} |
105 | 106 |
|
| 107 | + def pct(econ_value: Parameter) -> float: |
| 108 | + return econ_value.quantity().to(convertible_unit('%')).magnitude |
| 109 | + |
106 | 110 | itc = econ.RITCValue.value |
107 | 111 | total_capex_musd = econ.CCap.value + itc |
108 | 112 | ret['total_installed_cost'] = total_capex_musd * 1e6 |
109 | 113 |
|
110 | 114 | opex_musd = econ.Coam.value |
111 | 115 | ret['om_fixed'] = [opex_musd * 1e6] |
112 | 116 | # GEOPHIRES assumes O&M fixed costs are not affected by inflation |
113 | | - ret['om_fixed_escal'] = -1.0 * econ.RINFL.quantity().to(convertible_unit('%')).magnitude |
| 117 | + ret['om_fixed_escal'] = -1.0 * pct(econ.RINFL) |
114 | 118 |
|
115 | 119 | # FIXME TODO provide entire generation profile |
116 | 120 | average_net_generation_MW = _get_average_net_generation_MW(model) |
@@ -142,13 +146,16 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]: |
142 | 146 | ret['ppa_escalation'] = ppa_escalation_rate_percent |
143 | 147 |
|
144 | 148 | # Debt/equity ratio ('Fraction of Investment in Bonds' parameter) |
145 | | - ret['debt_percent'] = econ.FIB.quantity().to(convertible_unit('%')).magnitude |
146 | | - |
147 | | - # TODO/WIP interest rate |
148 | | - # ret['real_discount_rate'] |
| 149 | + ret['debt_percent'] = pct(econ.FIB) |
149 | 150 |
|
150 | 151 | # 'Property Tax Rate' |
151 | | - ret['property_tax_rate'] = econ.PTR.quantity().to(convertible_unit('%')).magnitude |
| 152 | + ret['property_tax_rate'] = pct(econ.PTR) |
| 153 | + |
| 154 | + # Interest rate |
| 155 | + ret['real_discount_rate'] = pct(econ.discountrate) |
| 156 | + ret['term_int_rate'] = pct(econ.BIR) |
| 157 | + |
| 158 | + # TODO 'Inflated Equity Interest Rate' (may not have equivalent in SAM...?) |
152 | 159 |
|
153 | 160 | return ret |
154 | 161 |
|
|
0 commit comments