Data Types

Three basic Data types in pyGeoPressure are Well for well, Log for well log and SeiSEGY for seismic data.

Well

class pygeopressure.basic.well.Well(json_file, hdf_path=None)[source]

A class representing a well with information and log curve data.

Initializer:

Well.__init__(json_file, hdf_path=None)[source]
Parameters
  • json_file (str) – path to parameter file

  • hdf_path (str, optional) – path to hdf5 file used to override the one written in json_file

Properties

Well.depth()

depth values of the well

Returns

Return type

numpy.ndarray

Well.logs()

logs stored in this well

Returns

Return type

list

Well.unit_dict()

properties and their units

Well.hydrostatic()

Hydrostatic Pressure

Returns

Return type

numpy.ndarray

Well.lithostatic()

Overburden Pressure (Lithostatic)

Returns

Return type

numpy.ndarray

Well.hydro_log()[source]
Returns

Hydrostatic Pressure

Return type

Log

Well.normal_velocity()

Normal Velocity calculated using NCT stored in well

Returns

Return type

numpy.ndarray

log curve data manipulation

Well.get_log(logs, ref=None)[source]

Retreive one or several logs in well

Parameters
  • logs (str or list str) – names of logs to be retrieved

  • ref ({‘sea’, ‘kb’}) – depth reference, ‘sea’ references to sea level, ‘kb’ references to Kelly Bushing

Returns

one or a list of Log objects

Return type

Log

Well.add_log(log, name=None, unit=None)[source]

Add new Log to current well

Parameters
  • log (Log) – log to be added

  • name (str, optional) – name for the newly added log, None, use log.name

  • unit (str, optional) – unit for the newly added log, None, use log.unit

Well.drop_log(log_name)[source]

delete a Log in current Well

Parameters

log_name (str) – name of the log to be deleted

Well.rename_log(log_name, new_log_name)[source]
Parameters
  • log_name (str) – log name to be replaced

  • new_log_name (str)

Well.update_log(log_name, log)[source]

Update well log already in current well with a new Log

Parameters
  • log_name (str) – name of the log to be replaced in current well

  • log (Log) – Log to replace

Well.to_las(file_path, logs_to_export=None, full_las=False, null_value=1e+30)[source]

Export logs to LAS or pseudo-LAS file

Parameters
  • file_path (str) – output file path

  • logs_to_export (list of str) – Log names to be exported, None export all logs

  • full_las (bool) – True, export LAS header; False export only data hence psuedo-LAS

  • null_value (scalar) – Null Value representation in output file.

Well.save_well_logs()[source]

Save current well logs to file

Get Meassured pyGeoPressure

Well.get_pressure(pres_key, ref=None, hydrodynamic=0, coef=False)[source]

Get Pressure Values or Pressure Coefficients

Parameters
  • pres_key (str) – Pressure data name

  • ref ({‘sea’, ‘kb’}) – depth reference, ‘sea’ references to sea level, ‘kb’ references to Kelly Bushing

  • hydrodynamic (float) – return Pressure at depth deeper than this value

  • coef (bool) – True - get pressure coefficient else get pressure value

Returns

Log object containing Pressure or Pressure coefficients

Return type

Log

Well.get_pressure_normal()[source]

return pressure points within normally pressured zone.

Returns

Log object containing normally pressured measurements

Return type

Log

Pressure Prediction

Well.eaton(vel_log, obp_log=None, n=None, a=None, b=None)[source]

Predict pore pressure using Eaton method

Parameters
  • vel_log (Log) – velocity log

  • obp_log (Log) – overburden pressure log

  • n (scalar) – Eaton exponent

Returns

a Log object containing calculated pressure.

Return type

Log

Well.bowers(vel_log, obp_log=None, a=None, b=None, u=None, vmax=None, start_depth=None, buf=20, end_depth=None, end_buffer=10)[source]

Predict pore pressure using Eaton method

Parameters
  • vel_log (Log) – velocity log

  • obp_log (Log) – overburden pressure log

  • a, b, u (float) – bowers model coefficients

Returns

a Log object containing calculated pressure.

Return type

Log

Well.multivariate(vel_log, por_log, vsh_log, obp_log=None, a0=None, a1=None, a2=None, a3=None, b=None)[source]

Other

Well.plot_horizons(ax, color_dict=None)[source]

Plot horizons stored in well

Well.save_params()[source]

Save edited parameters to well information file


Log

class pygeopressure.basic.well_log.Log(file_name=None, log_name='unk')[source]

class for well log data

Initializer:

Log.__init__(file_name=None, log_name='unk')[source]
Parameters
  • file_name (str) – pseudo las file path

  • log_name (str) – log name to create

Alternative initializer:

classmethod Log.from_scratch(depth, data, name=None, units=None, descr=None, prop_type=None)[source]

Data interfaces:

Log.depth()

depth data of the log

Log.data()

property data of the log

Log.start()

start depth of available property data

Log.stop()

end depth of available property data

Log.start_idx()

start index of available property data

Log.stop_idx()

end index of available property data

Log.top()

top depth of this log

Log.bottom()

bottom depth of this log

Plot:

Log.plot(ax=None, color='gray', linewidth=0.5, linestyle='-', label=None, zorder=1)[source]

Plot log curve

Parameters

ax (matplotlib.axes._subplots.AxesSubplot) – axis object to plot on, a new axis will be created if not provided

Returns

Return type

matplotlib.axes._subplots.AxesSubplot

Others:

Log.to_las(file_name)[source]

Save as pseudo-las file

Log.get_data(depth)[source]

get data at certain depth

Log.get_depth_idx(d)[source]

return index of depth

Log.get_resampled(rate)[source]

return resampled log


SeiSEGY

Initializers:

The default initializer takes a segy file path:

The alternative initilizer from_json takes a info file in json.

Iterators:

Data interface:

Plots Data Sections:

Others:

Note

Internally, pyGeoPressrue interacts with SEGY file utlizing segyio.