For full documentation visit [mkdocs.org](https://www.mkdocs.org).
**pyThermoGIS** is a Python package that provides API access to the [ThermoGIS](https://www.thermogis.nl/en) doublet simulations and economic calculations.
## Commands
This package allows a user to simulate geothermal doublets providing the following parameters:
*`mkdocs new [dir-name]` - Create a new project.
*`mkdocs serve` - Start the live-reloading docs server.
*`mkdocs build` - Build the documentation site.
*`mkdocs -h` - Print help message and exit.
- Top depth
- Thickness (mean & standard deviation)
- Porosity
- Permeability (mean & standard deviation)
- Temperature (Optional: if not provided, a temperature gradient will be used)
## Project layout
mkdocs.yml # The configuration file.
docs/
index.md # The documentation homepage.
... # Other markdown pages, images and other files.
The code will simulate a Geothermal doublet, utilizing ThermoGIS with DoubletCalc1D as the engine to produce values of:
- power [Mega Watt Hour]
- heat pump power [Mega Watt Hour]
- capex (Capital expenditure) [Million €]
- opex (Operational expenditure) [€/kW]
- utc (Unit Technical Cost [€cent/kWH])
- npv (Net-present-value)
- hprod (Discounted Heat Produced)
- cop
- cophp
- pressure
- flow rate [m³/hr]
- well depth [m]
For details on how these parameters are calculated we refer users to the [Thermogis calculation webpage](https://www.thermogis.nl/en/calculation-model)
The simulations are conducted in Java, and this package uses [JPype](https://jpype.readthedocs.io/en/latest/userguide.html) to create a Python-Java binding.
It uses [xarray](https://docs.xarray.dev/en/stable/index.html) to handle input and output parameters, a User should inform themselves and learn the usage of the Xarray package.
This module can be combined with the [pygridsio](https://pypi.org/project/pygridsio/) package to read and process 2D raster data.
## What can this package *not* do?
This package provides a narrow access point to the doublet simulations and UTC economic calculations from ThermoGIS, it does not implement the following ThermoGIS processes/methodologies:
- Stacking of Aquifers
- Calculation of Potential maps
- Calculation of Resources
- Calculation of Overview maps
- HTO-ATES simulations
- Property Modelling
- Temperature Modelling
- Reading, and writing of grid files (Checkout [pygridsio](https://pypi.org/project/pygridsio/))
PyThermoGIS has been designed to be used in one of two ways; either as a python package you import into your own python projects, or as a standalone package where you can access the calculations via a CLI.
Either way, you need to Install a Java 17 VM and store the ThermoGIS Jar:
## 1. Install Java 17 and Download the ThermoGIS JAR
This package requires a Java 17 VM (we recommend using [Amazon Corretto 17](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html)) and a ThermoGIS Jar file (Version >=1.7).
*(You can find the JAR in this repository's resources folder or request it via the [ThermoGIS website](https://www.thermogis.nl/).)*
### 🧱 Required Environment Variables
-`JAVA_HOME`: Path to the Java 17 installation
*(e.g., on Windows: `C:\Program Files\Amazon Corretto\jdk17.0.0_0`)*
-`THERMOGIS_JAR`: Path to the ThermoGIS `.jar` file; __including__ the name of the jar file