Skip to content

Releases: FZJ-IEK3-VSA/FINE

v2.6.0

05 Mar 07:52
2fa3ba9

Choose a tag to compare

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

27 Oct 09:50
7ca955f

Choose a tag to compare

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

09 Jan 15:47

Choose a tag to compare

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

24 Oct 16:42

Choose a tag to compare

  • 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

04 Jul 09:23

Choose a tag to compare

  • Fixes bug for multi period data for Transmission components. Error message has been improved.
  • Fixes bug in Storage init. Handle empty dict for operationTimeSeries if no timeseries data is set by setting it to None.
  • Fixes bug for capexIfBuilt in optimization summary. Previously it displayed NPV, now it is TAC.

Version 2.3.7

22 Apr 11:32

Choose a tag to compare

  • Fixes a bug in the serialization to datasets of timeseries data in Transmission components
    • Treating the processing of Transmisison components separately when creating xrds input data in addDFVariablesToXarray
    • Updating addTimeSeriesVariableToDict to allow operationRates for Transmisison components
  • Adds solver_io="python" to the execution of Gurobi if gurobipy is installed
  • Adds the dimension parameter 2dim in checkAndSetInvestmentPeriodTimeSeries in transmission.py to fix operation time series for transmission components
  • Deletes doubled function in utils.py

Version 2.3.6

11 Apr 08:26

Choose a tag to compare

  • Allow for python>=3.10<3.13, limit dependencies to the next major version
  • Add dependencies to pyproject.toml for pip install
  • Update community guidelines, documentation, examples

Version 2.3.5

11 Mar 11:47

Choose a tag to compare

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

13 Feb 10:48

Choose a tag to compare

Version 2.3.4 introduces the following functionality:

  • operationRateMin for components

Furthermore, it introduces the following changes:

  • Installation
    • Remove the pip install from requirements.yml. It has to be run manually now.
  • Testing
    • Run Pytest in parallel with pytest-xdist
    • Add test workflows on GitHub actions to test the installtion on Windows, Mac and Ubuntu Linux
  • 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.2 because 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

23 Jan 11:26

Choose a tag to compare

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