Skip to content

Latest commit

 

History

History
90 lines (58 loc) · 6.87 KB

README.md

File metadata and controls

90 lines (58 loc) · 6.87 KB

// geophysical_notes //

My collection of geophysical notes written as Jupyter notebooks.

seismic petrophysics

Do magic things with well log data.

support data for "seismic petrophysics"

  • well_2*.txt: raw log data from Well 2 of Quantitative Seismic Interpretation (QSI)
  • qsiwell2.csv: assembled all the logs from various files
  • qsiwell2_frm.csv: qsiwell2 + fluid replaced elastic logs
  • qsiwell2_augmented.csv: barebones well data, only Ip, Vp/Vs and LFC (litho-fluid class log)
  • qsiwell2_synthetic.csv: synthetic data generated through Monte Carlo simulation, same logs as in qsiwell2_augmented.csv (Ip, Vp/Vs and LFC)
  • qsiwell2_dataprep.py: Python script to assemble all the original QSI files

seismic and rock physics stuff

How to load and display SEG-Y files, plus some simple ways to play with the data, e.g. extracting amplitude informations, adding noise & filtering. Also, a notebook entirely dedicated to wedge modeling and how to reproduce a couple of figures from scientific publications.

support data for "seismic stuff"

  • 16_81_PT1_PR.SGY, 16_81_PT2_PR.SGY, 16_81_PT3_PR.SGY, 31_81_PR.SGY: 2D lines in SEGY format from the USGS Alaska dataset
  • 3d_farstack.sgy, 3d_nearstack.sgy: 3D cubes from the QSI dataset (see above)
  • Top_Heimdal_subset.txt: interpreted horizon for the QSI near and far angle cubes

miscellaneous

Other notebook of interest, maybe only tangentially related to geophysics, such as a notebook showing a comparison between colormaps (the dreadful jet against a bunch of better alternatives) and another that uses the well known Gardner's equation as an excuse to practice data fitting in Python.

notes on running python

I used to recommend either Enthought's Canopy Express or Anaconda. I haven't been using Canopy for a while now and I'm very particular about installing stuff on my computers, so right now what I use (and suggest everyone else to do) is to install a subset of Anaconda called miniconda. Starting from this, it's easy to install the packages you need for your work and nothing else. For example, this is how I setup my system for work:

$ conda install numpy scipy pandas matplotlib jupyter scikit-learn scikit-image xarray dask netCDF4 bottleneck
$ conda install -c bokeh colorcet
$ conda install -c conda-forge jupyterlab

Then I install some additional packages with pip:

$ pip install bruges lasio segyio mplstereonet welly

Instead of integrated environments (for example, Spyder) I simply use a modern (and free!) editor like Atom to code and write anything (also my blog). However, JupyterLab gets better everyday and it can already be used to do everything in a browser window (but to me it's still slower than a text editor and a jupyter console window); I like the idea of Juyter Notebooks to distribute commented code and simply as a working tool to make code interact with explanatory text and plots.

using SEG-Y data

To read and write SEG-Y data in Python you need additional libraries like ObsPy, Segpy or Statoil's segyio.

I have recently tested segyio from Statoil and it has immediately become my preferred choice. It is easy to use and fast; it reads a 340 Mb segy in 1 second (while obspy does that in more than 8!):

# timeit results using segyio:
1.11 s ± 17.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

# timeit results using obspy:
8.85 s ± 1.07 s per loop (mean ± std. dev. of 7 runs, 1 loop each)

ObsPy is a library with so many functions aimed at research seismologists, and I was only using the segy-reading capabilities, so I'm happy to have switched to a smaller library (which is also way more efficient). Have a look at this notebook for some examples on how to import seismic data and do stuff.