Metkom / PyOSGPUP

A python packages for geophysical data processing modeling, inversion and interpretation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyOSGPUP

GitHub version Build Status GitHub top language PyPI version PyPI license PyPI - Status PyPI - Wheel

GitHub last commit GitHub Release Date HitCount PyPI download month GitHub All Releases GitHub forks

Inline docs contributions welcome GitHub contributors

A python packages for geophysical data processing modeling, inversion and interpretation. Please check here: for official website and package.

Teknik Geofisika, Universitas Pertamina Jl. Teuku Nyak Arief, Simprug, South Jakarta, DKI Jakarta, Indonesia, 12220. email: metkom.up@gmail.com

Requirement

pip3 install -r requirements.txt

Installation

pip install PyOSGPUP
or
pip3 install PyOSGPUP

User Manual

User manual for this package avalaible in Bahasa (download). Short example:

1. Create wavelet

import numpy as np
import PyOSGPUP.wavelet as wav
import matplotlib.pyplot as plt

t = np.arange(-0.4 / 2, (0.4 / 2) + 0.004, 0.004)
# frequency
fgR = np.array([10])  # 1 freq
fgO = np.array([5, 10, 15, 20])  # 4 fred
fgK = np.array([5, 10])  # 2 fred
gR = wav.getRicker(fgR, t)
gO = wav.getOrmsby(fgO, t)
gK = wav.getKlauder(fgK, t)

plt.figure()
plt.plot(t, gR, linewidth=2, color="blue")
plt.plot(t, gO, linewidth=2, color="red")
plt.plot(t, gK, linewidth=2, color="green")
plt.title('Wavelet')
plt.xlabel('time [ms]')
plt.ylabel('amplitude')
plt.legend(['Ricker', 'Ormsby', 'Kaluder'])
plt.show()

2. Read data segy

Please put shotgather.sgy file in your directory code.

import PyOSGPUP.segypy as segypy

filename = 'shotgather.sgy'

# Set verbose level
segypy.verbose = 1
SH = segypy.getSegyHeader(filename)

# Read Segy File
[Data, SH, STH] = segypy.readSegy(filename)

# Plot Segy filwe
scale = 1e-9

# wiggle plot
segypy.wiggle(Data, SH, 1e-9)

# image plot
segypy.image(Data, SH, scale)

3. Create synthetic seismogram

from PyOSGPUP.synthe_seismo import plotLogsInteract, plotTimeDepth, plotSeismogram
import matplotlib.pyplot as plt

# Synthetic Seismogram
d = [0., 50., 100.]  # Position of top of each layer (m)
v = [500., 1000., 1500.]  # Velocity of each layer (m/s)
rho = [2000., 2300., 2500.]  # Density of each layer (kg/m^3)
wavtyp = 'RICKER'  # Wavelet type
wavf = 50.  # Wavelet Frequency
usingT = False  # Use Transmission Coefficients?

plotLogsInteract(d[1], d[2], rho[0], rho[1], rho[2], v[0], v[1], v[2])
plt.show()

plotTimeDepth(d, v)
plt.show()

plotSeismogram(d, rho, v, 50., wavA=1., noise=0., usingT=True, wavtyp='RICKER')
plt.show()

Citation

If you find this project useful for your research, please use the following BibTeX entry.

About

A python packages for geophysical data processing modeling, inversion and interpretation.

License:MIT License


Languages

Language:Python 100.0%