Important
On June 26 2024, Linux Foundation announced the merger of its financial services umbrella, the Fintech Open Source Foundation (FINOS), with OS-Climate, an open source community dedicated to building data technologies, modeling, and analytic tools that will drive global capital flows into climate change mitigation and resilience; OS-Climate projects are in the process of transitioning to the FINOS governance framework; read more on finos.org/press/finos-join-forces-os-open-source-climate-sustainability-esg
EnergyModels is the Python package containing models for energy production technologies, carbon capture, usage and storage (CCUS) technologies, and the processes to combine them into a single energy mix.
In order to satisfy dependencies, following prerequisites need to be satisfied:
- deployment of sos_trade_core_package and its requirements (see requirements.txt of sos_trade_core_package package)
- libraries in requirements.txt
The following command can be used to install the package listed in requirements.txt
This package contains the following main disciplines categories:
- 60 technologies, models the various technologies for energy production or CCUS. (e.g. electrolysis, coal_generation, nuclear, ...)
- 22 streams, models the types of streams coming out of the technologies. (e.g. electricity, gaseous_hydrogen, ...)
- investment, to dispatch the investment into the technologies.
- energy_mix, model to combine the streams together. (this is used to make the interface with the climate economic models in WITNESS)
For more information, please look at the documentation associated.
The technologies are in the models folder. Most of the technology models logic is generic and is thus implemented in the mother classes techno type and techno disc. The streams are in the core/stream_type folder. They similarly rely on mother class.
Associated tests are in tests folder. l0 tests are unitary tests. They are used for stand alone disciplines and models. l1 tests are used to test gradient computation of disciplines and usecases. l2 tests are used to test gradient computation of processes. To run a test, run test.py file as Python unit-test. To run all test, use the command nose2 .
There are more technolgies that could be implemented in the energy models, either new emerging technologies or fringe technologies that haven't been implemented yet.
Each technology can be improved further, for example by updating the data used to parameterized it or by implementing more complex mechanisms.
The witness-energy source code is distributed under the Apache License Version 2.0. A copy of it can be found in the LICENSE file.
The witness-energy product depends on other software which have various licenses. The list of dependencies with their licenses is given in the CREDITS.rst file.