Multi-vector-simulator

Latest version: v1.0.0

Safety actively analyzes 580170 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

1.0.0

Added
- Check for correct `installedcap` processing to `AB_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` and `MVS_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 file `docs/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 in `D2` module (834)
- Import and use constants from `D2` module in `test_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 in `test_C1` (824, 896)
- Zenodo badge on README (850)
- `VERSION_NUM` to simulation settings, added with `C0.add_version_number_used()` (855)
- Generation of pdf version of the readthedocs (853)
- `sphinxcontrib-svg2pdfconverter` in `docs/conf.py` for `svg` images into `pdf` (also added in `requirements/docs.txt`(853)
- Function `generate_kpi_description` in `docs/conf.py` module to generate documentation of kpi parameters listed in `docs/MVS_kpis_list.csv`(863)
- Badges for pypi, black linter and license in `docs/index.rst` and `README.rst` (865)
- `--version` option for the command line `mvs_tool` (866)
- `sphinx.ext.imgconverter` in `docs/conf.py` for svg images into pdf (853)
- Parameter `maximumAddCap` where `maximumAddCap=maximumCap-installedCap` in `C0.process_maximum_cap_constraint()`, ie. make the coupling of the two parameters `installedCap` with `maximumCap` explicit (848)
- Check that storage file name defined with ending `.csv` with new `A1.check_storage_file_is_csv()` in `A1.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` and `conf.generate_kpi_categories()` to list KPI under in the RTD (869)
- Descriptions of all output files to RTD (874)
- Benchmark test for `maximumCap` constraint in `test_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` and `MVS_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` to `EXCESS_SINK` as this is more intuitive (837)
- Order of `maximumCap` check and adaption in `C0.process_maximum_cap_constraint()` (833)
- Adapt parameters in `test/inputs` to make simulation run without errors after correcting processing of `maximumCap`: set constraints `minimal_renewable_factor` and `minimal_degree_of_autonomy` to `0.01`, `maximumCap` of pv plant to `10000` and `feedin_tariff` to `0.05` (833)
- Generate the parameters categories in RTD lookup table automatically from `docs/MVS_parameters_categories.csv` (842)
- `DISPATCHABILITY` of energyConsumption assets now set to `FALSE` by default (824)
- Function `C0.define_sink()` now defines `DISPATCHABILITY=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` in `C0.process_maximum_cap_constraint()` (848)
- Replace usage of `maximumCap` in `D1` with `maximumAddCap` calculated in `C0` (848)
- Adjust `tests/test_benchmark_feedin.test_benchmark_feedin_tariff_optimize_positive_value()` and `tests/benchmark_test_inputs/Feedin_optimize/csv_elements/energyProduction.csv` to fit new `maximumCap` and `maximumAddCap` definitions (848)
- Include new parameter `maximumAddCap` in `tests/test_data/inputs_for_D0/mvs_config.json` and `tests/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()` and `E1.get_flows` and utilize `E1.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 of `test_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 the `dict_values` and the file under `FILENAME` key cannot be found, the timeseries is loaded from `TIMESERIES` (881)
- updated the SOC defintions in RTD (876)
- Corrected faulty weighting factors (`DEFAULT_WEIGHTS_ENERGY_CARRIERS` in `utils/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` and `AUTO_SINK` as this overcomplicated the labelling process (837)
- `AUTO_SINK` suffix in `utils.data_parser.convert_mvs_params_to_epa()` (837)
- `EXCESS_SINK_POSTFIX` and only use `EXCESS` (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 in `E2.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 (for `E0` and `D2` 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 in `C0.process_maximum_cap_constraint()` (833)
- Bugfix in `C0.process_maximum_cap_constraint()`: Always set `maximumCap` to `None` in case its value is 0 (833)
- Solved ReadTheDocs warnings (863)
- Re-enable the coverage tests on github actions (864)
- Adjust definition for `maximumCap` in `docs/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

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 to `mvs_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 in `MVS_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` and `fixed_losses_absolute` were added and can be set in the `storage_*.csv` file. The usage of this new component was tested in `test_A1_csv_to_json.py`, `test_D1_model_components.py` and `test_benchmark_stratified_thermal_storage.py`. A documentation was added in the chapter `Model_Assumptions.rst` (718)
- Allow to run workflow manually from the GitHub Actions tab by adding `workflow_dispatch` to `main.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` with `E3.equation_degree_of_net_zero_energy()` and `E3.add_degree_of_net_zero_energy()` (776)
- Added tests for `E3.equation_degree_of_net_zero_energy()` and `E3.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` to `Model_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()` and `D2.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 all `constraints.csv` files and all json files (796)
- Added `net_zero_energy` parameter to `MVS_parameters.rst` and `MVS_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 a `pd.DataFrame` (757)
- Rename variable `EXTRA_CSV_PARAMETERS` to `KNOWN_CSV_PARAMETERS` (761)
- If a required parameter is missing but is in the `KNOWN_EXTRA_PARAMETERS` dict in `constants.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 the `B0.load_json` function to set default values of missing parameter which is listed in `KNOWN_EXTRA_PARAMETERS`(761)
- Add `flag_missing_values` argument to the `B0_load_json` function to allow switching between `MissingParameterWarning` and `MissingParameterError`(761)
- Write lp file only when executing `cli.py` (675)
- Change `C0.change_sign_of_feedin_tariff()` - `logging.info` message if `feedin==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`, including `input_template`, `tests/inputs`, `tests/benchmark_test_inputs` (726, 783)
- `E4.minimal_renewable_share_test()` into generic `E4.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 of `0` are set for `fixed_losses_relative` and `fixed_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 the `GenericStorage` parameter `investment.minimum` is set to `0` in case `fixed_losses_relative` and `fixed_losses_absolute` are not passed and to `1` 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-zero `investment.minimum` (see this [issue](https://github.com/oemof/oemof-thermal/issues/174)) (#718)
- The two optional parameters `fixed_losses_relative` and `fixed_losses_absolute` were added in `tests/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` and `server.py` (783)
- Limit index of availability timeseries to simulation timeindex (`C0.define_availability_of_peak_demand_pricing_assets`) (783)
- Call `E1.cut_below_micro` in `E1.get_flows`, `E1.get_optimal_cap` and `E1.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()` and `D2.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 ` and `tests/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` of `FIX_COSTS`: Removed `LABEL` and `DISPATCH_PRICE` and removed those parameters from all `fixcost.csv` (795)
- Added exception to `E0.store_result_matrix` for `fixcost.csv` entries (795)
- Moved parts of `E0.evaluate_dict` into a subfunction `E0.initialize_kpi` (795)
- Exchanged all demand profiles in `tests` with standardized ones (818)

Removed
- Remove `MissingParameterWarning` and use `logging.warning` instead (761)
- Remove redundant function `A1.check_for_official_extra_parameters` as `utils.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` and `TYPE_ASSET` from `input_template/energyConsumption.csv`, also in `constants.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 with `logging.warning` in `A1` (795)

Fixed
- Minor typos in D0, E4 and test_E4 files (739)
- `utils.data_parser.convert_epa_params_to_mvs()` and `utils.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 report generation when internet not available (770)
- Fixed display of math equations in RTD (730)
- Fix `numpy.int32` error in `B0` (778)
- `mvs_config.json` is generated again, now from `cli.py` (783)
- Fix pytest `C1.test_check_non_dispatchable_source_time_series_passes` and `C1.test_check_non_dispatchable_source_time_series_results_in_error_msg` (783)
- Fix typo in `utils.data_parser` `logging.INFO` was used instead of `logging.info` (809)
- Fix: Asset groups that are empty are not provided by EPA, adapted parser (810)
- Fix: `ENERGY_PROVIDER` assets are missing parameter `DISPATCHABILITY` when parsed from EPA to MVS (810)
- Fix: No `DISPATCHABILITY` parameter for `ENERGY_PRODUCTION` assets in EPA (810)
- Fix: Default value of `MAXIMUM_EMISSIONS` when parsing from EPA (810)
- Move `process_fixcost` from `E1` to `E0` to avoid circular imports (820)

0.5.4

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, specifically `MVS_parameters.rst` and `MVS_parameters_list.csv` (710)
- Parameter `emission_factor` to `energyProduction` and `energyProviders` and to rtd (`MVS_parameters.rst` and `MVS_parameters_list.csv`) (706)
- Parameter `total_emissions` in kgCO2eq/a to `constraints.csv` (706)
- Constant variables `TOTAL_EMISSIONS` and `SPECIFIC_EMISSIONS_ELEQ` for emission KPIs, `MAXIMUM_EMISSIONS` for emission constraint and `UNIT_EMISSIONS` and `UNIT_SPECIFIC_EMISSIONS` for unit definitions (706)
- Calculation of total emissions per production asset in `E3.calculate_emissions_from_flow()`, which are added to `KPI_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()`) and `E3.add_total_emissions()` (706)
- Added `emisson_factor` of providers to automatic source for providers in `C0.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`) to `constraints.csv`, unit: kgCO2eq/a (706)
- Maximum emission constraint by `D2.constraint_maximum_emissions()` to `D2.add_constraints()` using `oemof.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()`) if `maximum_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)
- Added pytests for the function 'C0.compute_timeseries_properties()' (705)

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, transpose `test_data_economic_expected_values.csv`, change `test_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 updated `Installation.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 parameter `emission_factor` (706)
- Adapted all test inputs and json files and the input template, adding `emission_factor` (`energyProduction`, `energyProviders`) and `maximum_emissions` (`constraints.csv`) (706)

