From ca96072d860a6153b97dbf7d60cf9b9e3ae5276d Mon Sep 17 00:00:00 2001 From: Paul Gilman Date: Wed, 3 Jun 2026 11:04:31 -0400 Subject: [PATCH] Sam 2018 update wind toolkit (#2202) * Update WIND Toolkit downloads * WIND Toolkit macro and sample LK script * Revise wind resource Help for new downloads * updated api files and Windows test results --------- Co-authored-by: Steven Janzou --- .../Singleowner_BiopowerSingleOwner.json | 2 + ...er_CustomGenerationBatterySingleOwner.json | 2 + ...sWindFuelCellBatteryHybridSingleOwner.json | 2 + ...er_CustomGenerationProfileSingleOwner.json | 2 + .../defaults/Singleowner_DSLFSingleOwner.json | 2 + .../defaults/Singleowner_ETESSingleOwner.json | 2 + ...ingleowner_EmpiricalTroughSingleOwner.json | 2 + .../Singleowner_FlatPlatePVSingleOwner.json | 2 + .../Singleowner_FuelCellSingleOwner.json | 2 + ...ngleowner_GenericCSPSystemSingleOwner.json | 2 + ...ingleowner_GeothermalPowerSingleOwner.json | 2 + ...owner_HighXConcentratingPVSingleOwner.json | 2 + .../Singleowner_MEwaveBatterySingleOwner.json | 2 + .../Singleowner_MEwaveSingleOwner.json | 122 +----------- .../defaults/Singleowner_MSLFSingleOwner.json | 2 + .../defaults/Singleowner_MSPTSingleOwner.json | 2 + .../defaults/Singleowner_PTESSingleOwner.json | 2 + .../Singleowner_PVBatterySingleOwner.json | 2 + ...Singleowner_PVWattsBatterySingleOwner.json | 2 + .../Singleowner_PVWattsSingleOwner.json | 2 + ...r_PVWattsWindBatteryHybridSingleOwner.json | 2 + ...sWindFuelCellBatteryHybridSingleOwner.json | 2 + ...tovoltaicWindBatteryHybridSingleOwner.json | 2 + ...Singleowner_PhysicalTroughSingleOwner.json | 2 + ...gleowner_StandaloneBatterySingleOwner.json | 2 + .../Singleowner_WindPowerSingleOwner.json | 2 + .../Utilityrate5_MEwaveSingleOwner.json | 136 -------------- api/include/SAM_Singleowner.h | 20 ++ api/modules/SAM_Singleowner.cpp | 30 +++ .../Wind Power/WIND Toolkit Download.lk | 116 ++++++++++++ deploy/runtime/webapis.conf | 2 +- doc/source/wind-power/wind_resource.rst | 19 +- .../wind-toolkit-download.lk | 175 ++++++++++++++++++ src/windtoolkit.cpp | 36 ++-- test_results_win64.csv | 6 +- 35 files changed, 417 insertions(+), 295 deletions(-) delete mode 100644 api/api_autogen/library/defaults/Utilityrate5_MEwaveSingleOwner.json create mode 100644 deploy/runtime/macros/Wind Power/WIND Toolkit Download.lk create mode 100644 samples/LK Scripts for SAM/wind-toolkit-download.lk diff --git a/api/api_autogen/library/defaults/Singleowner_BiopowerSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_BiopowerSingleOwner.json index 2d92d29fce..aa858a60bd 100644 --- a/api/api_autogen/library/defaults/Singleowner_BiopowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_BiopowerSingleOwner.json @@ -413,9 +413,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_CustomGenerationBatterySingleOwner.json b/api/api_autogen/library/defaults/Singleowner_CustomGenerationBatterySingleOwner.json index 57aefe69ca..1b001f2aed 100644 --- a/api/api_autogen/library/defaults/Singleowner_CustomGenerationBatterySingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_CustomGenerationBatterySingleOwner.json @@ -425,9 +425,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json index bda7394579..dde15d3d0c 100644 --- a/api/api_autogen/library/defaults/Singleowner_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_CustomGenerationPVWattsWindFuelCellBatteryHybridSingleOwner.json @@ -397,9 +397,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] }, diff --git a/api/api_autogen/library/defaults/Singleowner_CustomGenerationProfileSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_CustomGenerationProfileSingleOwner.json index 4475f08046..eec1eb1bea 100644 --- a/api/api_autogen/library/defaults/Singleowner_CustomGenerationProfileSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_CustomGenerationProfileSingleOwner.json @@ -411,9 +411,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_DSLFSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_DSLFSingleOwner.json index cc6b2cc671..c1e487857d 100644 --- a/api/api_autogen/library/defaults/Singleowner_DSLFSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_DSLFSingleOwner.json @@ -412,9 +412,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_ETESSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_ETESSingleOwner.json index 2db8292691..15a3e98e3b 100644 --- a/api/api_autogen/library/defaults/Singleowner_ETESSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_ETESSingleOwner.json @@ -292,9 +292,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_EmpiricalTroughSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_EmpiricalTroughSingleOwner.json index f7f5040cf9..fe26caef45 100644 --- a/api/api_autogen/library/defaults/Singleowner_EmpiricalTroughSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_EmpiricalTroughSingleOwner.json @@ -412,9 +412,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_FlatPlatePVSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_FlatPlatePVSingleOwner.json index 03205b5df2..29444b2eef 100644 --- a/api/api_autogen/library/defaults/Singleowner_FlatPlatePVSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_FlatPlatePVSingleOwner.json @@ -412,9 +412,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_FuelCellSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_FuelCellSingleOwner.json index 1bb0a1981d..8a4f60d8da 100644 --- a/api/api_autogen/library/defaults/Singleowner_FuelCellSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_FuelCellSingleOwner.json @@ -435,9 +435,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_GenericCSPSystemSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_GenericCSPSystemSingleOwner.json index d11f248ee3..5abdab9054 100644 --- a/api/api_autogen/library/defaults/Singleowner_GenericCSPSystemSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_GenericCSPSystemSingleOwner.json @@ -412,9 +412,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json index 54fac76cbd..2fd6c932d2 100644 --- a/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_GeothermalPowerSingleOwner.json @@ -409,9 +409,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_HighXConcentratingPVSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_HighXConcentratingPVSingleOwner.json index 7b114ba718..660c1389a0 100644 --- a/api/api_autogen/library/defaults/Singleowner_HighXConcentratingPVSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_HighXConcentratingPVSingleOwner.json @@ -410,9 +410,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_MEwaveBatterySingleOwner.json b/api/api_autogen/library/defaults/Singleowner_MEwaveBatterySingleOwner.json index e14a6c140b..86217ec8e0 100644 --- a/api/api_autogen/library/defaults/Singleowner_MEwaveBatterySingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_MEwaveBatterySingleOwner.json @@ -426,9 +426,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_MEwaveSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_MEwaveSingleOwner.json index d2689a804d..f406c20ffb 100644 --- a/api/api_autogen/library/defaults/Singleowner_MEwaveSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_MEwaveSingleOwner.json @@ -249,125 +249,7 @@ "BatterySystem": { }, "ElectricityRates": { - "en_electricity_rates": 0, - "rate_escalation": [0.000000], - "start_day_of_year": 0, - "ur_annual_min_charge": 0, - "ur_billing_demand_lookback_percentages": [ - [0.000000] - ], - "ur_billing_demand_lookback_period": 0, - "ur_billing_demand_minimum": 0, - "ur_dc_billing_demand_periods": [ - [0.000000] - ], - "ur_dc_enable": 0, - "ur_dc_flat_mat": [ - [0.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [1.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [2.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [3.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [4.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [5.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [6.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [7.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [8.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [9.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [10.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [11.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000] - ], - "ur_dc_sched_weekday": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_dc_sched_weekend": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_dc_tou_mat": [ - [1.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [2.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000] - ], - "ur_ec_sched_weekday": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_ec_sched_weekend": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_ec_tou_mat": [ - [1.000000, 1.000000, 9.600000, 2.000000, 0.167560, 0.000000], - [1.000000, 2.000000, 12.480000, 2.000000, 0.179990, 0.000000], - [1.000000, 3.000000, 19.200000, 2.000000, 0.348050, 0.000000], - [1.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.457180, 0.000000], - [2.000000, 1.000000, 9.600000, 2.000000, 0.147470, 0.000000], - [2.000000, 2.000000, 12.480000, 2.000000, 0.159900, 0.000000], - [2.000000, 3.000000, 19.200000, 2.000000, 0.313400, 0.000000], - [2.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.342830, 0.000000], - [3.000000, 1.000000, 10.100000, 2.000000, 0.149820, 0.000000], - [3.000000, 2.000000, 13.130000, 2.000000, 0.162250, 0.000000], - [3.000000, 3.000000, 20.200000, 2.000000, 0.299890, 0.000000], - [3.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.352310, 0.000000], - [4.000000, 1.000000, 10.100000, 2.000000, 0.147470, 0.000000], - [4.000000, 2.000000, 13.130000, 2.000000, 0.159900, 0.000000], - [4.000000, 3.000000, 20.200000, 2.000000, 0.296030, 0.000000], - [4.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.342410, 0.000000] - ], - "ur_en_ts_buy_rate": 0, - "ur_en_ts_sell_rate": 0, - "ur_enable_billing_demand": 0, - "ur_metering_option": 0, - "ur_monthly_fixed_charge": 0, - "ur_monthly_min_charge": 0, - "ur_nb_apply_credit_current_month": 0, - "ur_nb_credit_expire": 0, - "ur_nm_credit_month": 0, - "ur_nm_credit_rollover": 0, - "ur_nm_yearend_sell_rate": 0, - "ur_ts_buy_rate": [0.000000], - "ur_ts_sell_rate": [0.000000], - "ur_yearzero_usage_peaks": [0.000000] + "start_day_of_year": 0 }, "SystemOutput": { "degradation": [0.000000], @@ -407,9 +289,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_MSLFSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_MSLFSingleOwner.json index c9ffd6483c..a55a9a1cba 100644 --- a/api/api_autogen/library/defaults/Singleowner_MSLFSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_MSLFSingleOwner.json @@ -412,9 +412,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_MSPTSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_MSPTSingleOwner.json index 78fae29343..7678b3d15e 100644 --- a/api/api_autogen/library/defaults/Singleowner_MSPTSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_MSPTSingleOwner.json @@ -411,9 +411,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_PTESSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PTESSingleOwner.json index dab57240b9..fae3b3263a 100644 --- a/api/api_autogen/library/defaults/Singleowner_PTESSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PTESSingleOwner.json @@ -292,9 +292,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_PVBatterySingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PVBatterySingleOwner.json index a54bdcb740..efb459354d 100644 --- a/api/api_autogen/library/defaults/Singleowner_PVBatterySingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PVBatterySingleOwner.json @@ -426,9 +426,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_PVWattsBatterySingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PVWattsBatterySingleOwner.json index b9e4bfd9f7..d06ff9e8cf 100644 --- a/api/api_autogen/library/defaults/Singleowner_PVWattsBatterySingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PVWattsBatterySingleOwner.json @@ -426,9 +426,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_PVWattsSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PVWattsSingleOwner.json index eca97f7978..263e56c216 100644 --- a/api/api_autogen/library/defaults/Singleowner_PVWattsSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PVWattsSingleOwner.json @@ -410,9 +410,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_PVWattsWindBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PVWattsWindBatteryHybridSingleOwner.json index a8c31b7b14..81c7fa9ef2 100644 --- a/api/api_autogen/library/defaults/Singleowner_PVWattsWindBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PVWattsWindBatteryHybridSingleOwner.json @@ -396,9 +396,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] }, diff --git a/api/api_autogen/library/defaults/Singleowner_PVWattsWindFuelCellBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PVWattsWindFuelCellBatteryHybridSingleOwner.json index 778345f606..54405a0705 100644 --- a/api/api_autogen/library/defaults/Singleowner_PVWattsWindFuelCellBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PVWattsWindFuelCellBatteryHybridSingleOwner.json @@ -397,9 +397,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] }, diff --git a/api/api_autogen/library/defaults/Singleowner_PhotovoltaicWindBatteryHybridSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PhotovoltaicWindBatteryHybridSingleOwner.json index 31503e05e2..7a3d40fe61 100644 --- a/api/api_autogen/library/defaults/Singleowner_PhotovoltaicWindBatteryHybridSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PhotovoltaicWindBatteryHybridSingleOwner.json @@ -411,9 +411,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] }, diff --git a/api/api_autogen/library/defaults/Singleowner_PhysicalTroughSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_PhysicalTroughSingleOwner.json index a9db598a55..4504bb0264 100644 --- a/api/api_autogen/library/defaults/Singleowner_PhysicalTroughSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_PhysicalTroughSingleOwner.json @@ -410,9 +410,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_StandaloneBatterySingleOwner.json b/api/api_autogen/library/defaults/Singleowner_StandaloneBatterySingleOwner.json index cf9088e580..19f32d1927 100644 --- a/api/api_autogen/library/defaults/Singleowner_StandaloneBatterySingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_StandaloneBatterySingleOwner.json @@ -419,9 +419,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json b/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json index 04fd6e987b..f90458a6a9 100644 --- a/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json +++ b/api/api_autogen/library/defaults/Singleowner_WindPowerSingleOwner.json @@ -407,9 +407,11 @@ "energy_expenses_ret": [100.000000], "energy_revenue_ret": [100.000000], "non_energy_expenses": [0.000000], + "non_energy_expenses_ds": 1, "non_energy_expenses_escal": 0, "non_energy_expenses_ret": [0.000000], "non_energy_revenue": [0.000000], + "non_energy_revenue_ds": 1, "non_energy_revenue_escal": 0, "non_energy_revenue_ret": [0.000000] } diff --git a/api/api_autogen/library/defaults/Utilityrate5_MEwaveSingleOwner.json b/api/api_autogen/library/defaults/Utilityrate5_MEwaveSingleOwner.json deleted file mode 100644 index 742cbfa7c2..0000000000 --- a/api/api_autogen/library/defaults/Utilityrate5_MEwaveSingleOwner.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "defaults": { - "Lifetime": { - "analysis_period": 20, - "inflation_rate": 2.5, - "system_use_lifetime_output": 0 - }, - "ElectricityRates": { - "en_electricity_rates": 0, - "rate_escalation": [0.000000], - "start_day_of_year": 0, - "ur_annual_min_charge": 0, - "ur_billing_demand_lookback_percentages": [ - [0.000000] - ], - "ur_billing_demand_lookback_period": 0, - "ur_billing_demand_minimum": 0, - "ur_dc_billing_demand_periods": [ - [0.000000] - ], - "ur_dc_enable": 0, - "ur_dc_flat_mat": [ - [0.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [1.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [2.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [3.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [4.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [5.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [6.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [7.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [8.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [9.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [10.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [11.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000] - ], - "ur_dc_sched_weekday": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_dc_sched_weekend": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_dc_tou_mat": [ - [1.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000], - [2.000000, 1.000000, 99999999999999997748809823456034029568.000000, 0.000000] - ], - "ur_ec_sched_weekday": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_ec_sched_weekend": [ - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000], - [1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000] - ], - "ur_ec_tou_mat": [ - [1.000000, 1.000000, 9.600000, 2.000000, 0.167560, 0.000000], - [1.000000, 2.000000, 12.480000, 2.000000, 0.179990, 0.000000], - [1.000000, 3.000000, 19.200000, 2.000000, 0.348050, 0.000000], - [1.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.457180, 0.000000], - [2.000000, 1.000000, 9.600000, 2.000000, 0.147470, 0.000000], - [2.000000, 2.000000, 12.480000, 2.000000, 0.159900, 0.000000], - [2.000000, 3.000000, 19.200000, 2.000000, 0.313400, 0.000000], - [2.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.342830, 0.000000], - [3.000000, 1.000000, 10.100000, 2.000000, 0.149820, 0.000000], - [3.000000, 2.000000, 13.130000, 2.000000, 0.162250, 0.000000], - [3.000000, 3.000000, 20.200000, 2.000000, 0.299890, 0.000000], - [3.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.352310, 0.000000], - [4.000000, 1.000000, 10.100000, 2.000000, 0.147470, 0.000000], - [4.000000, 2.000000, 13.130000, 2.000000, 0.159900, 0.000000], - [4.000000, 3.000000, 20.200000, 2.000000, 0.296030, 0.000000], - [4.000000, 4.000000, 99999999999999997748809823456034029568.000000, 2.000000, 0.342410, 0.000000] - ], - "ur_en_ts_buy_rate": 0, - "ur_en_ts_sell_rate": 0, - "ur_enable_billing_demand": 0, - "ur_metering_option": 0, - "ur_monthly_fixed_charge": 0, - "ur_monthly_min_charge": 0, - "ur_nb_apply_credit_current_month": 0, - "ur_nb_credit_expire": 0, - "ur_nm_credit_month": 0, - "ur_nm_credit_rollover": 0, - "ur_nm_yearend_sell_rate": 0, - "ur_ts_buy_rate": [0.000000], - "ur_ts_sell_rate": [0.000000], - "ur_yearzero_usage_peaks": [0.000000] - }, - "SystemOutput": { - "degradation": [0.000000], - "gen": [0] - }, - "Load": { - } - } -} \ No newline at end of file diff --git a/api/include/SAM_Singleowner.h b/api/include/SAM_Singleowner.h index d01753ae49..38b549a72f 100644 --- a/api/include/SAM_Singleowner.h +++ b/api/include/SAM_Singleowner.h @@ -2798,6 +2798,14 @@ extern "C" */ SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + /** + * Set non_energy_expenses_ds: Non-energy expenses impact debt service [%] + * options: None + * constraints: None + * required if: ?=1 + */ + SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_ds_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set non_energy_expenses_escal: Non-energy expenses escalation [%] * options: None @@ -2822,6 +2830,14 @@ extern "C" */ SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_aset(SAM_table ptr, double* arr, int length, SAM_error *err); + /** + * Set non_energy_revenue_ds: Non-energy revenue available for debt service [%] + * options: None + * constraints: None + * required if: ?=1 + */ + SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_ds_nset(SAM_table ptr, double number, SAM_error *err); + /** * Set non_energy_revenue_escal: Non-energy revenue escalation [%] * options: None @@ -3627,12 +3643,16 @@ extern "C" SAM_EXPORT double* SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_aget(SAM_table ptr, int* length, SAM_error *err); + SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_ds_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_escal_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double* SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_ret_aget(SAM_table ptr, int* length, SAM_error *err); SAM_EXPORT double* SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_aget(SAM_table ptr, int* length, SAM_error *err); + SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_ds_nget(SAM_table ptr, SAM_error *err); + SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_escal_nget(SAM_table ptr, SAM_error *err); SAM_EXPORT double* SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_ret_aget(SAM_table ptr, int* length, SAM_error *err); diff --git a/api/modules/SAM_Singleowner.cpp b/api/modules/SAM_Singleowner.cpp index 1a184d4cf9..556ca52222 100644 --- a/api/modules/SAM_Singleowner.cpp +++ b/api/modules/SAM_Singleowner.cpp @@ -2018,6 +2018,12 @@ SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_aset(SAM_ta }); } +SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_ds_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "non_energy_expenses_ds", number); + }); +} + SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_escal_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "non_energy_expenses_escal", number); @@ -2036,6 +2042,12 @@ SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_aset(SAM_tab }); } +SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_ds_nset(SAM_table ptr, double number, SAM_error *err){ + translateExceptions(err, [&]{ + ssc_data_set_number(ptr, "non_energy_revenue_ds", number); + }); +} + SAM_EXPORT void SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_escal_nset(SAM_table ptr, double number, SAM_error *err){ translateExceptions(err, [&]{ ssc_data_set_number(ptr, "non_energy_revenue_escal", number); @@ -5155,6 +5167,15 @@ SAM_EXPORT double* SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_aget(SAM return result; } +SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_ds_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "non_energy_expenses_ds", &result)) + make_access_error("SAM_Singleowner", "non_energy_expenses_ds"); + }); + return result; +} + SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_expenses_escal_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ @@ -5184,6 +5205,15 @@ SAM_EXPORT double* SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_aget(SAM_ return result; } +SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_ds_nget(SAM_table ptr, SAM_error *err){ + double result; + translateExceptions(err, [&]{ + if (!ssc_data_get_number(ptr, "non_energy_revenue_ds", &result)) + make_access_error("SAM_Singleowner", "non_energy_revenue_ds"); + }); + return result; +} + SAM_EXPORT double SAM_Singleowner_NonEnergyRevenue_non_energy_revenue_escal_nget(SAM_table ptr, SAM_error *err){ double result; translateExceptions(err, [&]{ diff --git a/deploy/runtime/macros/Wind Power/WIND Toolkit Download.lk b/deploy/runtime/macros/Wind Power/WIND Toolkit Download.lk new file mode 100644 index 0000000000..1cf87404ee --- /dev/null +++ b/deploy/runtime/macros/Wind Power/WIND Toolkit Download.lk @@ -0,0 +1,116 @@ +/*@ + +

This macro downloads wind resource data from two WIND Toolkit API endpoints for locations in the continental United States:

+ +
    +
  1. WIND Toolkit Data V2 (wtk-download): 5-, 15-, 30- and 60-minute data for 2007-2014.
  2. +
  3. HRRR MET Toolkit (wtk-hrrr-met-toolkit-v1-0-0-download): Hourly data for 2015-2025
  4. +
+ +

Click Run macro above to start the macro.

+ +

WIND Toolkit Data Downloads API documentation: WIND Toolkit APIs on NLR Developer Network.

+ +@*/ + + +// return an item's index in an array +function get_endpoint_index(arr, item) { + for (i=0; i<#arr; i++) { + if (arr[i] == item) { + return i; + } + } +} + +json = ''; +available_attributes = json_read('{"available_heights":[[10,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,400,500],[10,40,60,80,100,120,140,160,200]],"available_intervals":[[60],[5,15,30,60]],"available_years":[[2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025],[2007,2008,2009,2010,2011,2012,2013,2014]],"names":["wtk-hrrr-met-toolkit-v1-0-0-download","wtk-download"]}'); + +endpoint_list = available_attributes{'names'}; + +endpoint_name = choose_from_list(endpoint_list, 'Choose an endpoint', 'Choose a WIND Toolkit API endpoint', 0); + +endpoint_index = get_endpoint_index(endpoint_list, endpoint_name); + +choose_heights = false; + +arr = ['all data']; +for (i=0;i<#available_attributes{'available_heights'}[endpoint_index];i++) { + arr[i+1] = available_attributes{'available_heights'}[endpoint_index][i]; +} + +height = choose_from_list(arr, 'Choose a measurement height for ' + available_attributes{'names'}[endpoint_index], 'Choose a Height'); + +if (height == 'all data') { + attributes = ''; +} +else { + attributes = 'temperature_' + height + 'm,' + + 'winddirection_' + height + 'm,' + + 'windspeed_' + height + 'm,'; + // pressure data available at different heights than other data, so get all pressure data for interpolation by wind power model + // available pressure heights is different for different endpoints + if (endpoint_name == 'wtk-download') { + attributes += 'pressure_0m,pressure_100m,pressure_200m'; + } + if (endpoint_name == 'wtk-hrrr-met-toolkit-v1-0-0-download') { + attributes += 'pressure_0m,pressure_100m,pressure_200m,pressure_300m'; + } +} + +time_step = choose_from_list(available_attributes{'available_intervals'}[endpoint_index], 'Choose a data time step for ' + available_attributes{'names'}[endpoint_index], 'Choose a Time Step'); + +year = choose_from_list(available_attributes{'available_years'}[endpoint_index], 'Choose a year for ' + available_attributes{'names'}[endpoint_index], 'Choose a Year'); + +//base_url = webapi('windtoolkit'); +base_url = 'https://developer.nlr.gov/api/wind-toolkit/v2/wind/.csv?&api_key=&email=&full_name=SAM%20User&affiliation=none&reason=none&wkt=POINT(%20)&utc=false&leap_day=false&names=&interval=&attributes='; + +api_key = 'J9rjyBKwxH0RZ63WkHtqHo50RPs8JlZKeVKGRePX'; +email = 'sam.support@nrel.gov'; +lon = -104.9; +lat = 41.0; + +url = replace(base_url, '', api_key); +url = replace(url, '', email); +url = replace(url, '', endpoint_name); +url = replace(url, '', lon); +url = replace(url, '', lat); +url = replace(url, '', year); +url = replace(url, '', time_step); +url = replace(url, '', attributes); // blank attributes parameter downloads data for all available measurement heights + +fname = wfdownloaddir() + '/' + endpoint_name + '_' + lat + '_' + lon + '_' + year + '_' + time_step + '.csv'; + +outln('Downloading file...'); +ok = curl( url, {'file'=fname}); + +outln('Checking download...'); +line = ''; +if (!ok) { outln('Download failed.'); } +else { + results.api_error = ''; + f = open(fname, 'r'); + read_line(f, line); + // returned JSON instead of CSV file + if (strpos(line, '{')>-1) { + data = read_json(fname); + outln('Download failed:'); + outln(data.errors[0]); + remove_file(fname); + } + // returned file without wind data (assumes first line contains 'SiteID') + elseif (strpos(lower(line), 'site')<0) + { + outln('Download failed:'); + outln(line); + remove_file(fname); + } + // assume file is good + else + { + outln('Download complete!'); + outln(fname); + browse(wfdownloaddir()); + } + close(f); +} \ No newline at end of file diff --git a/deploy/runtime/webapis.conf b/deploy/runtime/webapis.conf index 5862740042..cad9740705 100644 --- a/deploy/runtime/webapis.conf +++ b/deploy/runtime/webapis.conf @@ -25,4 +25,4 @@ wave_query_hawaii=https://developer.nlr.gov/api/wave/v2/wave/hawaii-hindcast-dow wave_query_alaska=https://developer.nlr.gov/api/wave/v2/wave/alaska-hindcast-download.csv?api_key=&wkt=POINT(%20)&interval=180&email=&attributes=significant_wave_height,energy_period&names= wave_query_puertorico=https://developer.nlr.gov/api/wave/v2/wave/us-wave-v1-0-0-gom-and-pr-download.csv?api_key=&wkt=POINT(%20)&interval=180&email=&attributes=significant_wave_height,energy_period&names= website=https://sam.nlr.gov -windtoolkit=https://developer.nlr.gov/api/wind-toolkit/v2/wind/wtk-download.csv?&api_key=&email=&full_name=SAM%20User&affiliation=none&reason=none&wkt=POINT(%20)&utc=false&leap_day=false&names=&interval=&attributes= +windtoolkit=https://developer.nlr.gov/api/wind-toolkit/v2/wind/wtk-hrrr-met-toolkit-v1-0-0-download.csv?&api_key=&email=&full_name=SAM%20User&affiliation=none&reason=none&wkt=POINT(%20)&utc=false&leap_day=false&names=&interval=&attributes= diff --git a/doc/source/wind-power/wind_resource.rst b/doc/source/wind-power/wind_resource.rst index 61c7f7bdf4..69d80c524d 100644 --- a/doc/source/wind-power/wind_resource.rst +++ b/doc/source/wind-power/wind_resource.rst @@ -92,27 +92,16 @@ Download a file from the online NLR WIND Toolkit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. _filedownload: -NLR's Wind Integration National Dataset (WIND) Toolkit provides wind speed and direction, ambient temperature, and atmospheric pressure at 100 m above the ground data for 126,692 sites in the continental United States and parts of Central America and the Caribbean. Of those sites, 112,471 are on land, and 14,221 are offshore in coastal areas. The WIND Toolkit provides historical :ref:`single-year ` data for the time period between 2007 and 2014 for measurement heights between 10 and 200 meters above the ground. - -.. note:: Wind resource data for locations outside of the U.S. are available from `RE Data Explorer `__ and from the `WIND Toolkit API `__. Files from these resources are in a file format that is compatible with SAM, except for some WIND Toolkit API endpoints that use a different format. Please `let us know `__ if you need help using files from one of these resources. - -For a description of the WIND Toolkit and links to publications: - -* `Wind Integration National Dataset Toolkit website `__ - -The WIND Toolkit data downloads on the NLR Developer Network: - -* `WIND Toolkit API `__ - -Each wind data site is represented in the WIND Toolkit as a 2 km by 2 km grid cell. When you use SAM to request wind data for a project location, SAM sends the location's latitude and longitude to the `WIND Toolkit Data API `__. The toolkit finds the wind data grid cell nearest the project location and returns a weather file that SAM stores on your computer. SAM names the file using the latitude and longitude of the project location you provided. You can find the latitude and longitude of the wind data grid cell in the header of the weather file. When you use a street address in SAM to describe the project location, SAM translates the street address to a latitude and longitude using the Google Maps Geolocation API. +NLR's Wind Integration National Dataset (WIND) Toolkit provides wind resource data for the continental United States and other parts of the world. You can download files for the continental United States from SAM's Wind Resource page. Wind resource data for locations outside of the U.S. are available from `Wind Resource Database (WRDB) `__ and from the `WIND Toolkit API `__. Files from these resources are in a file format that is compatible with SAM, except for some WIND Toolkit API endpoints that use a different format. Please `let us know `__ if you need help using files from one of these resources. To download a weather file from the NLR WIND Toolkit: +..................................................... #. Click **Download**. #. Choose the **Street address or zip code** or **Location coordinates (deg)** option and type a latitude and longitude, street address, or zip code for the wind turbine or wind farm location. -#. Choose a time step in minutes. Available time steps are 5,  15, 30, and 60 minutes. Files with a smaller time steps will be larger. +#. Choose a time step in minutes. The only available time step is 60 minutes. #. Choose a year. @@ -122,7 +111,7 @@ To download a weather file from the NLR WIND Toolkit: SAM displays a message when the download is complete, and checks the box under **Use a wind resource file stored on your computer** and shows the path of the downloaded file. -SAM downloads a file in the :doc:`SAM CSV format for wind data <../weather-file-formats/weather_format_srw_wind>` from the WIND Toolkit for the site nearest the location you request, and stores in the folder indicated on the Wind Resource page under **Use a wind resource file stored on your computer**. +SAM downloads a file in the :doc:`SAM CSV format for wind data <../weather-file-formats/weather_format_csv_wind>` from the WIND Toolkit for the site nearest the location you request, and stores in the folder indicated on the Wind Resource page under **Use a wind resource file stored on your computer**. The latitude and longitude in the file name was translated from the street address above using the Google Maps Geolocation API. SAM includes the coordinates for the location you requested in the file name: diff --git a/samples/LK Scripts for SAM/wind-toolkit-download.lk b/samples/LK Scripts for SAM/wind-toolkit-download.lk new file mode 100644 index 0000000000..0ced65d5c9 --- /dev/null +++ b/samples/LK Scripts for SAM/wind-toolkit-download.lk @@ -0,0 +1,175 @@ +/* + +This script downloads wind resource data from two WIND Toolkit API endpoints: + +* WIND Toolkit Data V2 (wtk-download) + +* HRRR MET Toolkit (wtk-hrrr-met-toolkit-v1-0-0-download) + +It stores a list of API attributes for each endpoint in JSON. The script can be +modified to read the JSON from file, and the JSON can be modified to support +additional endpoints. + +Note that as of May 2026, the following endpoints generate files that work with +SAM's wind power model. This script can be modified to download files from any +of these endpoints: + +wtk-mexico-5min-download +offshore-north-atlantic-download +offshore-hawaii-download +wtk-now23-california-v1-0-0-5min-download +offshore-ca-download +offshore-mid-atlantic-download +central-asia-wind-download +wtk-kazakhstan-download +philippines-wtk-download +offshore-great-lakes-download +offshore-nw-pacific-download +wtk-led-climate-v1-0-0-download +vietnam-wtk-download +offshore-gulf-of-mexico-download +wtk-download +wtk-canada-5min-download +wtk-indonesia-v1-0-0-download +wtk-seasiawind-v3-download +wtk-guam-v1-0-0-hourly-download +wtk-hrrr-met-toolkit-v1-0-0-download +wtk-sup3rwind-ukraine-60min-download* +wtk-alaska-v1-0-0-download* +wtk-alaska-v1-0-0-download* +wtk-led-conus-download* + +*Wind power model simulations with giles from these endpoints have very low +capacity factors. + +WIND Toolkit Data Downloads API documentation: + +https://developer.nlr.gov/docs/wind/wind-toolkit/ + +*/ + + +// return an item's index in an array +function get_endpoint_index(arr, item) { + for (i=0; i<#arr; i++) { + if (arr[i] == item) { + return i; + } + } +} + +json = ''; +available_attributes = json_read('{"available_heights":[[10,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,400,500],[10,40,60,80,100,120,140,160,200]],"available_intervals":[[60],[5,15,30,60]],"available_years":[[2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025],[2007,2008,2009,2010,2011,2012,2013,2014]],"names":["wtk-hrrr-met-toolkit-v1-0-0-download","wtk-download"]}'); + +endpoint_list = available_attributes{'names'}; +outln(endpoint_list); +outln(); + +for (i=0; i<#endpoint_list; i++) { + outln(available_attributes{'names'}[i]); + outln(available_attributes{'available_heights'}[i]); + outln(available_attributes{'available_intervals'}[i]); + outln(available_attributes{'available_years'}[i]); + outln(); +} + +endpoint_name = choose_from_list(endpoint_list, 'Choose an endpoint', 'Choose a WIND Toolkit API endpoint', 0); +outln(endpoint_name); +outln(); + +endpoint_index = get_endpoint_index(endpoint_list, endpoint_name); +outln(endpoint_index); +outln(); + +outln(available_attributes{'names'}[endpoint_index]); +outln(available_attributes{'available_heights'}[endpoint_index]); +outln(available_attributes{'available_intervals'}[endpoint_index]); +outln(available_attributes{'available_years'}[endpoint_index]); +outln(); + +choose_heights = false; + +arr = ['all data']; +for (i=0;i<#available_attributes{'available_heights'}[endpoint_index];i++) { + arr[i+1] = available_attributes{'available_heights'}[endpoint_index][i]; +} + +height = choose_from_list(arr, 'Choose a measurement height for ' + available_attributes{'names'}[endpoint_index], 'Choose a Height'); + +if (height == 'all data') { + attributes = ''; +} +else { + attributes = 'temperature_' + height + 'm,' + + 'winddirection_' + height + 'm,' + + 'windspeed_' + height + 'm,'; + // pressure data available at different heights than other data, so get all pressure data for interpolation by wind power model + // available pressure heights is different for different endpoints + if (endpoint_name == 'wtk-download') { + attributes += 'pressure_0m,pressure_100m,pressure_200m'; + } + if (endpoint_name == 'wtk-hrrr-met-toolkit-v1-0-0-download') { + attributes += 'pressure_0m,pressure_100m,pressure_200m,pressure_300m'; + } +} + +time_step = choose_from_list(available_attributes{'available_intervals'}[endpoint_index], 'Choose a data time step for ' + available_attributes{'names'}[endpoint_index], 'Choose a Time Step'); +outln(time_step); + +year = choose_from_list(available_attributes{'available_years'}[endpoint_index], 'Choose a year for ' + available_attributes{'names'}[endpoint_index], 'Choose a Year'); +outln(year); + +//base_url = webapi('windtoolkit'); +base_url = 'https://developer.nlr.gov/api/wind-toolkit/v2/wind/.csv?&api_key=&email=&full_name=SAM%20User&affiliation=none&reason=none&wkt=POINT(%20)&utc=false&leap_day=false&names=&interval=&attributes='; + +api_key = 'J9rjyBKwxH0RZ63WkHtqHo50RPs8JlZKeVKGRePX'; +email = 'sam.support@nrel.gov'; +lon = -104.9; +lat = 41.0; + +url = replace(base_url, '', api_key); +url = replace(url, '', email); +url = replace(url, '', endpoint_name); +url = replace(url, '', lon); +url = replace(url, '', lat); +url = replace(url, '', year); +url = replace(url, '', time_step); +url = replace(url, '', attributes); // blank attributes parameter downloads data for all available measurement heights + +outln(url); + +fname = wfdownloaddir() + '/' + endpoint_name + '_' + lat + '_' + lon + '_' + year + '_' + time_step + '.csv'; + +outln('Downloading file...'); +ok = curl( url, {'file'=fname}); + +outln('Checking download...'); +line = ''; +if (!ok) { outln('Download failed.'); } +else { + results.api_error = ''; + f = open(fname, 'r'); + read_line(f, line); + // returned JSON instead of CSV file + if (strpos(line, '{')>-1) { + data = read_json(fname); + outln('Download failed:'); + outln(data.errors[0]); + remove_file(fname); + } + // returned file without wind data (assumes first line contains 'SiteID') + elseif (strpos(lower(line), 'site')<0) + { + outln('Download failed:'); + outln(line); + remove_file(fname); + } + // assume file is good + else + { + outln('Download complete!'); + outln(fname); + browse(wfdownloaddir()); + } + close(f); +} \ No newline at end of file diff --git a/src/windtoolkit.cpp b/src/windtoolkit.cpp index 98e10a2af6..55d2000801 100644 --- a/src/windtoolkit.cpp +++ b/src/windtoolkit.cpp @@ -71,38 +71,32 @@ WindToolkitDialog::WindToolkitDialog(wxWindow *parent, const wxString &title) txtLat = new wxTextCtrl(this, ID_txtLat, "40", wxDefaultPosition, wxDefaultSize, 0, ::wxTextValidator(wxFILTER_NUMERIC) ); txtLon = new wxTextCtrl(this, ID_txtLon, "-116", wxDefaultPosition, wxDefaultSize, 0, ::wxTextValidator(wxFILTER_NUMERIC) ); + // as of May 2026, WIND Toolkit HRRR MET data is available for 2015-2025 wxArrayString years; - years.Add("2007"); - years.Add("2008"); - years.Add("2009"); - years.Add("2010"); - years.Add("2011"); - years.Add("2012"); - years.Add("2013"); - years.Add("2014"); - - wxString InitialValue = "2014"; + int year_start = 2015; + int year_end = 2025; + for (int yr = year_start; yr <= year_end; ++yr) + years.Add(wxString::Format("%d", yr)); + + wxString InitialValue = "2025"; cboYears = new wxComboBox(this, ID_cboYears, InitialValue, wxDefaultPosition, wxDefaultSize, years, wxCB_READONLY); wxArrayString intervals; - intervals.Add("5"); - intervals.Add("15"); - intervals.Add("30"); intervals.Add("60"); InitialValue = "60"; cboIntervals = new wxComboBox(this, ID_cboIntervals, InitialValue, wxDefaultPosition, wxDefaultSize, intervals, wxCB_READONLY); + int hub_height_start = 20; + int hub_height_end = 300; + int hub_height_step = 20; wxArrayString hubheights; hubheights.Add("10"); - hubheights.Add("40"); - hubheights.Add("60"); - hubheights.Add("80"); - hubheights.Add("100"); - hubheights.Add("120"); - hubheights.Add("140"); - hubheights.Add("160"); - hubheights.Add("200"); + for (int hh = hub_height_start; hh <= hub_height_end; hh += hub_height_step){ + hubheights.Add(wxString::Format("%d", hh)); + } + hubheights.Add("400"); + hubheights.Add("500"); lstHubheights = new wxListBox(this, ID_lsthubheights, wxDefaultPosition, wxDefaultSize, hubheights, wxLB_MULTIPLE); diff --git a/test_results_win64.csv b/test_results_win64.csv index 72992828a6..4e9ae0e33f 100644 --- a/test_results_win64.csv +++ b/test_results_win64.csv @@ -41,7 +41,7 @@ PV Battery,Sale Leaseback,231595056,11.9576,9.7153,; Warning: IRR at end of anal PVWatts Battery,Residential,13799.1,22.8225,NA,; PVWatts Battery,Commercial,931773,9.09694,NA,; PVWatts Battery,Third Party,13799.1,NA,NA,; -PVWatts Battery,Host Developer,931773,16.2293,16.2095,; Warning: NPV is $-1736.73. A negative NPV indicates project costs are higher than revenues. +PVWatts Battery,Host Developer,931773,16.2293,16.2095,; Warning: NPV is $-1736.75. A negative NPV indicates project costs are higher than revenues. PVWatts Battery,Single Owner,205381584,12.0129,9.82049,; Warning: IRR in target year is not a number (NaN). This can indicate that revenues are too low to cover costs, or that they are excessively high compared to costs. Warning: NPV is $-4.23862e+07. A negative NPV indicates project costs are higher than revenues. PVWatts Battery,Merchant Plant,199956368,39.1307,NA,; Warning: IRR at end of analysis period is not a number (NaN). This can indicate that revenues are too low to cover costs, or that they are excessively high compared to costs. Warning: IRR in target year is not a number (NaN). This can indicate that revenues are too low to cover costs, or that they are excessively high compared to costs. Warning: NPV is $-6.70259e+08. A negative NPV indicates project costs are higher than revenues. Warning: Debt percent is -219.413. A debt percent less than 0% may indicate the mininum EBITDA cannot support any debt in at least one year. PVWatts Battery,Leveraged Partnership Flip,205381584,11.5681,9.82049,; Warning: IRR at end of analysis period is not a number (NaN). This can indicate that revenues are too low to cover costs, or that they are excessively high compared to costs. Warning: IRR in target year is not a number (NaN). This can indicate that revenues are too low to cover costs, or that they are excessively high compared to costs. Warning: NPV is $-3.31104e+07. A negative NPV indicates project costs are higher than revenues. @@ -110,8 +110,8 @@ Generic CSP System,All Equity Partnership Flip,592360448,15.1957,11.2639,; Warni Generic CSP System,Sale Leaseback,592360448,15.3777,11.2639,; Warning: NPV is $-2.40267e+08. A negative NPV indicates project costs are higher than revenues. Notice: time 0.00 { Generic solar model 2 }:\ The interpolation code must be 1 (interpolate) or 2 (nearest neighbor)The input value was 0, so it was reset to 1 Generic CSP System,LCOE Calculator,592360448,NA,NA,; Notice: time 0.00 { Generic solar model 2 }:\ The interpolation code must be 1 (interpolate) or 2 (nearest neighbor)The input value was 0, so it was reset to 1 Generic CSP System,None,592360448,NA,NA,; Notice: time 0.00 { Generic solar model 2 }:\ The interpolation code must be 1 (interpolate) or 2 (nearest neighbor)The input value was 0, so it was reset to 1 -MSPT IPH,None,1497518592,NA,NA,; -MSPT IPH,LCOH Calculator,1497518592,NA,NA,; +MSPT IPH,None,1497518720,NA,NA,; +MSPT IPH,LCOH Calculator,1497518720,NA,NA,; MSPT IPH,Single Owner,1550386816,6.10372,6.83681,; Notice: At time = 6087 CR_ON__PC_RM_HI__TES_FULL__AUX_OFF converged to a PC thermal power of 278.765 MWt less than the target of 279.126 MWt. Physical Trough IPH,None,20899050,NA,NA,; Physical Trough IPH,LCOH Calculator,20899050,NA,NA,;