cgre-aachen / gemgis

Spatial data processing for geomodeling
https://gemgis.readthedocs.io/en/latest
GNU Lesser General Public License v3.0
263 stars 42 forks source link

How to construct acurate parametric Geo-Model out of a bunch of pictures (elevation, seismic, porosity-Thickness, etc)) #79

Closed kaki222 closed 4 years ago

kaki222 commented 4 years ago

I have a number of pictures such as cross-section of the geo-model, gamma-ray log, seismic2D, permebility, porosity-tickness. How could I use GemGIS to kick start the process of recreating the Geo-Model. Any hint is welcome. Attached the actual pictures. Thanks in Advance. Elevation Gamma-Ray Permeability Porosity Porosity-Thickness Resistivity Seis-2D W-E-Cross

AlexanderJuestel commented 4 years ago

Hey @kaki222,

Thank you very much for your message. Let's see:

First of all I would recommend georeferencing your section in a GIS environment (Qgis, ArcGIS). You can use the image with your layer isolines. Based on your scale bar, you can chose the right extent in X and Y direction (in meter).

Then, I recommend to digitize your isolines and the two faults that are indicated using a shape file (lines).

Once you have that, let me know and we can continue the model building process.

Cheers Alex

kaki222 commented 4 years ago

I am sorry, I have struggled with QGIS (ubuntu). Please let me know if that is what you asked for in the first part.

Elevation22_v01

TOP LET CORNER:

UTM Easting : 276185.94 UTM Northing : 4692654.13 UTM Zone : 19T EPSG:4326 - WGS 84

X-DIRECTION EXTENT TO THE RIGHT 10000m Y-DIRECTION EXTENT DOWN 10000m

For the second part I can digitize the contours with points but I don't know how to digitize using shape file, Please hint. I am using WebPlotDigitizer, https://apps.automeris.io/wpd/

Thanks in advance.

AlexanderJuestel commented 4 years ago

Hey @kaki222,

have you used QGIS before? If not, have a look at some tutorials maybe.

So, my advice would be to georeference your raster (https://www.qgistutorials.com/en/docs/georeferencing_basics.html). Then create a new line shape file, add a field called "Z" to it which should be a number and then digitize the contour lines. For each line you can provide the depth as Z value. Here is a little article on how to create a shape file in QGIS (https://freegistutorial.com/how-to-create-a-new-shapefile-in-qgis/).

Let me know if that helped you or not. Then I will provide further assistance! Cheers Alex

kaki222 commented 4 years ago

Dear Alex, I think, I did it with some accuracy. DE-FAULTS_SHP.zip DE-CNTRS_SHP.zip Thanks in advance.

AlexanderJuestel commented 4 years ago

Hey, good job!

Now, you can load the data with GeoPandas into a Jupyter Notebook (gpd.read_file(...)) and use GemGIS functions to extract the X and Y coordinates from your data that you can then use for the modeling in GemPy.

kaki222 commented 4 years ago

Hi Alex, I get AttributeError: 'NoneType' object has no attribute 'plot'

Please note I made it work before this error. Thanks ######################################################### import sys sys.path.append('../../gemgis')

import gemgis as gg import geopandas as gpd import rasterio import numpy as np import matplotlib.pyplot as plt

import gempy as gp from matplotlib.colors import ListedColormap print(gp) print(gp.version)

geo_data = gg.GemPyData(model_name='Model1', crs='EPSG:32619', extent=[0., 10000., 0., 10000., 4000., 6000.], resolution=[500,500,500], stack={"Strat_Series": ('Sand', 'Ton')}, dem='../data/alcocer/boylston_raster.tif', surface_colors= {'Ton':'#015482', 'Sand':'#9f0052', 'basement':'#ffbe00'})

topo = gpd.read_file('../data/alcocer/DE-CNTRS_SHP/DE-CNTRS_SHP.shp') geological_map = rasterio.open('../data/alcocer/boylston_raster.tif')

{i: dtype for i, dtype in zip(geological_map.indexes, geological_map.dtypes)} {1: 'uint16'}

geo_data.raw_dem = topo

geo_data.raw_demF = fault

geo_data.raw_dem.head()

geological_map.bounds

geo_data.raw_dem.crs

gg.visualization.plot_data(geo_data, show_geolmap= True, show_topo=True, )

#####################################

dt.zip

kaki222 commented 4 years ago

Hi, The mistake I did is in: dem='../data/alcocer/boylston_raster.tif' not the right raster. but it did not complaint when executing geo_data = gg.GemPyData(model_name='Model1',...

It complained when executing gg.visualization.plot_data(geo_data, ...

Thank you anyway. I think I need to close this issue.