Removed
- Removed `README.md` in favour of `README.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

Added
- Warning for missing parameter when parsing inputs from epa to mvs (656)
- New module `exceptions.py` in `multi_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 via `energyBusses.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` and `energyVector` 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` with `find_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 in `F1` and `E0` (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 the `efficiency` of `storage 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 the `feedin_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 from `tests/test_data/inputs_F1_plot_es_graph` to default input folder `tests/inputs` (649)
- `tests/inputs`, `input_template` and the inputs of the benchmark as well as pytests adapted to `energyBusses` defined via `csv` (649)
- Refactored and changed `C0.update_bus()` to `C0.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()` and `C0.define_source()` so that it fits with externally defined `ENERGY_BUSSES` (649)
- Adapt pytests of `D1` and `D0` (649)
- Changed `C1.identify_energy_vectors` to be a test `C1.check_if_energy_vector_of_an_asset_is_valid` (649)
- Input folder for the `F1` tests now `tests/inputs` (649)
- Refactored parameters: `DSO_PEAK_DEMAND_BUS_NAME` to `DSO_PEAK_DEMAND_SUFFIX`, `SECTORS` to `LES_ENERGY_VECTORS` (649)
- Update `MVS_parameter_list.csv`: Added information to `energyVector` (649)
- Modify `E1.get_timeseries_per_bus()` to add `INPUT_POWER` and respectively `OUTPUT_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 by `installedCap` + `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 in `D1` defined as `1-efficiency` instead of as `efficiency` of the storage capacity (see `storage_*.csv` files) (676)
- `efficiency` of `storage capacity` in `storage_*.csv` now actually displays the storages' efficiency/ability to hold charge over time (676)
- Adapted `efficiency` of `storage capacity` in all provided benchmark tests and inputs (676)
- Documented the change of `efficiency` of `storage capacity` as actual efficiency/ability to hold charge over time in RTD (676)
- Significant change(!): `feedin_tariff` in `energyProviders.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` to `C0.define_auxiliary_assets_of_energy_providers` (685)
- Refactored `C0.check_feedin_tariff()` to `C0.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()`: if `maximumCap` 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 folder `tests/inputs` as input for `tests\test_F1_plotting.py` (649)
- Mention of `LABEL` in the RTD description of the `csv` files (649)
- `C0.bus_suffix()`, `C0.remove_bus_suffix()` and `C0.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` and `INPUT_BUS_NAME`, as they are now equivalent to `INFLOW_DIRECTION` and `OUTFLOW_DIRECTION` (649)
- Removed SOC from storages from busses' plots (in `F1.plot_instant_power()`) but not from `OPTIMZIED_FLOWS` so that it is still printed into `timeseries.xlsx` (666)

Fixed
- Storage label definition (remove filename) and use `LABEL` instead (666)
- Make deep copy of data frame in `F1.plot_optimized_capacities()` to prevent errors (666)
- Benchmark test for minimal renewable share constraint (685)

0.5.2

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` in `setup.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` from `tests/test_sensitivity.py` to `src/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` into `RENEWABLE_FACTOR` and some functions in E3 (now `E3.add_total_renewable_and_non_renewable_energy_origin` and `E3.add_renewable_factor`) (637)
- Rename: `Minimal renewable share constraint` to `Minimal 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" into `pandas.Series` from epa formated input json (651)
- Modify `convert_mvs_params_to_epa` in `utils.data_parser` to convert `pandas.Series` back to "input_timeseries" (651)

Removed
- Variable `TEMPLATE_INPUT_PATH` (608)
- Field `data_files` from `setup.py` (608)

Fixed
- Calculation of the renewable share relative taking into account energy carrier weighting (637)

0.5.1

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` and `mvs_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 of `dict_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` into `multi_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` to `ARG_PATH_SIM_OUTPUT` (607)
- Rename function `A0.create_parser` to `A0.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 for `report/assets` folder (632)
- `D1.transformer_constant_efficiency_fix()` and `D1.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 `==` by `is` in expression with `True`, `False` or `None` (625)
- Remove unused `dict_values` argument of function `receive_timeseries_from_csv` (625)
- Move the end of the function `receive_timeseries_from_csv` into `C0.compute_timeseries_properties()` (625)
- Fix rendering issues with the PDF report and web app: Tables, ES graph sizing (643)
- Improve the description of demands in the autoreport: Adapted section so that it applies to all vectors (647)

Removed
- Parameter label from input csv files; label is now set by filenames (for `project_data`, `economic_data`, `simulation_settings`) and column headers (for `energyConsumption`, `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` and `MVS_Output.rst` (604)
- Repaired the broken links to input CSV files (618)
- Outdated RTD info and mistakenly deleted sentence (629)
- All `variable_costs`, `efficiency` and `nominal_value` of transformers on output flows. Before they were inconsistently assigned to input or output flows. (596)
- Calculation of the renewable share relative taking into account energy carrier weighting (637)

Page 1 of 4

© 2023 Safety CLI Cybersecurity Inc. All Rights Reserved.