- 👋 Hi, I’m @rickdelpino (AKA Rick or Edgar)!
- 👀 I’m interested in Geophysics, Geology, Machine Learning and Data Sciences. How to match them? With a lot of creativity and common sense...there is no magic tools and shortcuts, geology is not stationary!
- 🌱 I’m currently learning Python, Numpy, PyQT5, Pandas, Segyio, Matplotlib...and Tectonics!
- 💞️ I’m looking to collaborate on every interesting project from Geosciences to Data Analysis.
- 📫 How to reach me: rickdelpino@outlook.com
Geologists vs Programmers:
In my experience inside service companies and oil operators, I have seen a common pattern in their employees depending of the kind of industry I was in: Geosciences staff inside the oil operators always thinks they are right, with almost no space to research about an especific problem, to later see that their predictions were "overoptimistic" (but never wrong...). On the other hand, inside the service company, the software development staff was unreachable or they never listened to any suggestion from the consultants: as the company adviser, I witnessed how our software failed in front of the clients while they praising the competitor...only imagine what a nice moment to remember.
So, in the first case, a skilled programmer could be helpful in the implementation of a solution based in researching or new technologies. In the second case, coding experience could be necessary to get a good communication with the development team of the software. Both cases need the geologist to have some degree of informatic knowledge or coding experience: sometimes good ideas arrive when they can benefit the whole team, even the whole company; so a handful set of programming skills can lead our projects to a successful ending.
I can say that my background is mostly geological, but I always have had a strong interest in programming languages. Why? Because the Programmer have the power and control to make things happen: they are the architect and the engineer that construct our buildings in an efficient and reliable way.
Then who is the Geologist?: He is the Sherlock Holmes of Earth, the detective that has to solve the murder with only few clues. The problem is that he has to reach to a unique conclusion that could be wrong, so an innocent could be falsely accused (or you can lose a lot of money!). In other words: he is an interpreter. But he can use the science (geophysics) to make his assumptions more accurate.
Can you see an ego problem here between these two disciplines? I can see it.
The ways of thinking between the geologist and the programmer are very different:
- The programmer constructs. The geologist deconstructs.
- The programmers receive instructions in their own language. The geologists give instructions in their own language.
- The geologist has to see to understand or interpret. The programmer does not have to interpret.
- The geologist describes a feature qualitatively. The programmer describes a feature statistically or mathematically.
- The programmer is focused on how much things his program can do. The geologist is focused on how much things his model can explain.
So, how can we bound these two so different worlds?
Geology and Machine Learning:
In this case the ball is in the geologist court. Geophysicist has an advantage due to his mathematical and physical background mixed with his geological knowledge: They are capable to code some solutions for some especific quantitative problems. But Geologist has a more visual or graphical view of the world, so coding is MORE DIFFICULT if you want to plot some processes, ideas, concepts, geometries, etc. The geologist has to translate his ideas in a mathematical language, or a serie of rules, or in a set of equations...a very challenging task. And then learn to coding, and learn how to plot, in case he doesn't have a tool for doing that. Once the Geologist has this set of mathematical or geometrical rules, it is possible to implement Machine Learning or AI.
Another way to implement Machine Learning into the geological world is by tagging the features that can be interpreted on some kind of data such seismic or well logs, by the geologist. But there are a conceptual issue on this approach, because we are depending of an interpretation as an input to train a Machine Learning algorithm, like a Neural Network. It is widely known that, if you give a seismic line to a 10 different interpreters, you could obtain 10 different interpretations!
Maybe, under certain circumstances, this approach could be plausible. However, the Earth is a box full of surprises, but logical and physical reliable surprises. For example, there are a lot of equations and geometrical rules in the Structural Geology discipline, applicable to certain tectonics settings only; but inside each setting we can have few structures that are contrary to our regional tectonic; or we can have opposite regimes depending of the geological era or seismic level. And also, we depend of the signal/noise ratio of our data, that can affect our interpretational criteria.
That is why we have to integrate differente disciplines of the geosciences to constrain our Machine Learning model, and also we need to apply or construct new general and geological theories, ideas, concepts, and translate them to mathematics: This could lead us to the most reliable and accurate interpretation system. Particularly, I prefer accuracy and less uncertainty than interpretational speed.
Geology and Data Sciences:
Well, this is an interesting subject! The oil industry has been applying Data Sciences for long time: models, predictions, trends, charts, machine learning, statistics, politics, etc...thanks to the Planning Departments! But now it seems that Data Sciences have turned in a fashionable thing (I am including Data Analytics in the equation).
But...why?
Maybe this is because we currently have thousands of open and free source tools on the Internet to make Data Analytics to a tremendous amount of data; maybe because the higher salaries; or maybe for the rapid increase of the computational power of our laptops and personal computers; or maybe because there are a lot of personal data on the Internet that have to be analyzed for companies to be used for their own benefit. Whatever the reasons are, Data Scientist are frequently sought by companies, as a helping hand for the analysis of their behvior, for the projection of their situation and for planning their moves.
In regard to Geology, is it necessary the use of Data Analytics in our interpretation? We have geostatistics to work with most of the geological data, and works very well. But, if we implement a system that, instead of use numerical or qualitative interpreted/calculated data, it creates its own features from a not interpreted data...what would happen? Will this system be capable to select their own prediction model? In this case, I think Data Sciences could answer some of these questions, and be used as an input of another Machine Learning System which in fact, could interpret our data by its own. I have to research a lot about this approach, but I can foresee a lot of possibilities if this is feasible.
What are the best tools for geosciences?:
- IDE / Code Editor:
- Windows: Visual Studio Code. It is powerful and it's free.
- Linux: Spyder. It is powerful and open source. I am not using the Linux version of Visual Studio Code, because Telemetry.
-
Languages:
- Python 3.8: It is the favorite for Data Sciences and Researchers, and it has a massive comunity and information on the Internet. Also, is interpreted, does not need a compiler, and is multiparadigm (functional and object oriented). But mainly, it has a lot of tools for Artificial Intelligence and Data Sciences.
- Octave: It is the same language as Matlab, but free and Open Source. Also used by researchers and academy. It is easier to learn than Python, but people prefer Python for a variety of reasons.
-
User Interface (UI) or Framework:
- PyQT5: Actually, this is not necessary in a Python implementation, but for portability, understanding, sharing, and elegancy, a nice user interface is always welcome. We the Geoscientist love to push buttons. It is free and have and outstanding designer.
- Jupyter Notebook: I particularly do not like at all this user interface but it is extremely popular among Data Scientist. It has integration with your favorite web browser, so you can code in your browser and can execute each line of your code sequentially while receiving your output below each line instruction, just like a notebook. It could be handy if you work with Pandas, but I prefer a sepparate APP with buttons and menus.
- Libraries:
- Matplotlib: for plotting your data.
- Numpy: to work very very easily with multidimensional arrays and matrix. Do not forget your courses of Linear Algebra.
- Segyio: from Equinor, for Segy management.
- Pandas: for Dataframes managenent. What is a Dataframe? A very big collection of multiformated data in rows and columns.
I will be update this README.md in the future.
Rick.
Geophysicist, MSc in Petroleum Geology. Venezuela.