bluebonnet.forecast.forecast_pressure

Forecast when bottomhole/fracface pressure is known and varying.

Functions

fit_production_pressure(→ lmfit.Parameters)

Fit cumulative production given fracface pressure.

plot_production_comparison(→ Any)

Compare production to match.

Module Contents

bluebonnet.forecast.forecast_pressure.fit_production_pressure(prod_data: pandas.DataFrame, pvt_table: pandas.DataFrame, pressure_initial: float, filter_window_size: int | None = None, pressure_imax: float = 15000, inplace_max: float = 100000, filter_zero_prod_days: bool = True, n_iter: int = 100, params: lmfit.Parameters | None = None) lmfit.Parameters[source]

Fit cumulative production given fracface pressure.

Parameters:
  • prod_data (pd.DataFrame) – contains columns ‘Days’, ‘Gas’, and ‘Pressure’

  • pvt_table (pd.DataFrame) – information on equation of state, for example from build_pvt_gas

  • pressure_initial (float) – guess for initial reservoir pressure

  • filter_window_size (int or None) – If not None, boxcar filter size to average pressure data

  • pressure_imax (float, Optional) – maximum allowed initial reservoir pressure. pvt had better include this pressure

  • inplace_max (float) – Maximum allowed resource in place

  • filter_zero_prod_days (bool) – Filter out days without gas production or pressure value. Also shortens days on production to only include productive days.

  • n_iter (integer, default to 100) – number of times to iterate until stabilizes

  • params (Parameters) – Initial guesses for tau, M, and p_initial. You can pass in results from previous fit.

Returns:

params – Best fits for tau, M, and p_initial

Return type:

Parameters

bluebonnet.forecast.forecast_pressure.plot_production_comparison(prod_data: pandas.DataFrame, pvt_table: pandas.DataFrame, params: lmfit.Parameters, filter_window_size: int | None = None, filter_zero_prod_days: bool = True, well_name: str = 'Well Name') Any[source]

Compare production to match.

Parameters:
  • prod_data (pd.DataFrame) – contains columns ‘Days’, ‘Gas’, and ‘Pressure’

  • pvt_table (pd.DataFrame) – information on equation of state, for example from build_pvt_gas

  • params (Parameters) – fit result parameters

  • filter_window_size (int or None) – If not None, boxcar filter size to average pressure data

  • filter_zero_prod_days (bool) – Filter out days without gas production or pressure value. Also shortens days on production to only include productive days.

  • params – Best fits for tau, M, and p_initial

  • well_name (str) – name to label production with

Returns:

fig, (ax1, ax2) – matplotlib figure and tuple of axes with cumulative production and pressure over time (scaled by tau)

Return type:

Any