randlab / archpy Goto Github PK
View Code? Open in Web Editor NEWArchPy - Stochastic geological modeling
Home Page: https://archpy.readthedocs.io/en/latest/
License: GNU General Public License v3.0
ArchPy - Stochastic geological modeling
Home Page: https://archpy.readthedocs.io/en/latest/
License: GNU General Public License v3.0
Hi,
Using Archpy, I'm encountering an error while computing the facies realizations. I suspected that the covariance model I defined for Unit B is somehow not a good fit resulting in this issue because Unit C works just fine. I'm following the examples of ArchPy so I thought at the beginning let's take a simple approach to just see if the model works with my borehole dataset and then optimize the methods and covariance models. Any idea what might be the root causes?
After doing a "pip install geoarchpy" I get the following error (related to a missing geos_c.dll I believe) when importing ArchPy:
(archpy) c:\Users\thoma\miniconda3\envs\archpy>python
Python 3.9.16 (main, Jan 11 2023, 16:16:36) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ArchPy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Users\thoma\miniconda3\envs\archpy\lib\site-packages\ArchPy\__init__.py", line 1, in <module>
import ArchPy.base
File "c:\Users\thoma\miniconda3\envs\archpy\lib\site-packages\ArchPy\base.py", line 11, in <module>
import shapely.geometry
File "c:\Users\thoma\miniconda3\envs\archpy\lib\site-packages\shapely\geometry\__init__.py", line 4, in <module>
from .base import CAP_STYLE, JOIN_STYLE
File "c:\Users\thoma\miniconda3\envs\archpy\lib\site-packages\shapely\geometry\base.py", line 19, in <module>
from shapely.coords import CoordinateSequence
File "c:\Users\thoma\miniconda3\envs\archpy\lib\site-packages\shapely\coords.py", line 8, in <module>
from shapely.geos import lgeos
File "c:\Users\thoma\miniconda3\envs\archpy\lib\site-packages\shapely\geos.py", line 149, in <module>
_lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))
File "c:\Users\thoma\miniconda3\envs\archpy\lib\ctypes\__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'c:\Users\thoma\miniconda3\envs\archpy\Library\bin\geos_c.dll' (or one of its dependencies). Try using the full path with constructor syntax.
It would be nice to have a T1.plot_grid
method to visually check the grid after initialising the Arch_table object.
I think this would help novice users check there input and improve understanding.
Dear all,
I am tried to follow tutorial 2, luckily I was able follow all the steps however, I have an issue with my plots as the top unit is extremely exaggerated as in the pictures below. How can I correct this.
p = pv.Plotter(1)
v_ex=1
T1.plot_units(iu=0, plotter=p, slicex=(0.3), slicey=(0.3),v_ex=v_ex)
p.show()
p = pv.Plotter()
T1.plot_facies(plotter=p, slicex=(0.5), slicey=(0.5),v_ex=1)
T1.plot_bhs("facies", plotter=p, v_ex=1)
p.show()
#cross section
#first a list of points must be defined
p1 = [1,15]
p2 = [15,25]
p3 = [20,5]
T1.plot_cross_section([p1,p3],typ='facies',iu=0)
Going forward, I tried using my own dataset how ever my plots are not coming out fine as I expected, particularly my cross-section is just too simple. What can I do to reactify this issue? Thank you
Hi Ludovic,
when I try to run the "1_the_very_basic" notebook, I first found a RuntimeWarning and then a "segmentation fault".
The "RuntimeWarning" is due to an "invalid value encountered in long_scalars" in base.py, around line 4169
p=np.sum(facies == fa.ID)/len(facies == fa.ID)
There I tried to print out the value of facies
, and it seems to be an empty list. However, the units defined in the code contain correctly the definition of some facies.
I suppose this is probably due to the fact that facies
is initialized from data coming from the "hard data", and in the case those are missing... then the problem arises.
If I continue to execute the script after this warning, then I get a "Segmentation fault (code dumped)".
However, I also tried the 2nd example (the one with conditioning data, "2_Hard_data"), and that works fine.
Therefore, I think this could be a bug in the "1_the_very_basic" notebook, probably due to the missing hard data.
Hope this helps,
Bests,
Alessandro
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.
The error I got when I wanted to add borehole class
Hello! I'd like to ask you info about the meaning of the parameters in this screenshot, I didn't get it totally and I think it's crucial to model our study case in the best way
For example which is the difference between dic_s_D and dic_f_D, what is the meaning of the arguments called inside the function "Unit" ecc., thanks a lot for your help!
Hi Ludovic,
I have some questions that should help me to better understand the function add_gap
in inputs.py
.
If I understand correctly, when there is some missing information in your data, then add_gap
tries to fill the gap by adding a "None" unit/facies in that segment of borehole.
Hereinafter my questions:
inputs.py
in Spyder, Pyflakes warns about the fact that the variable bot
is undefined (on the line if i > 0 and bot != top:
and the one just below). There might be the risk that when you call add_gap
with this variable bot
undefined this could create some trouble?SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
. This complaints often comes from add_gap
, at the line lay=idata.iloc[0]
. If I replace this with something like lay=copy.deepcopy(idata.iloc[0])
the warning disappears. Do you think doing this edit might make sense?add_gap
I intentionally raised the top
definition. What should be the behavior of the code in this case?Thank you in advance.
Bests,
Alessandro
I noted some of the "get" methods are inconsistently named, e.g., T1.getprop
instead of T1.get_prop
like most of the other methods. It would be nice if all these get-methods are named consistently :)
Cheers,
Raoul
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.