welltestpy.estimate.ExtTheis3D

class ExtTheis3D(name, campaign, val_ranges=None, val_fix=None, val_fit_type=None, val_fit_name=None, testinclude=None, generate=False)[source]

Bases: TransientPumping

Class for an estimation of stochastic subsurface parameters.

With this class you can run an estimation of statistical subsurface parameters. It utilizes the extended Theis solution in 3D which assumes a log-normal distributed conductivity field with a gaussian correlation function and an anisotropy ratio 0 < e <= 1.

Available values for fitting:

  • cond_gmean: geometric mean conductivity

  • var: variance of log-conductivity

  • len_scale: correlation length scale of log-conductivity

  • anis: anisotropy between horizontal and vertical correlation length

  • storage: storage

Parameters
  • name (str) – Name of the Estimation.

  • campaign (welltestpy.data.Campaign) – The pumping test campaign which should be used to estimate the parameters

  • val_ranges (dict, optional) – Dictionary containing the fit-ranges for each value in the type-curve. Names should be as in the type-curve signature. Ranges should be a tuple containing min and max value. Will default to default_ranges

  • val_fix (dict, optional) – Dictionary containing fixed values for the type-curve. Names should be as in the type-curve signature. Default: None

  • val_fit_type (dict, optional) – Dictionary containing fitting transformation type for each value. Names should be as in the type-curve signature. val_fit_type can be “lin”, “log”, “exp”, “sqrt”, “quad”, “inv” or a tuple of two callable functions where the first is the transformation and the second is its inverse. “log” is for example equivalent to (np.log, np.exp). By default, conductivity and storage will be fitted logarithmically and other values linearly. Default: None

  • val_fit_name (dict, optional) – Display name of the fitting transformation. Will be the val_fit_type string if it is a predefined one, or f if it is a given callable as default for each value. Default: None

  • testinclude (dict, optional) – Dictionary of which tests should be included. If None is given, all available tests are included. Default: None

  • generate (bool, optional) – State if time stepping, processed observation data and estimation setup should be generated with default values. Default: False

Methods

gen_data()

Generate the observed drawdown at given time points.

gen_setup([prate_kw, rad_kw, time_kw, dummy])

Generate the Spotpy Setup.

run([rep, parallel, run, folder, dbname, ...])

Run the estimation.

sensitivity([rep, parallel, folder, dbname, ...])

Run the sensitivity analysis.

setpumprate([prate])

Set a uniform pumping rate at all pumpingwells wells.

settime([time, tmin, tmax, typ, steps])

Set uniform time points for the observations.

gen_data()

Generate the observed drawdown at given time points.

It will also generate an array containing all radii of all well combinations.

gen_setup(prate_kw='rate', rad_kw='rad', time_kw='time', dummy=False)

Generate the Spotpy Setup.

Parameters
  • prate_kw (str, optional) – Keyword name for the pumping rate in the used type curve. Default: “rate”

  • rad_kw (str, optional) – Keyword name for the radius in the used type curve. Default: “rad”

  • time_kw (str, optional) – Keyword name for the time in the used type curve. Default: “time”

  • dummy (bool, optional) – Add a dummy parameter to the model. This could be used to equalize sensitivity analysis. Default: False

run(rep=5000, parallel='seq', run=True, folder=None, dbname=None, traceplotname=None, fittingplotname=None, interactplotname=None, estname=None, plot_style='WTP')

Run the estimation.

