Releases: rl-institut/multi-vector-simulator
Releases · rl-institut/multi-vector-simulator
[1.1.1] Lower Loads
Added
- Introduce reducable demand. It should be listed within sinks, and provided an efficiency (number between 0 and 1). This efficiency correspond to the percent of the demand which must be provided (critical demand). The oemof-solph sinks which models the non-critical part of the demand has very small variable_costs such that it should not influence the costs calculations but should be fulfilled rather than dumping energy into excess sinks. Developed for the server version. (#969)
- Possibility to set min and or max for the load of a transformer and solve for a non-convex optimization. The simulation time can be quite long with cbc solver! Developed for the server version. (#969)
Changed
-
Add costs to excess sinks of busses. If the dictionary containing the information about the bus contains a key "price", its value will be applied to the variable costs of the sink (unit of the price is currency/energy unit, default currency/kWh). Developed for the server version. (#969)
-
black version was bumped to 24.3.0 (#971)
[1.1.0] Upgrade oemof-solph from 0.4.Z to 0.5.Z
Added
- Benchmark test (
tests/benchmark_test_inputs/objective_value_exception_equal_annuity
) for inF0_output.parse_simulation_log
and data stored toSIMULATION_RESULTS
as well asOBJECTIVE_VALUE
(#901) - Constants
BENCHMARK_TEST_INPUT_FOLDER
andBENCHMARK_TEST_OUTPUT_FOLDER
intests/_constants.py
(#901) - Tests
E3.test_add_total_consumption_from_provider_electricity_equivalent_two_providers_one_energy_carrier
andE3.test_add_total_feedin_electricity_equivalent_two_providers_one_energy_carrier
(#932) - Add the argument
return_les
to the functionD0.run_oemof
to return the energy system if set toTrue
(#923) - Save the content of the lp file into a string in the
dict_values
underSIMULATION_SETTINGS->OUTPUT_LP_FILE
in server mode (#923) - Set
OUTPUT_LP_FILE
value to be by defaultFalse
when coming from EPA in server mode (#923) - Function
server.run_sensitivity_analysis_step
to perform one step of a sensitivity analysis (#936) - Function
utils.nested_dict_crawler
to return mapping of path within a nested dict to the keys at the lowest nested level (#936) - Test
test_utils.TestAccessKPIs
to test the nested dict utils functions (#936) sankey
method to theESGraphRenderer
class to return a sankey diagram (#935)plot_sankey_diagramm
function inD0_modelling_and_optimization.py
to add the dict of the sankey diagram (#935)ready_sankey_diagram
inF2_autoreport.py
to add sankey diagram to output and report (#935)- "maximum_add_cap" to the keys returned to EPA after simulating got production assets (#939)
PARAMETER_DOC
inutils
can be used to get information about a parameter directly from the csv filedocs/MVS_parameters_list.csv
(#956)- Now oemof-solph ExtractionTurbine CHP component can be simulated (only tested from the json input) (#952)
- The heat pump and chp components can now be simulated with MVS although no explicit support/documentation is present for running from the command line (#954)
- Saving the raw oemof result in a pandas Dataframe with multi index (#958)
- Raise error for wrongly formatted emission factor (#965)
Changed
F0_output.parse_simulation_log
, so thatSIMULATION_RESULTS
are not overwritten anymore (#901)input_template/csv_elements
: Added missing parameters and generalized units (#904)CONTRIBUTING.md
according to last lessons learnt (#904)- Set numpy version to lower or equal than
1.19.4
(#924) F2.create_app()
to specify tab name of Dash report toscenario_name
(scenario_id
) instead ofDash
(#934)- Bugfix in functions
test_add_total_consumption_from_provider_electricity_equivalent
andE3.test_add_total_feedin_electricity_equivalent
(#932) version.py
: Version number increased to 1.0.2dev, so simulations run before and after this fix can easily be identified (in the autoreport) (#932)- Enable capacity optimization for storage assets in the epa (#936)
- Make the
utils
functionget_nested_value
andset_nested_value
raise a Key error with a traceback indicating where in the nested dict this key was missing to help debugging (#936) - When the user ask for images to be produced (
-pdf
or-png
options) a sankey diagram is added to the report and to thedict_values
under[PATH_TO_PLOTS][PLOT_SANKEY]
(#935) - Update requirements for numpy (v 1.21.0 or greater) and for dash (v 2.3.1 or greater) (#938)
OPTIMIZED_ADD_CAP
replaced by "optimized_add_cap" in the assets keys returned to EPA after simulating (#939)- The if statement for adapting
MAXIMUM_CAP
for non-dispatchable production assets is now based on the value ofDISPATCHABILITY
and not on the existence of the keyFILENAME
in theasset_dict
(#939) - The default values for the constraints are now located in
src/constants.py
under the variableDEFAULT_CONSTRAINT_VALUES
(#953) - When a required parameter is missing its default value, defined in
docs/MVS_parameters_list.csv
, is used instead of raising an error (#956) - If an asset has 2 output busses, the output flow of only one of the busses is provided using its name
asset[FLOW][bus_name]
(#952) - The user can choose on which bus the investment will take place (useful for transformers with 2 inputs and 1 outputs or 1 input and 2 outputs) (#954)
- energy_price and feedin of DSO (providers) can be provided as timeseries (#954)
- The peak-demand pricing cost is applied to the consumption of DSO only (before was split between consumption and feedin) (#958)
- Upgrade to
oemof-solph==0.5.1
(#965)
Removed
- Input timeseries is now not returned to epa in
utils.data_parser.py
(#936)
Fixed
OBJECTIVE_VALUE
,SIMULTATION_TIME
,MODELLING_TIME
now included in thejson_with_results.json
(#901)- Missing parameters in
input_template/csv_elements
(#904) - Confusing Dash report tab names (#933)
- Calculation of
total_feedin
andtotal_consumption_from_providers
, where multiple providers of one energy carrier were not aggregated correctly (#931) - Used
pandas.concat
instead ofDataFrame.append
to add rows to apandas.DataFrame
instance to suppress UserWarning (#937) - Add missing file for test
test_F0_output.TestLogCreation.test_parse_simulation_log
(#937) - Transformers can have multiple input or output busses (tested in
tests/test_D1_model_components
bytest_transformer_optimize_cap_multiple_output_busses_multiple_inst_cap
,test_transformer_optimize_cap_multiple_output_busses_multiple_max_add_cap
,test_transformer_fix_cap_multiple_output_busses_multiple_inst_cap
and intests/test_benchmark_special_features
bytest_benchmark_feature_parameters_as_timeseries_multiple_inputs
)(#949) - The constraints are not all set to default values if only one constraint is missing, only the missing constraint is set to default value (#953)
- If the age of an asset is such that it should be replaced on the project's last year, we do not take it into account as the resell price would be deduced anyway (#965)
- The test
test_c2_economic_functions.py::test_get_replacement_costs_one_reinvestment_age_asset_equal_asset_lifetime
was added to account for a field usecase and a solution was provided (#966)
[1.0.0] Offical MVS release
[1.0.0] - 2021-05-31
Added
- Check for correct
installedcap
processing toAB_grid_pv
benchmark test (#831) - Check to
AB_grid_pv
benchmark test: total pv generation is used to cover demand (#831) - Section on energy consumption assets in
Model_Assumptions.rst
andMVS_Outputs.rst
(#817) - Constant variables:
MODELLING_TIME
,LP_FILE
(#839),MAXIMUM_ADD_CAP
(#848),TIMESERIES_SOC
,AVERAGE_SOC
(#859),INSTALLED_CAP_NORMALIZED
(#835) - Requirement of plotly in
requirements/default.txt
(#840) - Pytests for
C1.check_for_sufficient_assets_on_busses()
(#837) - Lookup table for parameters in RTD (#842)
- Column
category
in the filedocs/MVS_parameters_categories.csv
to know in which csv file(s) the parameter is used (#842) - Define
OEMOF_SOLPH_OBJECT_ASSET
,WEIGHTING_FACTOR_ENERGY_CARRIER
,RENEWABLE_SHARE_ASSET_FLOW
,OEMOF_SOLPH_OBJECT_BUS
as constants inD2
module (#834) - Import and use constants from
D2
module intest_D2_model_constraints.py
(#834) - Check for the capability of asset capacities in an energy system to fulfill the maximum demand in
C1.check_energy_system_can_fulfill_max_demand()
(#824) - Tests for
C1.check_energy_system_can_fulfill_max_demand()
, including pseudo-benchmark test intest_C1
(#824, #896) - Zenodo badge on README (#850)
VERSION_NUM
to simulation settings, added withC0.add_version_number_used()
(#855)- Generation of pdf version of the readthedocs (#853)
sphinxcontrib-svg2pdfconverter
indocs/conf.py
forsvg
images intopdf
(also added inrequirements/docs.txt
(#853)- Function
generate_kpi_description
indocs/conf.py
module to generate documentation of kpi parameters listed indocs/MVS_kpis_list.csv
(#863) - Badges for pypi, black linter and license in
docs/index.rst
andREADME.rst
(#865) --version
option for the command linemvs_tool
(#866)sphinx.ext.imgconverter
indocs/conf.py
for svg images into pdf (#853)- Parameter
maximumAddCap
wheremaximumAddCap=maximumCap-installedCap
inC0.process_maximum_cap_constraint()
, ie. make the coupling of the two parametersinstalledCap
withmaximumCap
explicit (#848) - Check that storage file name defined with ending
.csv
with newA1.check_storage_file_is_csv()
inA1.create_json_from_csv()
(#859) - Class in
exceptions.py
:MissingCsvEndingError
(#859) - Constant variables in
E1
for accessing oemof-solph results:OEMOF_FLOW
,OEMOF_SEQUENCES
,OEMOF_INVEST
,OEMOF_SCALARS
(#859) - Constant variables in
E1
:THRESHOLD
for central definition of precision limit (#859) docs/MVS_kpi_categories.csv
andconf.generate_kpi_categories()
to list KPI under in the RTD (#869)- Descriptions of all output files to RTD (#874)
- Benchmark test for
maximumCap
constraint intest_benchmark_constraints.py
(#835) - Functions
C0.process_normalized_installed_cap()
to process the normalized installed capacity value as well as its pytests (#835) - Test for
C0.process_normalized_installed_cap()
(#835) - Tips and Tricks in the RTD (#876)
- Logging option for server (#895)
Changed
- Release protocol in
CONTRIBUTING.md
(#821) - Status messages of requirements in
E-Land_Requirements.rst
(#817) Model_Assumptions.rst
andMVS_Outputs.rst
, mainly adding labels (#817)- Pytests for
D0
to let them pass on Windows (#839) - Dependencies of pyomo and pandas (#840, #896)
- Validate of peak demand pricing bus in
C1.check_for_sufficient_assets_on_busses()
(#837) - Refactored
EXCESS
toEXCESS_SINK
as this is more intuitive (#837) - Order of
maximumCap
check and adaption inC0.process_maximum_cap_constraint()
(#833) - Adapt parameters in
test/inputs
to make simulation run without errors after correcting processing ofmaximumCap
: set constraintsminimal_renewable_factor
andminimal_degree_of_autonomy
to0.01
,maximumCap
of pv plant to10000
andfeedin_tariff
to0.05
(#833) - Generate the parameters categories in RTD lookup table automatically from
docs/MVS_parameters_categories.csv
(#842) DISPATCHABILITY
of energyConsumption assets now set toFALSE
by default (#824)- Function
C0.define_sink()
now definesDISPATCHABILITY=TRUE
for the created sink (#824) - Only implement the constraints defined by the user explicitly: move accessing the constraint key in
dict_value
in the respective constraint preparation functions (#845) - Restructure chapters of Readthedocs (#853, #860)
- Turn Readthedocs build warnings into errors in CI (#863)
- Pytest triggers the kpi benchmark tests (which was not the case before) (#864)
- Deactivate optimization when
maximumCap<=installedCap and maximumCap!=0
inC0.process_maximum_cap_constraint()
(#848) - Replace usage of
maximumCap
inD1
withmaximumAddCap
calculated inC0
(#848) - Adjust
tests/test_benchmark_feedin.test_benchmark_feedin_tariff_optimize_positive_value()
andtests/benchmark_test_inputs/Feedin_optimize/csv_elements/energyProduction.csv
to fit newmaximumCap
andmaximumAddCap
definitions (#848) - Include new parameter
maximumAddCap
intests/test_data/inputs_for_D0/mvs_config.json
andtests/test_data/inputs_for_D1/mvs_config.json
(#848) - Explicitely include badges only for the html version of the RTD and not the pdf (#870)
- Change
E1.get_timeseries_per_bus()
andE1.get_flows
and utilizeE1.cut_below_micro
to apply precision limit (#859) - Separate calculation of SOC into own function:
E1.get_state_of_charge_info
(#859) - Change
E1.add_info_flows()
so that storage peculiarities for the information is considered (#859) - Benchmark tests for
AE-Grid-Battery
: Input files and pytests (#859) E1.lcoe_assets
to calculate LCOE of storage capacity throughput based on input flow. Required change oftest_benchmark_KPI
(storage not used,LCOE=0
) (#589)- Modified github action workflow so that it is not triggered when one modifies the README, CHANGELOG or the docs (#872)
- Proofread RTD for the release of the ELAND report (#871, #878, #884, #885, #886, #887, #897)
- Prepared
docs/MVS_kpis_list.csv
summarizing all simulation outputs (#869) - Decapitalizing and removing spaces of all variable values in
constants_json_strings.py
(#869) - Reformatting code snippets in RTD to
:code:
(#880) E3.add_levelized_cost_of_energy_carriers
to fix wrong variable definition, extend pytest (#890)E2.convert_components_to_dataframe()
to correctly display when an asset is optimized, add pytests (#875)- If the
TIMESERIES
key is in thedict_values
and the file underFILENAME
key cannot be found, the timeseries is loaded fromTIMESERIES
(#881) - updated the SOC defintions in RTD (#876)
- Corrected faulty weighting factors (
DEFAULT_WEIGHTS_ENERGY_CARRIERS
inutils/constants.py
,docs/model/assumptions.rst
) (#894) - MVS-EPA parser to work with current EPA as of 2021-05-28, commit 5e7c4c39b2564c569c31907cbcb3cb07b92ebd2f:
utils.data_parser.convert_epa_params_to_mvs()
(#895)
Removed
AUTO_SOURCE
andAUTO_SINK
as this overcomplicated the labelling process (#837)AUTO_SINK
suffix inutils.data_parser.convert_mvs_params_to_epa()
(#837)EXCESS_SINK_POSTFIX
and only useEXCESS
(#837)- Quotes for command line instruction in
README.rst
(#850) - Superfluous
docs/readthedocs.yml
file (#853) - Broken links in readthedocs (#861)
- Calculation of
LCOE_Asset
for energy storage capacity are not calculated anymore inE2.lcoe_assets
(#589)
Fixed
- Skip
test_benchmark_KPI
as it was seen to be consuming the whole test time leading to timeout on github action (#826) - Reduce
simulation_settings.evaluated_period
to one day for the tests where simulation results are not important (forE0
andD2
test modules setup) (#826) - Fix formula of degree of NZE in RTD and in docstring of
E3.equation_degree_of_net_zero_energy()
(#832) - Tests failing on windows with
FileExistsError
(#839, #854) - No excess error message regarding the auto-generated peak demand pricing bus (#837)
C0.prepare_demand_assets()
did not explicitly exclude feedin sinks (#837)- Hotfix:
C0.define_sinks()
now works for scalar feed-in prices, but not for lists of timeseries (#837) - Address issue #825 by changing order of
maximumCap
check and adaption inC0.process_maximum_cap_constraint()
(#833) - Bugfix in
C0.process_maximum_cap_constraint()
: Always setmaximumCap
toNone
in case its value is 0 (#833) - Solved ReadTheDocs warnings (#863)
- Re-enable the coverage tests on github actions (#864)
- Adjust definition for
maximumCap
indocs/MVS_parameters_list.csv
: Total maximum installable capacity (#848) - Negative values within the precision limit in
timeseries.xlsx
(#859) - Introduce new standard for cites (#885)
- Faulty calculation of attributed costs (#890)
- Show actual setting of
OPTIMIZE_CAP
in autoreport for storages and energy production fuel sources (#875) - Faulty weighting factors, now energy carrier weights mostly in the range of lower heating value (#894)
[0.5.5] MVS beta
Added
- Verification of the SoC values after simulation for any physically infeasible values with
E4.verify_state_of_charge
and added tests for this function (#739) - Explanation in
MVS_parameters_list.csv
on how to deactivate the RES constraint (#752) - Add the new parameter
scenario_description
to input files and docs and a section in autoreport describing the scenario being simulated (#722) - Add a new sub-section in RTD describing the suite of post-simulation tests carried out through functions in
E4_verification.py
(#753) - Add KPI individual sectors as an own table to the report (#757)
- Add pytests for the minimal renewable share constraint of function
D2.add_constraints()
(#742) - Throw an explanatory warning in
A1
module when csv file cannot be parsed (#675) - Add
-d
option tomvs_report
command to use hotreload of dash app for devs (#770) - Add
utils.analysis
module for overall analysis functions (#679) - Added pre-processing step with
C0.replace_nans_in_timeseries_with_0
to set NaNs occurring in provided timeseries to zero (#746) - KPI processing function
E3.add_total_consumption_from_provider_electricity_equivalent()
incl. pytest (#726) - Subsection
Minimal degree of autonomy constraint
for RTD, added parameter inMVS_parameters_list.csv
(#730, #726) - Minimal degree of autonomy constraint including pytest and benchmark test (#726)
- Add benchmark test for json benchmark file (
tests/benchmark_test_inputs/epa_benchmark.json
) from EPA (EPA-MVS compatibility) (#781) - Add a try-except code block to catch fatal errors in
DO.simulating()
that cause simulation to terminate unsuccessfully (#754) - It is now possible to model a stratified thermal energy storage. In this context, the two optional parameters
fixed_losses_relative
andfixed_losses_absolute
were added and can be set in thestorage_*.csv
file. The usage of this new component was tested intest_A1_csv_to_json.py
,test_D1_model_components.py
andtest_benchmark_stratified_thermal_storage.py
. A documentation was added in the chapterModel_Assumptions.rst
(#718) - Allow to run workflow manually from the GitHub Actions tab by adding
workflow_dispatch
tomain.yml
(#793) - Added a note in energy excess section in RTD (component models,
Model_Assumptions.rst
) saying that excess sinks are added automatically (#792) - Added net zero energy KPI
degree of NZE
withE3.equation_degree_of_net_zero_energy()
andE3.add_degree_of_net_zero_energy()
(#776) - Added tests for
E3.equation_degree_of_net_zero_energy()
andE3.add_degree_of_net_zero_energy()
(#776) - Added information about degree of NZE to RTD (
Model_Assumptions.rst
) (#776) - Function
E1.cut_below_micro
to round decision variables (capacities, flows) below threshold of plus/minus 10^-6 (1e-6) to 0, add warnings if negative value larger then threshold (invalid result). Includes pytests (#791) - Update
component models
(Model_Assumptions.rst
) section in RTD with information on energy storages, heat pumps and HVAC (#794) - Section
Cost Assumptions
toModel_Assumptions.rst
(#795) - Pre- and post-processing of
fixcost.csv
entries, so that they also appear in economic evaluation, including pytests (#795) - Update
component models
section in RTD with information on H2 storage, dispatchable and non-dispatchable sources, electrolyzers, CHP, other fuel powered plants and electric transformers. (#804) - Added net zero energy (NZE) constraint with
D2.constraint_net_zero_energy()
andD2.prepare_energy_provider_feedin_sinks()
(#796) - Added test for
D2.prepare_energy_provider_feedin_sinks()
(#796) - Added benchmark test for NZE constraint (#796)
- Added information about NZE constraint to RTD (#796)
- Added
net_zero_energy
parameter to allconstraints.csv
files and all json files (#796) - Added
net_zero_energy
parameter toMVS_parameters.rst
andMVS_parameters_list.csv
(#796) - Added verification of NZE constraint in
E4.net_zero_energy_constraint_test()
, added tests for this function (#796) - Added test for
D2.add_constraints()
with activated NZE constraint (#796)
Changed
- Fix xlrd to xlrd==1.2.0 in
requirements/default.txt
(#716) - Format
KPI_UNCOUPLED_DICT
to apd.DataFrame
(#757) - Rename variable
EXTRA_CSV_PARAMETERS
toKNOWN_CSV_PARAMETERS
(#761) - If a required parameter is missing but is in the
KNOWN_EXTRA_PARAMETERS
dict inconstants.py
: do not flag it as missing and set its default value (#761) - Gather all missing MVS parameters and raise a single error listing all of them (
src/multi_vector_simulator/utils/__init__.py
) (#761) - Add
set_default_values
argument to theB0.load_json
function to set default values of missing parameter which is listed inKNOWN_EXTRA_PARAMETERS
(#761) - Add
flag_missing_values
argument to theB0_load_json
function to allow switching betweenMissingParameterWarning
andMissingParameterError
(#761) - Write lp file only when executing
cli.py
(#675) - Change
C0.change_sign_of_feedin_tariff()
-logging.info
message iffeedin==0
(#675) - Update RTD instruction for instructions for the
mvs_tool
command (#770) - Change
test_benchmark_special_features.py
(#746) - Update "Input verification" section in
Model_Assmptions.rst
for NaNs (#746) - (!) Major change: Definition of Degree of Autonomy (DA) updated in the RTD, also changed calculation of that KPI (#730, #726)
- Updated all input files to also include
minimal_degree_of_autonomy
, includinginput_template
,tests/inputs
,tests/benchmark_test_inputs
(#726, #783) E4.minimal_renewable_share_test()
into genericE4.minimal_constraint_test()
so that it can be applied both to minimal renewable share and minimal degree of autonomy (#726)C1.check_non_dispatchable_source_time_series()
, now verification not only applied to renewable assets, but all non-dispatchable assets (#726)- Add
MINIMAL_DEGREE_OF_AUTONOMY
to EPA-MVS parser (utils.data_parser.convert_epa_params_to_mvs()
)(#726) - Provide the modeler with helpful messages enabling simpler identification and rectification of problems in their input files (
D0.simulating()
) (#754) - In
test_A1_csv_to_json.py
tests were added that check whether default values of0
are set forfixed_losses_relative
andfixed_losses_absolute
in case the user does not pass these two parameters (#718) - In
test_D1_model_components.py
tests were added that check whether theGenericStorage
parameterinvestment.minimum
is set to0
in casefixed_losses_relative
andfixed_losses_absolute
are not passed and to1
in case they are passed as times series or floats. At this time it is not possible to do an investment optimization of a stratified thermal energy storage without a non-zeroinvestment.minimum
(see this issue) (#718) - The two optional parameters
fixed_losses_relative
andfixed_losses_absolute
were added intests/inputs/mvs_config.json
(#718) - Adapted structure of component models in RTD (
Model_Assumptions.rst
) to mirror EPA and MVS input data (#792) - Refactor module imports in
cli.py
andserver.py
(#783) - Limit index of availability timeseries to simulation timeindex (
C0.define_availability_of_peak_demand_pricing_assets
) (#783) - Call
E1.cut_below_micro
inE1.get_flows
,E1.get_optimal_cap
andE1.get_storage_results
(#791) - Split preprocessing function
D2.prepare_constraint_minimal_degree_of_autonomy()
into two functions that can be used by multiple constraints:D2.prepare_demand_assets()
andD2.prepare_energy_provider_consumption_sources()
, also adapted tests (#796) - Edited epa parser so that net zero energy constraint is added in
utils.data_parser.convert_epa_params_to_mvs()
(#796) - Update definition of degree of net zero energy in
docs/MVS_Outputs.rst
,src/multi_vector_simulator/E3_indicator_calculation.py
andtests/test_E3_indicator_calculation.py
(#797) - Changed
utis.data_parser.convert_epa_params_to_mvs()
to fix EPA-MVS parsing bugs, now also prints extra parameters, improved comments (#810) - Edited error message when a parameter is missing to make it easier to track (
A1.conversion()
) (#795) - Improved warning message when a unknown parameter is added (
A1.create_json_from_csv
) (#795) - Changed
REQUIRED_CSV_PARAMETERS
ofFIX_COSTS
: RemovedLABEL
andDISPATCH_PRICE
and removed those parameters from allfixcost.csv
(#795) - Added exception to
E0.store_result_matrix
forfixcost.csv
entries (#795) - Moved parts of
E0.evaluate_dict
into a subfunctionE0.initialize_kpi
(#795) - Exchanged all demand profiles in
tests
with standardized ones (#818)
Removed
- Remove
MissingParameterWarning
and uselogging.warning
instead (#761) - Remove redundant function
A1.check_for_official_extra_parameters
asutils.compare_input_parameters_with_reference
works for both csv and json and will therefore be preferred (#761) - Remove
STORE_OEMOF_RESULTS
variable (#675) - Remove
F0.select_essential_results()
(#675) - Removed
DSM
andTYPE_ASSET
frominput_template/energyConsumption.csv
, also inconstants.py
(#726) - Removed warning message about excess energy calculation that is outdated as #559 is solved (777)
- Remove
test_C1_verification.get_json()
as now not used (#783) - Removed instances of
WrongParameterWarning
and replaced it withlogging.warning
inA1
(#795)
Fixed
- Minor typos in D0, E4 and test_E4 files (#739)
utils.data_parser.convert_epa_params_to_mvs()
andutils.data_parser.convert_mvs_params_to_epa()
now parse succesfully input files generated from EPA (#675)- Fix issue (#763): Avoid displaying an energy sector demand table in report if it is empty (#770)
- Fix issue (#769): Fix argument parsing and error messages of
mvs_report
command (#770) - Fix issue (#756): Avoid crashing r...
[0.5.4] Emission constraint, KPIs and fixes
Added
- Updated release protocol with info on credentials for test.pypi.org (step 9) and added "Fixed" to unreleased section of changelog.md in release protocol (#695)
- Added information about the API to the docs (#701)
- Added CO2 emission factors in the section
Model_Assumption.rst
(#697, #735) - Added
energyBusses.csv
in RTD (#678) - Add and link
rewableAsset
as parameter in RTD, specificallyMVS_parameters.rst
andMVS_parameters_list.csv
(#710) - Parameter
emission_factor
toenergyProduction
andenergyProviders
and to rtd (MVS_parameters.rst
andMVS_parameters_list.csv
) (#706) - Parameter
total_emissions
in kgCO2eq/a toconstraints.csv
(#706) - Constant variables
TOTAL_EMISSIONS
andSPECIFIC_EMISSIONS_ELEQ
for emission KPIs,MAXIMUM_EMISSIONS
for emission constraint andUNIT_EMISSIONS
andUNIT_SPECIFIC_EMISSIONS
for unit definitions (#706) - Calculation of total emissions per production asset in
E3.calculate_emissions_from_flow()
, which are added toKPI_SCALARS_DICT
(#706) - KPI "Total emissions" in kgCO2eq/a per production asset (
E3.add_total_emissions()
) and KPI "Specific emissions per electricity equivalent" in kgCO2eq/kWheleq (E3.add_specific_emissions_per_electricity_equivalent()
) (#706) - Tests for functions
E3.calculate_emissions_from_flow()
,E3.add_specific_emissions_per_electricity_equivalent()
) andE3.add_total_emissions()
(#706) - Added
emisson_factor
of providers to automatic source for providers inC0.define_source()
and adapted tests (#706) - Added information on calculation of total emissions in RTD in Simulation Outputs section (#706)
- Parameter
maximum_emissions
(MAXIMUM_EMISSIONS
) toconstraints.csv
, unit: kgCO2eq/a (#706) - Maximum emission constraint by
D2.constraint_maximum_emissions()
toD2.add_constraints()
usingoemof.solph.constraints.emission_limit()
, also added tests (#714, #706) - Benchmark test for maximum emission constraint in
test_benchmark_constraints.py
(#714, #706) - Information on maximum emissions constraint to RTD, including help for the end-user to define the value for this constraint (#714, #706)
- A logging.warning (
C1.check_feasibility_of_maximum_emissions_constraint()
) ifmaximum_emissions
constraint is used but no asset with zero emissions is optimized without maximum capacity constraint, also added tests (#714, #706) - A logging.warning (
C1.check_emission_factor_of_providers()
) in case any of the providers has a renewable share of 100 % but an emission factor > 0, also added tests (#714, #706) - Info on maximum emissions constraint benchmark test to RTD (#714, #706)
- Verification for maximum emissions contraint in
E4.maximum_emissions_test()
, also added tests (#714, #706)
Changed
- Benchmark test for investment model (
Test_Economic_KPI.test_benchmark_Economic_KPI_C2_E2
): Expand test to LCOE as well as all all other system-wide economic parameters, transposetest_data_economic_expected_values.csv
, changetest_data_economic_expected_values.xls
(#613) - Adapt pre-processing for investment benchmark tests into a seperate function (#613)
COST_REPLACEMENT
is now a parameter that is included in output cost matrix (#613)- Improved
Code.rst
for RTD code documentation (#704) - All
.py
files to add a module description for RTD on top (#704) - Converted
README
from.md
to.rst
format and updatedInstallation.rst
file (#646) - Updated
setup.py
to use the rst formatted README file - Changed
C0.energyStorage()
for timeseries in storage parameters (hotfix) (#720) - Input files and benchmark test
test_benchmark_special_features.Test_Parameter_Parsing()
: Now also including timeseries in a storage component (#723) - Adapted
E0
tests to new parameteremission_factor
(#706) - Adapted all test inputs and json files and the input template, adding
emission_factor
(energyProduction
,energyProviders
) andmaximum_emissions
(constraints.csv
) (#706)
Removed
- Removed
README.md
in favour ofREADME.rst
(#646)
Fixed
- Decreased warnings of RTD compilation drastically (#693)
- Use current version number as defined in
version.py
for RTD (#693) - Added storage to the table in autoreport listing the energy system components (#686)
- Add assertion
sum(attributed_costs)==cost_total
(for single-vector system) (#613) - Benchmark test for renewable share (
TestTechnicalKPI.test_renewable_factor_and_renewable_share_of_local_generation()
) (#613) - Github actions workflow: update apt-get before installing pre-dependencies (#729)
- Got rid of logging messages of imported libraries in the log file (#725)
- Fix RTD for emissions (#735)
- Hot fix: Parameters to be defined as timeseries in
storage_*.csv
(#720) - Tests for
E4.minimal_renewable_share_test
(#714, #706)
[0.5.3] - new benchmark tests, more checks, fixes
Significant changes
energyBusses
now have to be defined by the user viaenergyBusses.csv
(#649)- Significant change(!):
loss_rate
of storages inD1
defined as1-efficiency
instead of asefficiency
of the storage capacity (seestorage_*.csv
files) (#676) efficiency
ofstorage capacity
instorage_*.csv
now actually displays the storages' efficiency/ability to hold charge over time (#676)- Significant change(!):
feedin_tariff
inenergyProviders.csv
should now be provided as positive value to earn money with feed-in and to a negative value to pay for feed-in (#685)
Added
- Warning for missing parameter when parsing inputs from epa to mvs (#656)
- New module
exceptions.py
inmulti_vector_simulator.utils
to gather custom MVS exceptions (#656) - New argument for functions
E1.convert_demand_to_dataframe
,F1.plot_timeseries
,F2.ready_timeseries_plots
(#665) - File .github/workflow/main.yml for github actions (#668)
energyBusses
now have to be defined by the user viaenergyBusses.csv
(#649)- Input validation test
C1.check_for_label_duplicates
(#649) - Constant variables:
JSON_PROCESSED
,JSON_WITH_RESULTS
,JSON_FILE_EXTENSION
(#649) - Comment in the RTD concerning the logical equivalence of
energyCarrier
andenergyVector
in the MVS (#649) - Comment how fuels can either be attributed to the fuel energy vactor or another vector (#649)
- Labels for tables in
Model_assumptions.rst
(#649) - New in
utils
:helpers.py
withfind_valvue_by_key()
: Finds value of a key in a nested dictionary (#649) - New exception
DuplicateLabels
(#649) - Plot showing state of charge (SOC) of storages of each bus separately, as it is provided in %, also added to automatic report (#666)
- "SOC" as string representative in
utils/constants.py
, used inF1
andE0
(#666) - SOC plot of storages is added to the autoreport (#666)
- Test for correct storage labelling in
A1.add_storage_components()
(#666) - Test for getting two time series with
E1.get_timeseries_per_bus()
for storage (input and output power) if storage is directly connected to bus (#666) - Function
C1.check_efficiency_of_storage_capacity
that raises error message if theefficiency
ofstorage capacity
of any storage is 0 and a logging.warning if the efficiency is < 0.2, to help users to spot major change when using old files (#676) - Function
C0.change_sign_of_feedin_tariff()
for changing the sign of thefeedin_tariff
, added tests as well (#685) - Benchmark tests in
test_benchmark_feedin.py
to check the feed-in behaviour and feed-in revenues in dispatch and invest optimization (#685) - Pytests for
C0.add_a_transformer_for_each_peak_demand_pricing_period()
,C0.define_dso_sinks_and_sources
/C0.define_auxiliary_assets_of_energy_providers
,C0.define_source
(#685) - Basic structure for pytest of
C0.define_sink
(#685) - Add verification test
C1.check_feedin_tariff_vs_levelized_cost_of_generation_of_production()
(#685)
Changed
- Function
utils.compare_input_parameters_with_reference
accepts parameters as dict for json comparison (#656) - Move A1 and C0 custom exceptions into
multi_vector_simulator.utils.exceptions.py
(#656) - Adapt
E1.convert_demand_to_dataframe
for multiple sectors (#656) - Improve the demands section of the autoreport: Divide the demand tables and plots sector-wise (#665)
- All tests and benchmark tests are adapted to
energyBusses
being defined manually (#649) - Input for for
tests\test_F1_plotting.py
changed fromtests/test_data/inputs_F1_plot_es_graph
to default input foldertests/inputs
(#649) tests/inputs
,input_template
and the inputs of the benchmark as well as pytests adapted toenergyBusses
defined viacsv
(#649)- Refactored and changed
C0.update_bus()
toC0.add_asset_to_dict_of_bus
(#649) - Refactored and changed
C0.define_busses()
as it now only defines the energy assets connected to the defined busses (#649) - Changed
C0.define_sink()
andC0.define_source()
so that it fits with externally definedENERGY_BUSSES
(#649) - Adapt pytests of
D1
andD0
(#649) - Changed
C1.identify_energy_vectors
to be a testC1.check_if_energy_vector_of_an_asset_is_valid
(#649) - Input folder for the
F1
tests nowtests/inputs
(#649) - Refactored parameters:
DSO_PEAK_DEMAND_BUS_NAME
toDSO_PEAK_DEMAND_SUFFIX
,SECTORS
toLES_ENERGY_VECTORS
(#649) - Update
MVS_parameter_list.csv
: Added information toenergyVector
(#649) - Modify
E1.get_timeseries_per_bus()
to addINPUT_POWER
and respectivelyOUTPUT_POWER
to a storage component directly connected to the a bus to fix #444 and add logging.debug(#666) - Changed label of storage in
timeseries_all_busses.xlsx
to be defined byinstalledCap
+optimizedAddCap
to prevent confusion (#666) - Make use of constant variables (#684)
tests/inputs
adapted so that storage is used (#684)- Significant change(!):
loss_rate
of storages inD1
defined as1-efficiency
instead of asefficiency
of the storage capacity (seestorage_*.csv
files) (#676) efficiency
ofstorage capacity
instorage_*.csv
now actually displays the storages' efficiency/ability to hold charge over time (#676)- Adapted
efficiency
ofstorage capacity
in all provided benchmark tests and inputs (#676) - Documented the change of
efficiency
ofstorage capacity
as actual efficiency/ability to hold charge over time in RTD (#676) - Significant change(!):
feedin_tariff
inenergyProviders.csv
should now be provided as positive value to earn money with feed-in and to a negative value to pay for feed-in (#685) - Simplified
C0.define_source()
(#685) - Refactored
C0.define_dso_sinks_and_sources
toC0.define_auxiliary_assets_of_energy_providers
(#685) - Refactored
C0.check_feedin_tariff()
toC0.check_feedin_tariff_vs_energy_price()
to specify test (#685) - Changed
tests/inputs
so that feed-in tariff checks pass (#685) - Adapted check in
C0.check_feedin_tariff_vs_levelized_cost_of_generation_of_production()
: ifmaximumCap
is not None only a warning is logged as this wouldn't result in an unbound problem. In case of an investment optimization of the asset a logging.debug is shown. (#690)
Removed
- File .travis.yml (#668)
- Folder
tests/test_data/inputs_F1_plot_es_graph
, now using default input foldertests/inputs
as input fortests\test_F1_plotting.py
(#649) - Mention of
LABEL
in the RTD description of thecsv
files (#649) C0.bus_suffix()
,C0.remove_bus_suffix()
andC0.get_name_or_names_of_in_or_output_bus()
, as this overcomplicated the issue and the end user now can define their own bus labels (#649)- Parameters
INPUT_BUS_NAME
andINPUT_BUS_NAME
, as they are now equivalent toINFLOW_DIRECTION
andOUTFLOW_DIRECTION
(#649) - Removed SOC from storages from busses' plots (in
F1.plot_instant_power()
) but not fromOPTIMZIED_FLOWS
so that it is still printed intotimeseries.xlsx
(#666)
Fixed
[0.5.2] - Parser, packaging and added KPI
Added
- Create function
utils.copy_inputs_template
to copy input_template from package data_files (#608) - Create
MANIFEST.in
file (#608) - Add entrypoint for
mvs_create_input_template
insetup.py
(#608) - Create script
prepare_package.py
to add data to package and build dist folder (#608) - Five new KPI's added to E3: Onsite energy fraction, Onsite energy matching, Degree of autonomy, total_feedin_electricity_equivalent and internal generation (#624)
- Add definition of
renewable share of local generation
in RTD,E3.add_renewable_share_of_local_generation
and pytests (#637) - Add calculation of electricity equivalents in
E3.weighting_for_sector_coupled_kpi()
(#637) - Add benchmark test for the calculation of:
TOTAL_NON_RENEWABLE_GENERATION_IN_LES
,TOTAL_RENEWABLE_GENERATION_IN_LES
,TOTAL_NON_RENEWABLE_ENERGY_USE
,TOTAL_RENEWABLE_ENERGY_USE
,RENEWABLE_FACTOR
,RENEWABLE_SHARE_OF_LOCAL_GENERATION
for one sector (#637) - New constant variable:
DATA="data"
(#651)
Changed
- Moved
get_nested_value
,set_nested_value
,split_nested_path
fromtests/test_sensitivity.py
tosrc/multi_vector_simulator/utils/__init__.py
(#650) - Rename PACKAGE_PATH to PACKAGE_DATA_PATH (#608)
- Update release protocol within
Contributing.md
(#608) - Definition of renewable share (RES), now renewable factor (#637)
- Refactoring of
RENEWABLE_SHARE
intoRENEWABLE_FACTOR
and some functions in E3 (nowE3.add_total_renewable_and_non_renewable_energy_origin
andE3.add_renewable_factor
) (#637) - Rename:
Minimal renewable share constraint
toMinimal renewable factor constraint
in all files (python, messages, RTD, json, tests, csv), so that this is in line with the definition and does not cause any confusion, explained in RTD (#637) - Modify
B0_data_input_json.py
to read "input_timeseries" intopandas.Series
from epa formated input json (#651) - Modify
convert_mvs_params_to_epa
inutils.data_parser
to convertpandas.Series
back to "input_timeseries" (#651)
Removed
Fixed
- Calculation of the renewable share relative taking into account energy carrier weighting (#637)
[0.5.1] Fixes, pipy updates and EPA adjustments
Added
E-Land_Requirements.rst
: Official E-Land requirement list as well as progress on functional and non-functional requirements (#590)- Add pytests for
E4.detect_excessive_excess_generation_in_bus()
(#591) - Add pypi release to release protocol and update/simplify protocol (#601)
- Remove REPORT_PATH constant (#607)
- Add report assets and example simulation to package_data in
setup.py
(#607) - Add a util function
copy_report_assets
to copy report asset to simulation output folder when user generates the report (#607) - Add entrypoints for
mvs_tool
andmvs_report
in ´setup.py´ (this can be simply typed directly in terminal) (#607) - Updated readthedocs: Validation plan - Implemented tests and possible future ones (#593)
- Updated readthedocs: Gather the MVS parameters in a csv file and parse it to a sphinx RTD file (#620)
- Added more energy carriers and their weights to the list of already available energy carriers in constants.py (#621)
- Three new KPI's added to MVS_output.rst read the docs page: Onsite energy fraction, Onsite energy matching, Degree of autonomy (#609)
- New constant variables:
LOGS = "logs"
,WARNINGS = "warnings"
,ERRORS = "errors"
(#623) - Tests for
D1.transformer()
(#596) - Add economic model equations in readthedocs (#581)
- Add component model equations and energy balance adapted to sector coupled example (#581)
- Create function
F0.select_essential_results
to select main results out ofdict_values
(#625) - Create mapping between EPA and MVS parameter names (#625)
- Create parameter parser from EPA to MVS (#625)
- Create parameter parser from MVS to EPA (#625)
Changed
- Order of readthedocs content (#590)
- Make sure report can be generated even if figures are missing from simulation outputs (#607)
- Move the code located in
mvs_report.py
intomulti_vector_simulator.cli:report
(#607) - Update installation steps in README and in RTD (#607)
- If default folder does not exist when code is executed, example simulation's inputs are used from package_data (#607)
- Rename
PATH_SIM_OUTPUT
toARG_PATH_SIM_OUTPUT
(#607) - Rename function
A0.create_parser
toA0.mvs_arg_parser
(#607) - Update validation plan description in RTD (#593)
- Column headers of csv input files need to be unique amongst all files, info added to documentation (#602)
- Change mvs_eland to multi_vector_simulator in
docs/Code.rst
(#620) - Change mvs_eland to multi-vector-simulator in
docs/*.rst
`urls (#620) - Improved the description of assigning weightage to energy carriers in readthedocs (#619)
- Replaced the DSO sub-system image in Modelling Assumptions chapter of readthedocs (#622)
- Fixed several typos in readthedocs (#622)
- Move the function parse_log_messages to F0 and modify it to print log messages in results JSON file (#623)
- Move the function
parse_log_messages
from F1 to F0 and modify it to print log messages in results JSON file (#623) - If
assets
folder is not found in package look in current folder forreport/assets
folder (#632) D1.transformer_constant_efficiency_fix()
andD1.transformer_constant_efficiency_optimize()
, as well as their tests to reassign attributes (#596)- Move
retrieve_date_time_info
from C0 to B0 (#625) - Conversion from dict to json drop the timeindexes from pandas.Series (#625)
- Conversion from json to dict allow to load a timeindex for pandas.Series (#625)
- Replace
==
byis
in expression withTrue
,False
orNone
(#625) - Remove unused
dict_values
argument of functionreceive_timeseries_from_csv
(#625) - Move the end of the function
receive_timeseries_from_csv
intoC0.compute_timeseries_properties()
(#625)
Removed
- Parameter label from input csv files; label is now set by filenames (for
project_data
,economic_data
,simulation_settings
) and column headers (forenergyConsumption
,energyConversion
,energyProduction
,energyProviders
), special for storage:filename
+column header
(#602) - Remove reference to git branch ID in the report (#607)
Fixed
- RTD entry for defining parameters as timeseries (#597)
- Math equations of RTD in files
Model_Assumptions.rst
andMVS_Output.rst
(#604) - Repaired the broken links to input CSV files (#618)
- Outdated RTD info and mistakenly deleted sentence (#629)
- All
variable_costs
,efficiency
andnominal_value
of transformers on output flows. Before they were inconsistently assigned to input or output flows. (#596)
[0.5.0] renaming to multi-vector-simulator
Added
- Instruction to install graphviz on windows in
docs/troubleshooting.rst
(#572) - Benchmark test
test_benchmark_feature_parameters_as_timeseries
to ensure that parameters can always also be defined as a timeseries. Applied toefficiency
of an energyConversion asset andelectricity_price
of an energyProduction asset (#542) - Input files for benchmark tests
test_benchmark_feature_input_flows_as_list
(Feature_input_flows_as_list
) andtest_benchmark_feature_output_flows_as_list
(Feature_output_flows_as_list
), but not the benchmark assertions (#542) - Error message if time series of non-dispatchable sources do not meet requirement: values betw. 0 and 1. (#498)
- Requirement for time series of non-dispatchable sources in readthedocs (#498)
- Provide a warning in case of excessive excess generation (#498)
- Pytests for
C0.add_maximum_cap()
, renamed function intoC0.process_maximum_cap_constraint()
(#498)
Changed
- Modify
setup.py
to upload the code as package on pypi.org (#570) - Improve message when the
tests/test_input_folder_parameters.py
fails (#578) - Modify PR template to precise to add assert message and link to example docstring
- Update CONTRIBUTING to add a "Write test for your code" section before the "Run tests locally" one (#579)
- Modified readthedocs page describing the parameters of MVS (#479)
- Changed
E2.calculate_dispatch_expenditures()
so that it can process parameters defined as lists (#542) - Rename
E4
toE4_verification.py
(#498) - Rename package name
mvs_eland
tomulti-vector-simulator
insetup.py
(#587) - Rename
src/mvs_eland
tosrc/multi_vector_simulator
(#587) - Rename repository from
mvs_eland
tomulti-vector-simulator
(#587) - Refactor modules calls (
mvs_eland.
is replaced bymulti_vector_simulator.
) (#587) - Update
README.md
andCONTRIBUTING.md
replacingmvs_eland
ormvs-eland
bymulti-vector-simulator
(#587)
Removed
- Remove unused function
mvs_eland.utils.get_version_info
(#587)
Fixed
- Update the release protocol in
CONTRIBUTING.md
file (#576) - Fix reading timeseries for parameters in
C0
(#542) - Constraint for
optimizedAddCap
of non-dispatchable sources: multiplymaximumCap
bymax(timeseries(kWh/kWp))
to fix issue #446 (#562, #498)
-timeseries_normalized
are calculated for alltimeseries
of non-dispatchable sources now (before only ifoptimizeCap==True
) (#562, #498) - Input files of benchmark test
Test_Constraints.test_benchmark_minimal_renewable_share_constraint()
(#498)
[0.4.1] - 2020-09-21
Added
- Evaluation of excess energy for each of the energy carriers and for the whole system. The excess per sector and their energy equivalent may currently be faulty (comp. issue #559) (#555)
- Debug messages for pytests:
C0
,D2
(#555, #560) - Labels on capacity barplot bars (#567)
Changed
C1.total_demand_each_sector()
toC1.total_demand_and_excess_each_sector()
, now also evaluating the excess energy flows (#555)energyBusses
now is defined by:LABEL, ASSET_LIST, ENERGY_VECTOR
, all functions usingenergyBusses
now follow this nomenclature (#555)- Energy excess sinks now also have parameter
ENERGY_VECTOR
(#555) C0.define_sink
now always defines a sink that is capacity-optimized (#555)D1.sink_dispatchable()
, renamed toD1.sink_dispatchable_optimize()
now adds a capacity-optimized, dispatchable sink. (#555)- Simulation data
tests/inputs
: Oemof-solph results are not stored (#555) - Change logging level of some messages from
logging.info
tologging.debug
(#555) - Move and rename json input files for D0 and D1 tests (
test_data_for_D0.json
totests/test_data/inputs_for_D0/mvs_config.json
,test_data_for_D1.json
totests/test_data/inputs_for_D1/mvs_config.json
), add required parameters (#555) - Change requirements/test.txt:
black==19.10b0
, as otherwise there are incompatabilities (#555) D2.prepare_constraint_minimal_renewable_share
, including logging messages and pytest (#560)- Change the import path of the modules for automatic docstrings import in
docs/Code.rst
(#564) - Fix the docstrings with math expressions (need to add
r
before the"""
of the docstring
) (#564) - Rename the function in F1 module
plot_flows
toplot_instant_power
(#567) - Change flow to power in the instanteous power figures (#567)
F1.plot_piecharts_of_costs()
now cites costs with currect currency and avoids decimal numbers (#561)
Fixed
C1.check_feedin_tariff()
now also acceptsisinstance(diff, int)
(#552)- Feed-in sinks of the DSOs now are capacity-optimized and can actually be used (#555)
- Incorrectly applied minimal renewable share criterion (#560)
- Pdf report generation (#566)
- Update fresh install instructions for developers (#565)
- Graphs of the report now use appropriate currency (#561)
[0.4.1]
[0.4.1] - 2020-09-21
Added
- Evaluation of excess energy for each of the energy carriers and for the whole system. The excess per sector and their energy equivalent may currently be faulty (comp. issue #559) (#555)
- Debug messages for pytests:
C0
,D2
(#555, #560) - Labels on capacity barplot bars (#567)
Changed
C1.total_demand_each_sector()
toC1.total_demand_and_excess_each_sector()
, now also evaluating the excess energy flows (#555)energyBusses
now is defined by:LABEL, ASSET_LIST, ENERGY_VECTOR
, all functions usingenergyBusses
now follow this nomenclature (#555)- Energy excess sinks now also have parameter
ENERGY_VECTOR
(#555) C0.define_sink
now always defines a sink that is capacity-optimized (#555)D1.sink_dispatchable()
, renamed toD1.sink_dispatchable_optimize()
now adds a capacity-optimized, dispatchable sink. (#555)- Simulation data
tests/inputs
: Oemof-solph results are not stored (#555) - Change logging level of some messages from
logging.info
tologging.debug
(#555) - Move and rename json input files for D0 and D1 tests (
test_data_for_D0.json
totests/test_data/inputs_for_D0/mvs_config.json
,test_data_for_D1.json
totests/test_data/inputs_for_D1/mvs_config.json
), add required parameters (#555) - Change requirements/test.txt:
black==19.10b0
, as otherwise there are incompatabilities (#555) D2.prepare_constraint_minimal_renewable_share
, including logging messages and pytest (#560)- Change the import path of the modules for automatic docstrings import in
docs/Code.rst
(#564) - Fix the docstrings with math expressions (need to add
r
before the"""
of the docstring
) (#564) - Rename the function in F1 module
plot_flows
toplot_instant_power
(#567) - Change flow to power in the instanteous power figures (#567)
F1.plot_piecharts_of_costs()
now cites costs with currect currency and avoids decimal numbers (#561)
Fixed
C1.check_feedin_tariff()
now also acceptsisinstance(diff, int)
(#552)- Feed-in sinks of the DSOs now are capacity-optimized and can actually be used (#555)
- Incorrectly applied minimal renewable share criterion (#560)
- Pdf report generation (#566)
- Update fresh install instructions for developers (#565)
- Graphs of the report now use appropriate currency (#561)