Your documentation is a direct reflection of your software, so hold it to the same standards.
This is the documentation repository for a sphinx gallery accompanying the Pilot Study Geothermie Aargau. The code written in this package comprises processing methods for an open-source workflow developed for this project. The project's aim is to study heat flow and subsurface temperature-distribution in a model-based stochastic approach. The gallery is meant to lead through the open workflow from data compilation to heat-transport simulation using step-by-step examples.
- Tutorial for leading through the developed workflow
- Methods for creating input files for heat transport modeling in MOOSE or SHEMAT-Suite from GemPy Models
- Simple methods for calculating heat flow from temperature simulations
- Straight forward MonteCarlo rejection algorithm
This repository comprises methods created for the Project Pilot Study Geothermie Aargau. Aim of this project is to assess the deep heat flow in an area of northern Switzerland, where existing heat flow maps show a strong heat flow anomaly with values above 130 mW/m². For modeling the heat transport in the subsurface, we use exclusively open-source packages. Geological models used for creating the geological structure are created with GemPy. Geophysical data, such as gravity, can be used of utilizing the bayesian inference capabilities of GemPy, which build upon PyMC3. Heat transport in this project is simulated with SHEMAT-Suite-open, an open-source code for modeling heat- and mass-transport in porous medium. SHEMAT-Suite is written in Fortran and the only non-python component of this project.
The code and documentation was mainly developed by Jan Niederau during his time at the Geothermal Energy and Geofluids group
>>> import OpenWF.postprocessing as opp
>>> model_path = 'path/to/model/outputs/in/HDF5/format.h5'
>>> fid = pp.read_hdf_file(model_path, write=False)
>>> qx, qy, qz = opp.calc_cond_hf(fid)
print('calc_cond_hf yields conductive heat flow in all three model dimensions')
The code project OpenWF
is still in active development. Current procedure for installation is to clone this repository
and import it manually to your projects. A more convenient installation via pypi may come in the future.
In a first step, clone this repository using the following command (or by manually downloading the zip file from the GitHub page) (via HTTPS)
$ git clone https://github.com/GEG-ETHZ/PSGeothermieAargau.git
(via SSH)
$ git clone git@github.com:GEG-ETHZ/PSGeothermieAargau.git
using the python package sys
you then append the path to the repository
import sys
sys.path.append("<path/to/cloned/repository/PSGeothermieAargau>")
followed by the import of the module
import OpenWF as owf
This package has been tested with Python 3.8 and works best currently with this pyhton Version.
OpenWF
depends on a couple of other Python libraries:
GemPy
for creating the geological modelsPyMC3
for bayesian inference (optional) Without PyMC3, only Massive Monte Carlo is possible.matplotlib
for plottingnumpy
for efficient numerical methodssqlite
for database access and manipulation- ...
an environment.yml
file is provided for installation on Windows and Linux. These files can be used for creating
functioning anaconda environments for working with OpenWF
.
With regards to the scientific content, feel free to open a disussion. You are actively invited to open an issue for bugs/feature requests.
This project was meant as a pilot study to kick things off. Contributions to keep this project going and extend its capabilities is welcome. More detailed DEVELOPMENT and CONTRIBUTING guides will follow.
The content of this project documentation licensed under CC-BY, the written source code of the developed workflow is licensed under MIT.