Releases: FZJ-IEK3-VSA/FINE
Releases · FZJ-IEK3-VSA/FINE
v2.6.0
Prepare Release v2.6.0 * Update push_master_to_gitlab.yml * correct link to JuGit repository * Use pathlib in example 8b instead of os * path os * ruff format * remove deprecated methods Removed: * exploitOutput * storage.intraSOCstart * utils.checkParamInput * utils.setFormattedTimeSeries * utils.checkInvestmentPeriodsCommodityConversion * utils.checkTimeUnit * utils.equalStrings * fixed warning in tests * adjust ruff check in pipeline and readme (#508) * fixed indexing * ruff * ruff 2.0 * updated to geopandas >= 1 (#524) Co-authored-by: h.wenzel <you@example.com> * Update macOS Version in CI Pipelines * Update ci * Test for new dependency ranges * Update minimum dependency ranges * Remove comma * Remove xarray * increment netcdf4 dependency * Bug fix for binaryOperation2_ Constraint (#522) * include bigM into binaryOperation2_ constraint * ruff formatting * Replace division by bigM with multiplication of binary variable with 1e-4 to ensure numeric feasibility for high bigMs --------- Co-authored-by: Julian Belina <56728940+julian-belina@users.noreply.github.com> * 499 docstring of balancelimit (#523) * Improved documentation of balanceLimit * ruff formatting * Update docstring --------- Co-authored-by: Jonas <jonasbecker0708@gmail.com> Co-authored-by: Julian Belina <56728940+julian-belina@users.noreply.github.com> Co-authored-by: j.behrens <j.behrens@fz-juelich.de> * Add code badge * fix read the docs build (#537) * fix read the docs build * ruff * 95 clean up codebase (#553) * started revision of TODOs in codebase. the checking and setting of locationalEligibility does not work at the moment - needs revision! * closed further ToDos. 7 which are not totally clear are missing * deleted outcommented unnecessary code * further clean up * revised none comparisons and type checks (replaced type== by isinstance) --------- Co-authored-by: h.wenzel <you@example.com> * Xarray517 (#542) * two different operation types (total and annual) correctly implemented, tests remaining * added operation_annual to each component class, tests run, issue should be solved * all tests run through * ruff check * ruff check complete * deleted comments in xarryIO * removed the commented out codes --------- Co-authored-by: Bernhard Wortmann <b.wortmann@fz-juelich.de> Co-authored-by: p.dunkel <p.dunkel@fz-juelich.de> Co-authored-by: Philipp Dunkel <89200680+phil-fzj@users.noreply.github.com> * fixed wrong coordinates in xarray output of transmission components (#543) * fixed wrong coordinates in xarray output of transmission components * added a test that checks the dimension names of the xarray output and confirms that they are as expected & adapted output path handling for text_xarrayio * changed dimension naming convention in xarray to make it more understandable: location, time (previously space, time) for all non-transmission components; locationIn, locationOut, time (previously space, space_2, time) for transmission components --------- Co-authored-by: Philipp Dunkel <89200680+phil-fzj@users.noreply.github.com> Co-authored-by: p.dunkel <p.dunkel@fz-juelich.de> * 213 ramping (#511) * Add inter-period ramping constraints to Conversion class and tests * Ramping now works when using time series aggregation --------- Co-authored-by: Nils Ludwig <n.ludwig@fz-juelich.de> Co-authored-by: Bernhard Wortmann <b.wortmann@fz-juelich.de> Co-authored-by: Julian Belina <56728940+julian-belina@users.noreply.github.com> Co-authored-by: Philipp Dunkel <89200680+phil-fzj@users.noreply.github.com> Co-authored-by: p.dunkel <p.dunkel@fz-juelich.de> * 507 extend ruff coverage and create missing docstrings (#527) * extended ruff coverage to all relevant files * removed noqua statements where possible * extended docstrings --------- Co-authored-by: Jonas <jonasbecker0708@gmail.com> Co-authored-by: Julian Belina <56728940+julian-belina@users.noreply.github.com> Co-authored-by: Jonas-fzj <j.becker@fz-juelich.de> Co-authored-by: Philipp Dunkel <89200680+phil-fzj@users.noreply.github.com> * Simplify CI testing, test from single source of truth, implement renovate * Update requirement file name * Update python version extraction * Try to make fewer skipped jobs * Ignore some dependencies * Update renovate * Update geopandas version constraints and add package rules for dependency management * add branch selection explicitly * Update renovate configuration to widen range strategy and disable vulnerability alerts * Update dependency matplotlib to <=3.10.8 (#573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update dependency pandas to v2.3.3 (#575) * Update dependency pandas to v2.3.3 * Update pandas version constraint in requirements_dev.yml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: JohannesBehrens <120372257+JohannesBehrens@users.noreply.github.com> * Update dependency numpy to v2.4.2 (#574) * Update dependency numpy to v2.4.2 * Update numpy version and fix documentation typo --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: JohannesBehrens <120372257+JohannesBehrens@users.noreply.github.com> * Update dependency pyomo to v6.10.0 * Update dependency xarray to v2026 (#579) * Update dependency xarray to v2026 * Fix xarray version and typos in pyproject.toml configuration * Update xarray version constraints in requirements_dev.yml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: JohannesBehrens <120372257+JohannesBehrens@users.noreply.github.com> * Update dependency scikit-learn to v1.8.0 * Update dependency psutil to v7.2.2 (#576) * Update dependency psutil to v7.2.2 * Update psutil version range in requirements_dev.yml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: JohannesBehrens <120372257+JohannesBehrens@users.noreply.github.com> * Update dependency netcdf4 to v1.7.4 (#580) * Update dependency netcdf4 to v1.7.4 * Update netcdf4 version constraint in requirements_dev.yml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: JohannesBehrens <120372257+JohannesBehrens@users.noreply.github.com> * Update dependency rasterio to v1.5.0 * Update scikit-learn version in requirements_dev.yml * Update pyomo version range in requirements_dev.yml * Update rasterio version constraint in pyproject.toml * Update rasterio version constraint in requirements_dev.yml * Update dependency scipy to v1.17.1 * Update requirements_dev.yml * Migrate config .github/renovate.json * Update renovate.json to modify ignored dependencies Removed several dependencies from the ignore list. * Update regex match string in renovate.json for dependency versioning * Update dependency pytest to <=8.4.2 * Update dependency pytest-xdist to <=3.8.0 * Update dependency ipykernel to v7 * Update dependency pytest to v9 * Add multiprocessing to all workflows * Update dependency pytest-cov to v7 * Update dependency pwlf to v2.5.2 * Update dependency python to v3.14.3 * Update dependency python to v3.14.3 * Switch to uv in testing * lower maximum python version due to tsam incompatability * Bump version from 2.5.0 to 2.6.0 --------- Co-authored-by: JohannesBehrens <120372257+JohannesBehrens@users.noreply.github.com> Co-authored-by: NilsLudwig <80832724+NilsLudwig@users.noreply.github.com> Co-authored-by: jenszimmert <j.zimmert@fz-juelich.de> Co-authored-by: Lana Söltzer <l.soeltzer@fz-juelich.de> Co-authored-by: Philipp Dunkel <89200680+phil-fzj@users.noreply.github.com> Co-authored-by: h.wenzel <you@example.com> Co-authored-by: H-Wenzel <146360304+H-Wenzel@users.noreply.github.com> Co-authored-by: Jonas-fzj <j.becker@fz-juelich.de> Co-authored-by: Jonas <jonasbecker0708@gmail.com> Co-authored-by: j.behrens <j.behrens@fz-juelich.de> Co-authored-by: k-okosun <k.okosun@fz-juelich.de> Co-authored-by: Bernhard Wortmann <b.wortmann@fz-juelich.de> Co-authored-by: p.dunkel <p.dunkel@fz-juelich.de> Co-authored-by: Nils Ludwig <n.ludwig@fz-juelich.de> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Version 2.5.0
Release notes
Version 2.5.0 introduces the following changes:
- yearlyLimit got removed from fine code in favor of balanceLimit, which allows formulation of lower and upper bounds and can be specified for all modelled regions.
- Integrate Linting rules via ruff
- Improve parameter checks to also check for np.nan values
- Include economies of scale in the Piecewise Linear Cost Function expansion module
- Improve documentation via docstrings
- Include sos2 constraints for Endogenous Technological Learning
- Include Speed Up Constraints for Endogenous Technological Learning
- Use pathlib package instead of os
- Improve ci test to run for different package versions of several dependencies
Furthermore, the following bugs were fixed:
- Include missing variables optimum after export to xarray
- Truncate sheet names to allow Excel export for all model classes
- Update pyproject.toml to ensure installation of fine
- Binary variables in conversion dynamic are not set up if only rampUpMax or rampDownMax are specified
- Bug fix in export of transmission operation
- Bug fix for legend in map plots
- Bug fix for setOptimalValues method in pwlcf model
Version 2.4.1
Version 2.4.1 introduces the following changes:
- Allow calculation of curtailment from xarray export if time series aggregation is used
- Allow combination of part load min components and segmentation
- Include operation per year into netCDF export
- Improve mathematical description of framework
- Allow investment period dependent time series for SOC Min/ Max
- Introde endogenous technological learning for fine components as subclass
- Add performance summary to netCDF export
Furthermore the following bugs were fixed:
- Bug fix transmission components when exported to netCDF
- Bug fix for netCDF export of flexible conversion components
- Bug fix for discharge operation in storage optimization summary
- Bug fix for multi-regional example
Version 2.4.0
- Introduces flexible components of the Conversion class. This allows for conversion components that can choose their input or output from different commodities. The share of each commodity can be limited by a flowShare. Emissions can be assigned by emissionFactors specific to a commodity.
- Allow intermittent pathway parameters (e.g., capacityFix). Pathway parameters can now be defined only for single investment periods, while being None for others.
- Fixes bug in models using gurobi.
- Improves data type checking.
Version 2.3.8
- Fixes bug for multi period data for
Transmissioncomponents. Error message has been improved. - Fixes bug in
Storageinit. Handle empty dict foroperationTimeSeriesif no timeseries data is set by setting it toNone. - Fixes bug for
capexIfBuiltin optimization summary. Previously it displayed NPV, now it is TAC.
Version 2.3.7
- Fixes a bug in the serialization to datasets of timeseries data in Transmission components
- Treating the processing of Transmisison components separately when creating
xrdsinput data inaddDFVariablesToXarray - Updating
addTimeSeriesVariableToDictto allow operationRates for Transmisison components
- Treating the processing of Transmisison components separately when creating
- Adds
solver_io="python"to the execution of Gurobi ifgurobipyis installed - Adds the dimension parameter
2dimincheckAndSetInvestmentPeriodTimeSeriesintransmission.pyto fix operation time series for transmission components - Deletes doubled function in
utils.py
Version 2.3.6
- Allow for
python>=3.10<3.13, limit dependencies to the next major version - Add dependencies to
pyproject.tomlfor pip install - Update community guidelines, documentation, examples
Version 2.3.5
Version 2.3.5 adds the functionality to pass maximum, minium and fixed values to the commissioning variables and growth rates for comissioning constraints. Set CommissioningMin for a lower bound, CommissioningMax for an upper bound and CommissioningFix to set the lower and upper bounds to the same value.
Version 2.3.4
Version 2.3.4 introduces the following functionality:
operationRateMinfor components
Furthermore, it introduces the following changes:
- Installation
- Remove the
pip installfromrequirements.yml. It has to be run manually now.
- Remove the
- Testing
- Run Pytest in parallel with
pytest-xdist - Add test workflows on GitHub actions to test the installtion on Windows, Mac and Ubuntu Linux
- Run Pytest in parallel with
- Documentation
- Deprecate the news feed in the documentation in favor of GitHub release notes
- Requirements
- Fix Python version to 3.10
- Restrict
scikit-learn>=1.2because of not backward compatible changes in that version - Remove GDAL since it is a secondary requirement
- Adaptions to Pandas 2.2 in preparation of version 3.0, which will introduce breaking changes
Version 2.3.3
ETHOS.FINE release 2.3.3 provides the following changes:
Functionality
- Add a the possibility to set a minimal operation rate in the Conversion class
Maintenance
- Use relative paths in tests to prevent errors when using different working directories
- Update scikitLearn in the requirements and adapt breaking changes in version >1.2