Coder Social home page Coder Social logo

segyio-notebooks's Introduction

segyio-notebooks

Interactive notebooks with examples and tutorials using the segyio library for reading, manipulating and writing SEG-Y files.

Index

Overview

In order to ensure that everyone can run the notebooks and produce the expected results, each notebook (or set of notebooks sharing a common Python environment) has to be placed in a subdirectory within the notebooks directory alongside with a requirements.txt and/or environment.yml file to be used to create the same virtualenv and/or condaenv used by the author of the notebook.

Tutorials

Tutorials are organized in subfolders of the notebooks directory as follows:

Basic

  • 01 - Basic tutorial - demonstrate how to read two F3 seismic volumes as NumPy arrays; manipulate the similarity to create a discontinuity/fault volume; create a fault mask and display a couple of amplitude time slices with superimposed faults; write the fault volume to SEG-Y file using re-using the headers from the input file.

  • 02 - Segy quicklook - demonstrate how to transfer binary and trace headers in pandas dataframes and visualize headers and data with matplotlib

  • 03 - Basic Segy editing - demonstrate how to perform manipulations of traces length, both resampling and cutting.

PyLops

Data

Data are organized in subfolders of the data directory. Subfolders should have the same name of the corresponding folders in the notebooks tree. Note that some files may exceed the size allowed by github. In that case it is required to provide a set of instructions in the notebook on how to download the file and it will be assumed that the file will be placed by the user in the correct subdirectory of data.

Basic

PyLops

The seismic cube used in this example is too big to be included in this repo. A set of commands to download the file and place it in the data directory is provided within the notebook.

Run the notebooks interactively in Binder

To open and run notebooks interactively in an executable environment, just click the button below.

Binder

segyio-notebooks's People

Contributors

jokva avatar mrava87 avatar mycarta avatar valentinmetraux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

segyio-notebooks's Issues

Create base segy faster..

According to segyio-notebooks/03_basic_segy_editing.ipynb -> Cut all traces, I am creating a minimum size empty segy from a "source" segy file with spec.samples = spec.samples[:1].

def create_initial_segy_from_same_survey_segy(segy, initial_segy_filename):
    spec = segyio.tools.metadata(segy)
    spec.samples = spec.samples[:1]
    logger.info("creating initial segy..")
    with segyio.create(initial_segy_filename, spec) as dst:
        dst.text[0] = segy.text[0]
        dst.bin = segy.bin
        dst.bin.update(hns=len(spec.samples))
        dst.header = segy.header
        dst.trace = segy.trace
    logger.info("Initial segy created!")

The thing is that copying dst.header = src.header takes too long as the "source" segy is huge. Is there any way to create faster the minimal base segy?

misleading figure title in inversion notebook

I have been reviewing the 01_seismic_inversion.ipynb notebook and note that the figures have a suptitle "Colored Inversion".

Is this an error / misleading? I understood from the implementation that this is a [linear] inversion based on the statistical wavelet estimate made.

In order to be colored inversion, we would need to use a log spectrum to design an inversion operator and apply that which in not what is happening in this code as far as I can see.

Should the mention of to "Colored Inversion" be removed here?

Estimating the convolutional operator

Many thanks for these useful notebooks!

I have a small question about the seismic inversion notebooks. Following the Lancaster and Whitcombe (2000) article and the TLE tutorials the operator is derived from well logs, in this example is derived directly from the data.

# estimate wavelet spectrum
wav_est_fft = np.mean(np.abs(np.fft.fft(d[..., :500], nfft, axis=-1)), axis=(0, 1))
fwest = np.fft.fftfreq(nfft, d=dt/1000)

Is this would not affect the final results?

Install from environment throws error

Conda Wind 7 64:
I get a German error but it basically says

"?PyWinObject_FromULARGE_INTEGER @@YAPEAU:object@@AEAT_ULARGE_INTEGER@@@z" was not found in pywintypes37.dll"

when installing from the envrironment.yml

Export ndarray to sgy

Thanks so much for your notebooks. i think they're great. However, do you know how to export to sgy. file from an ndarray? I see in your first notebook you export from the already existing .sgy file. I dont have this yet.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.