Skip to main content

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 the docs extra:
    pip install .[docs]
    
  • Testing:
    To run tests, install with the tests extra:
    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

pythermonomics-0.0.3.tar.gz (67.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pythermonomics-0.0.3-py3-none-any.whl (52.9 kB view details)

Uploaded Python 3

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

Hashes for pythermonomics-0.0.3.tar.gz
Algorithm Hash digest
SHA256 5c6598fcf634fb4e5ae3675882cea602773479cb8c97922f269221e3105676d6
MD5 35addb6b61a6271938a45b38bcc83ec6
BLAKE2b-256 41d63f09b6cb6f74bf278e22fe46890e22c9bb2669ca780862c95ae181c9e063

See more details on using hashes here.

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

Hashes for pythermonomics-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 98eedb11521f707dd1792478f20ed1f4b734e8bd8ac53551fa8a30dec17b4767
MD5 7b079ec268b62ad678e59cb5369ac2d9
BLAKE2b-256 b90e668c6b624dd6cc201a4fbfd86095584206b42828e1cd38ab2a1100320189

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page