GEOMODELATOR
GEOMODELATOR is a Python library designed to generate simple, structured 2.5D and 3D VTK models/files with layers, faults, and seams, organized into corresponding element/zone groups for subsequent processing or integration into simulation frameworks like TRANSPORTSE. In the current version, the layer ranking has been expanded, and the option to use YAML or JSON files as configuration files has been added. Furthermore, the code is now ready to be used as a service within the GeomodelatorGUI framework. Finally, the source code has been revised.
Requirements
GEOMODELATOR requires Python = 3.13 and uses the following packages:
- python=3.13
- gdal
- geos
- matplotlib
- numpy
- pyvista
- scipy
- yaml
I) Installation
-
Download GEOMODELATOR.
git clone https://git.gfz.de/bnakaten/geomodelator #git -c http.sslVerify=false clone https://git.gfz.de/bnakaten/geomodelator cd geomodelator git checkout tags/v2.0
-
Setup conda envrionment conda.
mamba env create -f environment.yml mamba activate gml
-
Create a new model project directory or duplicate the existing demo directory and rename it.
-
Copy the point cloud files in CSV format (x, y, z) for the desired horizon and fault surfaces into the input directory.
II) Use GEOMODELATOR
-
Set up the model details by customizing the configuration file in accordance with the manual.
vi configuration.yaml
-
Generate the model.
python geomodelator.py [path to the new project directory]/configuration.yaml
e.g. run demo:
python geomodelator.py examples/demo/configuration.yaml
-> Output:
-
VTK file with 3D model including all data: model.vts
-
VTK files for horizon and fault surfaces: ....vtu
-
Numpy array files with all 3d model data: model_all_data_numpy_array.npz
-
Compressed file with all input files: Input.zip
-
Compressed file with all output files: Output.zip
-
-
The further use of the model data..
- Use in TRANSPORTSE.
- Parametrise the model and model cells by custom python code.
- Visualize the result files in Paraview. For reference, the example demo output_default includes all the output files that are generated when the demo model is executed.
allModelData = numpy.load('model_all_data_numpy_array.npz') modelData = allModelData['array1']