randlab / ArchPy

ArchPy - Stochastic geological modeling
https://archpy.readthedocs.io/en/latest/
GNU General Public License v3.0
45 stars 5 forks source link

borehole X, Y and Z coordinate initialization #11

Closed Alfaruuki closed 10 months ago

Alfaruuki commented 10 months ago

Dear all,

Please, I need help with borehole coordinate initialization. I have real world coordinates shown below. However, I saw something like coordinate of origins in archpy documentation. I dont know how this real world coordinate can be converted for archpy used. please help.

image

The error I got when I wanted to add borehole class

image

LudovicSchorpp commented 10 months ago

Hello @Alfaruuki, thank you for your question. This is related to the origin that you specify when creating the grid of the model.

Below is an example of a grid with 50 cells in three axis and a spacing of 1x1x0.1 m. The origin is set at 0,0,0. But in your case you should simply replace the lines ox = ..., oy = ..., oz = ... by the origin (lower left corner) of your simulation domain.

ny = 50 
nz = 50
sx = 1 #cell width in x
sy = 1
sz = 0.1
ox = 0 # x coordinates of the origin
oy = 0
oz = 0
dimensions = (nx, ny, nz)
spacing = (sx, sy, sz)
origin = (ox, oy, oz)

T1.add_grid(dimensions, spacing, origin) # creating the grid

Hope it helps and if you have any other question do not hesitate !

Alfaruuki commented 10 months ago

Dear ludovic,

Thank you for your response, but I still find it hard to understand what you meant by "the origin (lower left corner) of your simulation domain" because I tried to use the minimum value (coordinates) as ox, oy and oz yet, it didnt make any difference(error). Could you explain further?

LudovicSchorpp commented 10 months ago

Oh sorry I will detail.

In ArchPy, each model uses a specific standard grid which requires three inputs, the dimension (number of cells), the spacing or the size of the cells in each axis and the origin which places the grid somwhere in space. And the idea is to use actual real coordinates for this as it is more convenient to keep the coordinates of the data rather than transforming them in local. There exists different convention to define this origin but in ArchPy, it corresponds to the lower lower left corner of the model which can also be seen as the minimal values of x, y and z that you want to model.

You have an example just below and what I mean by lower lower left corner is the coordinates of the red dot. image

In other terms, the grid defines the minimal boundaries of your simulation grid, for each axis. In your case and from what I saw of your data, ox should be around 5497000, oy around 5663500 and oz around 0 ? Actually, this is up to you but make sure that these are lower than the coordinates of your boreholes.

You can also decompose this in two, ox and oy that define the lower left corner of your area in real coordinates and oz corresponds to the bottom elevation of your model. Generally, ox and oy are easy to setup as it is sufficient to check a map and see what are the coordinates of the bottom left corner (in GIS for example) but oz can be a little bit more tricky and more up to the modeler. Moreover, this will only create a "box" of your model but it is more likely than your model is vertically constrained by a top surface (DEM for example) and a bottom surface (bedrock for quaternary aquifers). These informations can be integrated by ArchPy using the top and bot argument of the function add_grid(). An example is shown in the notebook in "03_Article_example" where a valley like surface is used to have a more realisitic botom of the aquifer.

Is this a little bit more clear ?

Alfaruuki commented 10 months ago

Dear Ludovic, Thank you for your response. This is more than clear. I appreciate your time.