Tools for geothermal techno-economics, including NPV, LCOE, well simulation, and more.
Project description
PyThermoNomics
PyThermoNomics is a Python package for techno-economic analysis of geothermal energy projects. It provides tools to compute Net Present Value (NPV), Levelized Cost of Energy (LCOE), and related financial metrics using simulation data, well trajectories, and project configuration.
TODO: EXPAND HERE WHAT PROJECT IT WAS APART OF AND ADD LOGO ETC.
Features
- Calculate NPV and LCOE for geothermal projects
- Integrate simulation results (CSV, OPM/Eclipse output)
- Model well trajectories and deviations
- Flexible configuration via YAML files
- Command-line interface (CLI) for easy usage
- Extensible API for custom workflows
- Documentation and tests included
Installation
Install the package from the repository root:
pip install .
Optional Dependencies
- Documentation:
To build and view the documentation, install with thedocsextra:pip install .[docs]
- Testing:
To run tests, install with thetestsextra:pip install .[tests]
Usage
Command-Line Interface
After installation, use the CLI tool:
geothermal-calc -c config.yml -i sim_data.csv -d deviations/ -t trajectory.yml
See CLI Documentation for all options.
Python API
Import and use in your own scripts, for example, when using summary (reservoir simulation out in CSV format) and deviation files (XYZMD-records for each well):
from pythermonomics.geothermal_economics import GeothermalEconomics
economics = GeothermalEconomics.from_summary_deviation_file(
settingfile='config_file.yml',
summary_file='sim_data.csv',
deviation_files_dir='dev_files/',
)
npv, lcoe_val, cashflow, wellRes, well_states, well_results = economics.compute_economics()
or if you want to use GeothermalEconomics using only the config and a well trajectory file (see examples for a trajectory file):
from pythermonomics.geothermal_economics import GeothermalEconomics
economics = GeothermalEconomics.from_trajectory(
settingfile='config_file.yml',
trajectoryfile='trajectoryfile,yml',
)
npv, lcoe_val, cashflow, wellRes, well_states, well_results = economics.compute_economics()
Documentation
Browse the full API reference and usage examples at docs/index.md or build locally:
mkdocs serve
Testing
Run the test suite with:
pytest
Project Structure
src/
pythermonomics/ # Main package code
config/
data/
energy_model/
npv_model/
cli.py
geothermal_economics.py
docs/
api/ # API documentation
tests/ # Unit and integration tests
pyproject.toml # Package setup
mkdocs.yml # Documentation config
Contributing
Contributions are welcome! Please open issues or submit pull requests.
License
GNU General Public License v3 (GPLv3)
For more information, see the API Reference or contact the maintainers.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pythermonomics-0.0.3.tar.gz.
File metadata
- Download URL: pythermonomics-0.0.3.tar.gz
- Upload date:
- Size: 67.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c6598fcf634fb4e5ae3675882cea602773479cb8c97922f269221e3105676d6
|
|
| MD5 |
35addb6b61a6271938a45b38bcc83ec6
|
|
| BLAKE2b-256 |
41d63f09b6cb6f74bf278e22fe46890e22c9bb2669ca780862c95ae181c9e063
|
File details
Details for the file pythermonomics-0.0.3-py3-none-any.whl.
File metadata
- Download URL: pythermonomics-0.0.3-py3-none-any.whl
- Upload date:
- Size: 52.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98eedb11521f707dd1792478f20ed1f4b734e8bd8ac53551fa8a30dec17b4767
|
|
| MD5 |
7b079ec268b62ad678e59cb5369ac2d9
|
|
| BLAKE2b-256 |
b90e668c6b624dd6cc201a4fbfd86095584206b42828e1cd38ab2a1100320189
|