Parameters
  • rep (int, optional) – The number of repetitions within the SCEua algorithm in spotpy. Default: 5000

  • parallel (str, optional) –

    State if the estimation should be run in parallel or not. Options:

    • "seq": sequential on one CPU

    • "mpi": use the mpi4py package

    Default: "seq"

  • run (bool, optional) – State if the estimation should be executed. Otherwise all plots will be done with the previous results. Default: True

  • folder (str, optional) – Path to the output folder. If None the CWD is used. Default: None

  • dbname (str, optional) – File-name of the database of the spotpy estimation. If None, it will be the current time + "_db". Default: None

  • traceplotname (str, optional) – File-name of the parameter trace plot of the spotpy estimation. If None, it will be the current time + "_paratrace.pdf". Default: None

  • fittingplotname (str, optional) – File-name of the fitting plot of the estimation. If None, it will be the current time + "_fit.pdf". Default: None

  • interactplotname (str, optional) – File-name of the parameter interaction plot of the spotpy estimation. If None, it will be the current time + "_parainteract.pdf". Default: None

  • estname (str, optional) – File-name of the results of the spotpy estimation. If None, it will be the current time + "_estimate". Default: None

  • plot_style (str, optional) – Plot style. The default is “WTP”.

sensitivity(rep=None, parallel='seq', folder=None, dbname=None, plotname=None, traceplotname=None, sensname=None, plot_style='WTP')

Run the sensitivity analysis.

Parameters
  • rep (int, optional) – The number of repetitions within the FAST algorithm in spotpy. Default: estimated

  • parallel (str, optional) –

    State if the estimation should be run in parallel or not. Options:

    • "seq": sequential on one CPU

    • "mpi": use the mpi4py package

    Default: "seq"

  • folder (str, optional) – Path to the output folder. If None the CWD is used. Default: None

  • dbname (str, optional) – File-name of the database of the spotpy estimation. If None, it will be the current time + "_sensitivity_db". Default: None

  • plotname (str, optional) – File-name of the result plot of the sensitivity analysis. If None, it will be the current time + "_sensitivity.pdf". Default: None

  • traceplotname (str, optional) – File-name of the parameter trace plot of the spotpy sensitivity analysis. If None, it will be the current time + "_senstrace.pdf". Default: None

  • sensname (str, optional) – File-name of the results of the FAST estimation. If None, it will be the current time + "_estimate". Default: None

  • plot_style (str, optional) – Plot style. The default is “WTP”.

setpumprate(prate=-1.0)

Set a uniform pumping rate at all pumpingwells wells.

We assume linear scaling by the pumpingrate.

Parameters

prate (float, optional) – Pumping rate. Default: -1.0

settime(time=None, tmin=10.0, tmax=inf, typ='quad', steps=10)

Set uniform time points for the observations.

Parameters
  • time (numpy.ndarray, optional) – Array of specified time points. If None is given, they will be determined by the observation data. Default: None

  • tmin (float, optional) – Minimal time value. It will set a minimal value of 10s. Default: 10

  • tmax (float, optional) – Maximal time value. Default: inf

  • typ (str or float, optional) –

    Typ of the time selection. You can select from:

    • "exp": for exponential behavior

    • "log": for logarithmic behavior

    • "geo": for geometric behavior

    • "lin": for linear behavior

    • "quad": for quadratic behavior

    • "cub": for cubic behavior

    • float: here you can specifi any exponent (“quad” would be equivalent to 2)

    Default: “quad”

  • steps (int, optional) – Number of generated time steps. Default: 10

campaign

Copy of the input campaign to be modified

Type

welltestpy.data.Campaign

campaign_raw

Copy of the original input campaign

Type

welltestpy.data.Campaign

data

observation data

Type

numpy.ndarray

default_ranges = {'anis': (0, 1), 'cond_gmean': (1e-07, 0.2), 'len_scale': (1, 50), 'storage': (2e-06, 0.4), 'var': (0, 10)}

Default value ranges for the estimator.

Type

dict

estimated_para

estimated parameters by name

Type

dict

name

Name of the Estimation

Type

str

prate

Pumpingrate at the pumping well

Type

float

rad

array of the radii from the wells

Type

numpy.ndarray

radnames

names of the radii well combination

Type

numpy.ndarray

result

result of the spotpy estimation

Type

list

rinf

radius of the furthest wells

Type

float

rwell

radius of the pumping wells

Type

float

sens

result of the spotpy sensitivity analysis

Type

dict

setup_kw

TypeCurve Spotpy Setup definition

Type

dict

testinclude

dictionary of which tests should be included

Type

dict

time

time points of the observation

Type

numpy.ndarray