I am a reservoir engineer interested in coding. I have just started my career with one of the biggest oil companies in the world. Trust me when I say this, I have just found your channel and it feels like I have found a treasure. I haven't watched any of your videos yet, but I am just thankful enough that you are paving the way for code integration in the oil and gas industry. Cheers.
I am learning a lot from your videos, doing daily, going complete from start to end, and even creating my own notebooks, Its really really great experience. Keep it up. Thank you
Geology is not my field of study , but I still found this video to be very valuable in getting more out of matplotlib. A solid practical example. Thank you.
Much appreciated, I was banging my head against the wall trying to use seaborn lineplots to show some pore pressure data. The pore pressure would decrease through depleted zones then ramp back up so a lineplot looked like we were going shallower in the well. I figured it was something to do with the type of plot I was using and five minutes into this video voila; just a good old fashioned plot "plot". Works like a champ.
Thanks for the nice video. It is very informative. I request you to kindly teach how to make a custom hatch patterns in matplotlib. It will be much appreciated.
Hello Andy, Thank you for the very informative video! I have a question, what can I do if my LAS file is wrapped? It seems this code does not work with wrapped files, it's giving me an error "Only engine='normal' can read wrapped files" what can I do to resolve this?
This article here may help you. It shows how you plot LWD Image logs using matplotlib. A similar setup should work for VDLs and Acoustic Images. medium.com/towards-data-science/displaying-logging-while-drilling-lwd-image-logs-in-python-4babb6e577ba
Hello, Andy! Thank you so much for your content. Could you please tell a bit more about the role of 'rowspan' and 'colspan' in subplot2grid()? It isn't clear to me. Thanks again!
Hi Allan, the rowspan and colspan arguments are used to determine how many columns and rows a single subplot will take up. For example, if you have a 3x3 grid, and you want one figure to stretch across all three columns, then you would set colspan=3. I think I covered rowspan in this video: ruclips.net/video/pPqLgmbyets/видео.html Hope that helps.
Dear Andy thanks for your useful videos I have a question how do we generate percentage lithology or graphic log .I hope you make a video about this in the future.
I will hopefully be covering that in a future video. You can use the method fill_betweenx() to control shading between two logging curves. You can see an example here in one of my earlier articles: towardsdatascience.com/enhancing-visualization-of-well-logs-with-plot-fills-72d9dcd10c1b
Hi Ilius, I am not sure on the first part about setting up defined scales for the plots. Most of it would be a case of trial and error with the figure scale. As for removing outliers, I would recommend having a looking at my article on outliers, especially the Removing Extreme Resistivities. The code there can be adapted to remove -999 values. medium.com/towards-data-science/well-log-data-outlier-detection-with-machine-learning-a19cafc5ea37
hello Andy, please help, i am unable to import LAS file from my system ....following message is being displayed in jupyter... File "", line 1 las = lasio.read("D:\NAWAGAM\CONDITIONED_DATA_NAWAGAM\NWGM-253_COND.las") ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: malformed \N character escape
The issue could be related to the actual file which has invalid characters in, or it is related to the use of a new line character (\N) in the file path. You could try adding an r before the path so that it will read it as is: las = lasio.read(r"D:\NAWAGAM\CONDITIONED_DATA_NAWAGAM\NWGM-253_COND.las")
Hello sir, Thank you for your videos, it's very helpful. I have a question, if we want to join 2 well log data by its depth (e.g. sonic log and density log), how to match the depth? because the depth is shifting (depth shift).
Thanks Gerald. In my latest video, which will be released today i show a way of combining formation tops with well log data that may be of interest. However, carrying out depth alignment between different curves is a more difficult problem.
Hey Andy - another good one, except I get an error message when I use the ax2.semilogx() line: AttributeError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_14580/1159179125.py in 19 ax2.set_xlabel("ILD") 20 ax2.set_xlim(.1,100) ---> 21 ax2.semilog(x) 22 ax2.set_ylim(18000,17000) 23 ax2.grid() AttributeError: 'AxesSubplot' object has no attribute 'semilog' Any thoughts?
I am a reservoir engineer interested in coding. I have just started my career with one of the biggest oil companies in the world. Trust me when I say this, I have just found your channel and it feels like I have found a treasure. I haven't watched any of your videos yet, but I am just thankful enough that you are paving the way for code integration in the oil and gas industry. Cheers.
I am learning a lot from your videos, doing daily, going complete from start to end, and even creating my own notebooks, Its really really great experience. Keep it up. Thank you
Geology is not my field of study , but I still found this video to be very valuable in getting more out of matplotlib. A solid practical example. Thank you.
Thanks 👍 Glad to hear you found it useful
Much appreciated, I was banging my head against the wall trying to use seaborn lineplots to show some pore pressure data. The pore pressure would decrease through depleted zones then ramp back up so a lineplot looked like we were going shallower in the well. I figured it was something to do with the type of plot I was using and five minutes into this video voila; just a good old fashioned plot "plot". Works like a champ.
This is fantastic! Thanks so much for putting this up here!
Thanks Evan. I am glad it has been helpful.
Thanks! Very helpful video!
Thanks for the nice video. It is very informative. I request you to kindly teach how to make a custom hatch patterns in matplotlib. It will be much appreciated.
Hello Andy, Thank you for the very informative video! I have a question, what can I do if my LAS file is wrapped? It seems this code does not work with wrapped files, it's giving me an error "Only engine='normal' can read wrapped files" what can I do to resolve this?
how do plot image logs like acoustic image/ USIT/VDL etc?
This article here may help you. It shows how you plot LWD Image logs using matplotlib. A similar setup should work for VDLs and Acoustic Images.
medium.com/towards-data-science/displaying-logging-while-drilling-lwd-image-logs-in-python-4babb6e577ba
How can I plot three or four logs in the same graph?
Hello, Andy! Thank you so much for your content.
Could you please tell a bit more about the role of 'rowspan' and 'colspan' in subplot2grid()? It isn't clear to me.
Thanks again!
Hi Allan, the rowspan and colspan arguments are used to determine how many columns and rows a single subplot will take up. For example, if you have a 3x3 grid, and you want one figure to stretch across all three columns, then you would set colspan=3.
I think I covered rowspan in this video: ruclips.net/video/pPqLgmbyets/видео.html
Hope that helps.
Dear Andy thanks for your useful videos I have a question how do we generate percentage lithology or graphic log .I hope you make a video about this in the future.
I will hopefully be covering that in a future video. You can use the method fill_betweenx() to control shading between two logging curves. You can see an example here in one of my earlier articles: towardsdatascience.com/enhancing-visualization-of-well-logs-with-plot-fills-72d9dcd10c1b
Hi Sir, is there any way to plot the logs in 1:200 scale and what is the process to remove outliers like -999.99
Hi Ilius, I am not sure on the first part about setting up defined scales for the plots. Most of it would be a case of trial and error with the figure scale. As for removing outliers, I would recommend having a looking at my article on outliers, especially the Removing Extreme Resistivities. The code there can be adapted to remove -999 values.
medium.com/towards-data-science/well-log-data-outlier-detection-with-machine-learning-a19cafc5ea37
hello Andy, please help, i am unable to import LAS file from my system ....following message is being displayed in jupyter... File "", line 1
las = lasio.read("D:\NAWAGAM\CONDITIONED_DATA_NAWAGAM\NWGM-253_COND.las")
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: malformed \N character escape
The issue could be related to the actual file which has invalid characters in, or it is related to the use of a new line character (\N) in the file path. You could try adding an r before the path so that it will read it as is:
las = lasio.read(r"D:\NAWAGAM\CONDITIONED_DATA_NAWAGAM\NWGM-253_COND.las")
Hello sir, Thank you for your videos, it's very helpful. I have a question, if we want to join 2 well log data by its depth (e.g. sonic log and density log), how to match the depth? because the depth is shifting (depth shift).
Thanks Gerald. In my latest video, which will be released today i show a way of combining formation tops with well log data that may be of interest. However, carrying out depth alignment between different curves is a more difficult problem.
@@AndyMcDonald42 Thank you sir, i have seen your latest video, it's very helpful. At least now i can combine my formation data too. Thank you :D
Thanks
No problem
Hey Andy - another good one, except I get an error message when I use the ax2.semilogx() line:
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_14580/1159179125.py in
19 ax2.set_xlabel("ILD")
20 ax2.set_xlim(.1,100)
---> 21 ax2.semilog(x)
22 ax2.set_ylim(18000,17000)
23 ax2.grid()
AttributeError: 'AxesSubplot' object has no attribute 'semilog'
Any thoughts?
Hi Andrew, did you manage to solve this? If not the line highlighted should be ax2.semilogx()