Releases: NREL/REopt_API
Releases · NREL/REopt_API
Energy Resilience Performance tool, IRA defaults updates, CHP defaults, other minor
What's Changed
- Add db index for MessageModel and PVModel by @Bill-Becker in #420
- change ubuntu-18.04 to ubuntu-latest in github actions by @hdunham in #433
- Multiple outages by @hdunham in #381
- TES MACRS by @adfarth in #432
- IRA tax updates to PV, WIND, CHP, ELECTRIC STORAGE, & THERMAL STORAGE by @bpulluta in #434
- Return has_stacktrace true/false value by @rathod-b in #429
- Add /dev/schedule_stats endpoint by @Bill-Becker in #436
- Energy Performance and Reliability Tool by @hdunham in #365
- Chp defaults mods; add and change outputs (v3); bug fix (v2) by @Bill-Becker in #440
- add and change outputs (v3); bug fix (v2) by @adfarth in #435
- Energy Resilience Performance tool, IRA defaults updates, CHP defaults, other minor by @Bill-Becker in #438
New Contributors
Full Changelog: v2.8.0...v2.9.0
From CHANGELOG.md:
v2.9.0
Minor Updates
Added
- Energy Resilience and Performance Tool:
- Uses functionality added to the REopt Julia package in v0.27.0 to calculate outage survival reliability metrics for a DER scenario, which can be based on the results of a REopt optimization
- Django models ERPMeta, ERPGeneratorInputs, ERPPrimeGeneratorInputs, ERPElectricStorageInputs, ERPPVInputs, ERPOutageInputs, ERPOutputs
/erp
endpoint to which users POST ERP inputs (callsERPJob()
)/erp/<run_uuid>/results
endpoint that GETs the results of an ERP job (callserp_results()
)/erp/help
endpoint that GETs the ERP input field info (callserp_help()
)/erp/chp_defaults
endpoint that GETs ERP CHP/prime generator input defaults based on parametersprime_mover
,is_chp
, andsize_kw
(callserp_chp_prime_gen_defaults()
)- Tests in
resilience+stats/tests/test_erp.py
- In job/ app (v3), added Financial year_one_om_costs_before_tax_bau, lifecycle_om_costs_after_tax_bau
- Added field production_factor_series to Django models WindOutputs and PVOutputs
- In REoptjlMessageOutputs added a has_stacktrace field to denote if response has a stacktrace error or not. Default is False.
- Added access to the multiple outage stochastic/robust modeling capabilities in REopt.jl. Not all inputs and outputs are exposed, but the following are:
- SiteInputs: min_resil_time_steps
- ElectricUtilityInputs: outage_start_time_steps, outage_durations, outage_probabilities
- OutageOutputs: expected_outage_cost, max_outage_cost_per_outage_duration, unserved_load_series, unserved_load_per_outage, microgrid_upgrade_capital_cost, generator_fuel_used_per_outage
- Added test using multiple outage modeling
- Add /dev/schedule_stats endpoint
Changed
- Update REopt.jl to v0.28.0 for job app (/dev -> v3)
/job/chp_defaults
endpoint updated to take optional electric load metrics for non-heating CHP (Prime Generator in UI)- Changed
/chp_defaults
input ofexisting_boiler_production_type
tohot_water_or_steam
CHP.size_class
starting at 0 for average of other size_classesCHP.max_size
calculated based on heating load or electric load
- Changed
- In job/ app (v3), changed Financial breakeven_cost_of_emissions_reduction_per_tonnes_CO2 to breakeven_cost_of_emissions_reduction_per_tonne_CO2
- In job/ app (v3), changed default ElectricLoad year to 2022 if user provides load data and 2017 if using CRBD
- Changed
scalar_to_vector
helper function toscalar_or_monthly_to_8760
- Changed GeneratorInputs fields fuel_slope_gal_per_kwh and fuel_intercept_gal_per_hr to electric_efficiency_full_load and electric_efficiency_half_load to represent the same fuel burn curve in a different way consistent with CHPInputs
- Updated the following default values to job/ app (v3):
- federal_itc_fraction to 0.3 (30%) in models PVInputs, WindInputs, and CHPInputs
- total_itc_fraction to 0.3 (30%) in models HotWaterStorageInputs, ColdWaterStorageInputs, and ElectricStorageInputs
- *macrs_bonus_fraction to 0.8 (80%) in models PVInputs, WindInputs, CHPInputs, PV, HotWaterStorageInputs, ColdWaterStorageInputs, and ElectricStorageInputs
- macrs_option_years to 7 years in models HotWaterStorageInputs and ColdWaterStorageInputs
- In
reo/nested_inputs.py
v2 inputs (defaults_dict[2]
), updated the following default values in models ColdThermalStorageInputs, HotThermalStorageInputs- macrs_option_years to 7 (years)
- macrs_bonus_pct to 0.8 (80%)
- In
reo/nested_inputs.py
v2 inputs (defaults_dict[2]
), updated the following default values:- ColdTES, HotTES: macrs_option_years to 7 (years)
- ColdTES, HotTES: *macrs_bonus_pct to 0.8 (80%)
- Updated the following default values to job/ app (v3):
- PV, Wind, Storage, CHP, Hot Water Storage, Cold Water Storage, Electric Storage: federal_itc_fraction(PV,Wind,CHP) and total_itc_fraction(Hot Water Storage, Cold Water Storage, Electric Storage) to 0.3 (30%)
- PV, Wind, Storage, CHP, Hot Water Storage, Cold Water Storage, Electric Storage: *macrs_bonus_fraction to 0.8 (80%)
- Hot Water Storage and Cold Water Storage: macrs_option_years to 7 years
Use TransactionTestCase instead of TestCase (this avoids whole test being wrapped in a transaction which leads to a TransactionManagementError when doing a database query in the middle)
- Updated ubuntu-18.04 to ubuntu-latest in GitHub push/pull tests because 18.04 was deprecated in GitHub Actions
Fixed
- In reo (v2), calculation of
net_capital_costs_plus_om
was previously missing addition sign for fuel charges. Corrected this equation.
v2.8.0: IRA tax incentive and GhpGhx.jl updates
What's Changed
- Use GhpGhx.jl in v2 by @Bill-Becker in #411
- Tax incentives updates from passage of Inflation Reduction Act in v2 by @adfarth in #404
- master <- dev: IRA incentives and GhpGhx.jl updates to v2 by @adfarth in #412
Full Changelog: v2.7.1...v2.8.0
v2.7.1
What's Changed
- endpoints edits for v3 by @indu-manogaran in #401
- Year one name changes by @adfarth in #396
- master<-dev v3 name changes by @adfarth in #403
- Add addressable_load_fraction to HeatingLoads by @Bill-Becker in #398
- Redis memory tweak by @Bill-Becker in #400
- Change Redis memory setting, add Heating input by @Bill-Becker in #405
New Contributors
- @indu-manogaran made their first contribution in #401
Full Changelog: v2.6.0...v2.7.1
Error passing from REopt.jl and Add Thermal Storages to job app (/dev)
What's Changed
- Fix /futurecosts urls by @Bill-Becker in #389
- Fix /futurecost endpoint URL routing issue by @Bill-Becker in #390
- Add code to job/ app to accept Hot & Cold Thermal Storage by @zolanaj in #357
- Return REopt errors warns back to user by @rathod-b in #370
- Error passing from Julia and Add Thermal Storages to job app (/dev) by @Bill-Becker in #397
Full Changelog: v2.5.0...v2.6.0
v2.6.0
Minor Updates
Added
- REoptjlMessageOutputs model to capture errors and warnings returned by REoptjl during input processing and post optimization
- Missing output fields for ExistingBoilerOutputs model
- API test
job\test\posts\all_inputs_test.json
to include all input models in a single API test
- added HotThermalStorageInputs model
- added HotThermalStorageOutputs model
- added ColdThermalStorageInputs model
- added ColdThermalStorageOutputs model
- add HotThermalStorageOutputs
- add ColdThermalStorageOutputs
0012_coldthermalstorageinputs....
file used to add new models to the db
Changed
- Default values for the following fields were changed to align them with REopt API v2 (i.e. stable, and REopt.jl) defaults. As-is, these values are aligned with REopt v1 defaults. Units were unchanged.
- FinancialInputs.elec_cost_escalation_rate_fraction from 0.023 to 0.019
- FinancialInputs.offtaker_discount_rate_fraction from 0.083 to 0.0564
- FinancialInputs.owner_discount_rate_fraction from 0.083 to 0.0564
- PVInputs.installed_cost_per_kw from 1600 to 1592
- PVInputs.om_cost_per_kw from 16 to 17
- WindInputs.om_cost_per_kw from 16 to 35
- ElectricStorageInputs.installed_cost_per_kw from 840 to 775
- ElectricStorageInputs.installed_cost_per_kwh from 420 to 388
- ElectricStorageInputs.replace_cost_per_kw from 410 to 440
- ElectricStorageInputs.replace_cost_per_kwh from 200 to 220
- Modified
julia_src\http.jl
andjulia_src\cbc\http.jl
to return status 400 when REopt responds with an error - Updated
r["Messages"]
inviews.py
to include REoptjlMessageOutputs errors and warnings
Add Cooling and Heating Load Outputs to job app (/dev -> /v3)
What's Changed
- Bump protobuf from 3.19.3 to 3.19.5 by @dependabot in #369
- Pip Updates Suggested by Git Bot by @Bill-Becker in #383
- Add CoolingLoads model to job app by @rathod-b in #329
- Cooling Load into Job app, for /dev -> /v3 by @Bill-Becker in #388
Full Changelog: v2.4.0...v2.5.0
v2.5.0
Minor Updates
Added
0011_coolingloadinputs....
file used to add new models to the db
Injob/models.py
:- added ExistingChillerInputs model
- added ExistingChillerOutputs model
- added CoolingLoadInputs model
- added CoolingLoadOutputs model
- added HeatingLoadOutputs model
Injob/process_results.py
: - add ExistingChillerOutputs
- add CoolingLoadOutputs
- add HeatingLoadOutputs
In `job/validators.py: - add time series length validation on CoolingLoadInputs->thermal_loads_ton and CoolingLoadInputs->per_time_step_fractions_of_electric_load
Injob/views.py
: - add new input/output models to properly save the inputs/outputs
Add CHP, /chp_defaults, and /simulated_load end to /dev for v3
v2.4.0
Minor Updates
Added
- In
job/models.py
:- add CHPInputs model
- add CHPOutputs model
- In
job/process_results.py
add CHPOutputs - In
job/validators.py
add new input models - In
job/views.py
:- add new input/output models to properly save the inputs/outputs
- add
/chp_defaults
endpoint which calls the http.jl chp_defaults endpoint - add
/simulated_load
endpoint which calls the http.jl simulated_load endpoint
What's Changed
- add capability to job/ app (API v3 using REopt.jl backend) to handle CHP by @hdunham in #340
- Add CHP, /chp_defaults, and /simulated_load end to /dev for v3 by @Bill-Becker in #382
Full Changelog: v2.3.1...v2.4.0
Fix Lookback
Fix lookback parameter naming and timesteps, see #379.
/job REopt.jl version update, incl name changes (e.g. pct -> fraction), add Boiler, and SteamTurbine
/job REopt.jl version update, incl name changes (e.g. pct -> fraction), add Boiler, and SteamTurbine
v2.3.0
Minor Updates
Changed
The following name changes were made in the job/
endpoint and julia_src/http.jl
:
- Change "_pct" to "_rate_fraction" for input and output names containing "discount", "escalation", and "tax_pct" (financial terms)
- Change "pct" to "fraction" for all other input and output names (e.g., "min_soc", "min_turndown")
- Change prod_factor_series to production_factor_series
- Updated the version of REopt.jl in /julia_src to v0.20.0 which includes the addition of:
- Boiler tech from the REopt_API (known as NewBoiler in API)
- SteamTurbine tech from the REopt_API
See PR #367.
Deployment updates and dev/job/v3 additions
Kubernetes deployment updates and memory allocation adjustments to mitigate memory overload on servers, as well as:
From CHANGELOG.md:
Minor Updates
Fixed
- Require ElectricTariff key in inputs when Settings.off_grid_flag is false
- Create and save ElectricUtilityInputs model if ElectricUtility key not provided in inputs when Settings.off_grid_flag is false, in order to use the default inputs in
job/models.py
- Added message to
messages()
to alert user if valid ElectricUtility input is provided when Settings.off_grid_flag is true - Register
- Make all urls available from stable/ also available from v2/. Includes registering
OutageSimJob()
andGHPGHXJob()
to the 'v2' API and adding missing paths to urlpatterns inurls.py
.
Changed
job/models.py
:- remove Generator
fuel_slope_gal_per_kwh
andfuel_intercept_gal_per_hr
defaults based on size, keep defaults independent of size - changed
get_input_dict_from_run_uuid
to accomodate new models - changed ElectricLoadInputs.wholesale_rate to use
scalar_to_vector
function
- remove Generator
job/validators.py
: Align PV tilt and aziumth defaults with API v2 behavior, based on location and PV type
Added
0005_boilerinputs....
file used to add new models to the dbjob/
endpoint: Add inputs and validation to model off-grid wind
Injob/models.py
:- added ExistingBoilerInputs model
- added ExistingBoilerOutputs model
- added SpaceHeatingLoadInputs model
- added
scalar_to_vector
to convert scalars of vector of 12 elements to 8760 elements - GeneratorInputs (must add to CHP and Boiler when implemented in v3)
- added
emissions_factor_lb_<pollutant>_per_gal
for CO2, NOx, SO2, and PM25 - add
fuel_renewable_energy_pct
- added
- ElectricUtilityInputs
- add
emissions_factor_series_lb_<pollutant>_per_kwh
for CO2, NOx, SO2, and PM25
- add
- Settings
- add
include_climate_in_objective
andinclude_health_in_objective
- add
- SiteInputs
- add
renewable_electricity_min_pct
,renewable_electricity_max_pct
, andinclude_exported_renewable_electricity_in_total
- add
CO2_emissions_reduction_min_pct
,CO2_emissions_reduction_max_pct
, andinclude_exported_elec_emissions_in_total
- add
- FinancialInputs
- add
CO2_cost_per_tonne
,CO2_cost_escalation_pct
- add
<pollutant>_grid_cost_per_tonne
,<pollutant>_onsite_fuelburn_cost_per_tonne
, and<pollutant>_cost_escalation_pct
for NOx, SO2, and PM25
- add
- FinancialOutputs
- add lifecycle_fuel_costs_after_tax
- SiteOutputs
- add
renewable_electricity_pct
,total_renewable_energy_pct
- add
year_one_emissions_tonnes_<pollutant>
,year_one_emissions_from_fuelburn_tonnes_<pollutant>
,lifecycle_emissions_tonnes_<pollutant>
, andlifecycle_emissions_from_fuelburn_tonnes_<pollutant>
for CO2, NOx, SO2, and PM25
- add
- FinancialOutputs
- add
breakeven_cost_of_emissions_reduction_per_tonnes_CO2
Injob/process_results.py
:
- add
- add ExistingBoilerOutputs
Injob/test/test_job_endpoint.py
: - test that AVERT and EASIUR defaults for emissions inputs not provided by user are passed back from REopt.jl and saved in database
- add a testcase to validate that API is accepting/returning fields related to new models.
In'job/validators.py
: - add new input models
Injob/views.py
: - Added SiteInputs to
help
endpoint - Added SiteOutputs to
outputs
endpoint - add new input/output models to properly save the inputs/outputs
Point /stable/job to v2 of reo app
The /stable/job
endpoint was erroneously pointing to v1
of the reo
app still, and it was meant to point to v2
(new default values for some inputs).
Also, many updates to the in-development job endpoint (/dev/job
URL) which integrates the REopt Julia Package (REopt.jl).
See PR #342 for more details and links to other PRs that are part of this merge.
See CHANGELOG.md for more details of changes made.