Coder Social home page Coder Social logo

whimian / pygeopressure Goto Github PK

View Code? Open in Web Editor NEW
83.0 15.0 44.0 20.12 MB

Pore pressure prediction using seismic velocity and well log data

Home Page: https://pygeopressure.readthedocs.io/en/latest/

License: MIT License

Python 66.62% Lasso 33.10% TeX 0.27%
geophysics geomechancis geopressure formation-pressure pore-pressure-prediction

pygeopressure's Introduction

Logo

PyPI version GitHub release license Documentation Status Build Status Codacy Badge codecov DOI

A Python package for pore pressure prediction using well log data and seismic velocity data.

DOI

Cite pyGeoPressure as:

Yu, (2018). PyGeoPressure: Geopressure Prediction in Python. Journal of Open Source Software, 3(30), 992, https://doi.org/10.21105/joss.00992

BibTex:

@article{yu2018pygeopressure,
  title = {{PyGeoPressure}: {Geopressure} {Prediction} in {Python}},
  author = {Yu, Hao},
  journal = {Journal of Open Source Software},
  volume = {3},
  pages = {922}
  number = {30},
  year = {2018},
  doi = {10.21105/joss.00992},
}

Features

  1. Overburden (or Lithostatic) Pressure Calculation
  2. Eaton's method and Parameter Optimization
  3. Bowers' method and Parameter Optimization
  4. Multivariate method and Parameter Optimization

Getting Started

Installation

pyGeoPressure is on PyPI:

pip install pygeopressure

Example

Pore Pressure Prediction using well log data

import pygeopressure as ppp

survey = ppp.Survey("CUG")

well = survey.wells['CUG1']

a, b = ppp.optimize_nct(well.get_log("Velocity"),
                        well.params['horizon']["T16"],
                        well.params['horizon']["T20"])
n = ppp.optimize_eaton(well, "Velocity", "Overburden_Pressure", a, b)

pres_eaton_log = well.eaton(np.array(well.get_log("Velocity").data), n)

fig, ax = plt.subplots()
ax.invert_yaxis()

pres_eaton_log.plot(ax, color='blue')
well.get_log("Overburden_Pressure").plot(ax, 'g')
ax.plot(well.hydrostatic, well.depth, 'g', linestyle='--')
well.plot_horizons(ax)

Logo

Documentation

Read the documentaion for detailed explanations, tutorials and references: https://pygeopressure.readthedocs.io/en/latest/

Contribute

Report Bugs

If you find a bug, please report it at Github Issues by opening a new issue with bug label.

Suggest Enhancements

If you have new ideas or need new features, you can request them by opening a new issue at Github Issues with enhancement label. We will see if we can work on it together.

Submit Pull Requests

If you would like to help fix known bugs, please submit a PR. (See The beginner's guide to contributing to a GitHub project, if you are new to Github).

Before creating a pull request, please try to make sure the tests pass and use numpy-style docstrings. (Please see the documentation on setting up the development environment https://pygeopressure.readthedocs.io/en/latest/install.html)

Support

If you have any questions, please open an issue at Github Issues with question label. Tell us about your question, we will provide assistance. And maybe we could add it to the documentation.

License

The project is licensed under the MIT license, see the file LICENSE for details.

pygeopressure's People

Contributors

jesperdramsch avatar whimian 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

Watchers

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

pygeopressure's Issues

'Ydata' must not be empty

Dear Yu Hao,

Please help me review this code. I am new in this field and trying to apply codes for pore pressure estimates

Thanks
data_ht2x
error

Cannot install package

(base) C:\Users\gdma1>pip install -e git://github.com/whimian/pyGeoPressure.git@develop
ERROR: Could not detect requirement name for 'git://github.com/whimian/pyGeoPressure.git@develop', please specify one with #egg=your_package_name

(base) C:\Users\gdma1>pip install pyGeoPressure
ERROR: Could not find a version that satisfies the requirement pyGeoPressure (from versions: none)
ERROR: No matching distribution found for pyGeoPressure

(base) C:\Users\gdma1>pip install pygeopressure
ERROR: Could not find a version that satisfies the requirement pygeopressure (from versions: none)
ERROR: No matching distribution found for pygeopressure

Issue importing Seismic Segy

Hi,

I am having an error when I import my own seismic segy file. I Qced both Segy and SEIS files and they are working with segyio and json. Can you please help and guide me through the issue:

runcell('[2], #2', 'C:/Users/Sandra.Gharbi/Downloads/Overburden_Calculation_Using_Velocity.py')

<class 'pygeopressure.basic.seisegy.SeiSEGY'>
Traceback (most recent call last):

File "C:\Users\Sandra.Gharbi\Downloads\Overburden_Calculation_Using_Velocity.py", line 69, in
survey = ppp.Survey(SURVEY_FOLDER)

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\survey.py", line 72, in init
self._add_seismic()

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\survey.py", line 94, in _add_seismic
self.seismics[seis_name] = SeiSEGY.from_json(info_file, str(data_path))

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\seisegy.py", line 75, in from_json
instance = cls(native(segy))

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\seisegy.py", line 50, in init
self._parse_segy()

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\seisegy.py", line 135, in _parse_segy
self.survey_setting = SurveySetting(ThreePoints(setting_dict))

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\survey_setting.py", line 61, in init
self.azimuth_and_invertedAxis()

File "C:\Users\Sandra.Gharbi\Anaconda3\lib\site-packages\pygeopressure-0+unknown-py3.9.egg\pygeopressure\basic\survey_setting.py", line 237, in azimuth_and_invertedAxis
self.azimuth = self.azimuth / math.pi * 180 # turn into degree

TypeError: unsupported operand type(s) for /: 'NoneType' and 'float'

Community Guidelines / Contribution

Hej @whimian,

could you add a couple sentences, how you would prefer people to contribute to this package?
It would be great, if you could detail the following points in a dedicated paragraph:

  • Contribute to the software
  • Report issues or problems with the software
  • Seek support

CUG surver

Hi
is it possible to share the CUG servey with the wells that were used in the demos?
I would like to training first. and will of great thankful.
Best regards,
Sam.

"bowers_seis" notebook - error message running Pressure Prediction with Bowers method:

Hi Yu Hao,

I've tried running your "bowers_seis" notebook and keep getting the following error when trying to view
the fitted density trend:

RuntimeWarning: invalid value encountered in power
return ((v-v0)/a)**(1/b)
OptimizeWarning: Covariance of the parameters could not be estimated
category=OptimizeWarning)
RuntimeWarning: Implicit conversion from float64 to float32 (narrowing)
warnings.warn(msg.format(x.dtype, dtype), RuntimeWarning)

bowers_seis notebook - error message

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.