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)