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 conductivityvar
: variance of log-conductivitylen_scale
: correlation length scale of log-conductivityanis
: anisotropy between horizontal and vertical correlation lengthstorage
: storage
- Parameters
name (
str
) – Name of the Estimation.campaign (
welltestpy.data.Campaign
) – The pumping test campaign which should be used to estimate the parametersval_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_rangesval_fix (
dict
, optional) – Dictionary containing fixed values for the type-curve. Names should be as in the type-curve signature. Default: Noneval_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: Noneval_fit_name (
dict
, optional) – Display name of the fitting transformation. Will be the val_fit_type string if it is a predefined one, orf
if it is a given callable as default for each value. Default: Nonetestinclude (
dict
, optional) – Dictionary of which tests should be included. IfNone
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. IfNone
the CWD is used. Default:None
dbname (
str
, optional) – File-name of the database of the spotpy estimation. IfNone
, it will be the current time +"_db"
. Default:None
traceplotname (
str
, optional) – File-name of the parameter trace plot of the spotpy estimation. IfNone
, it will be the current time +"_paratrace.pdf"
. Default:None
fittingplotname (
str
, optional) – File-name of the fitting plot of the estimation. IfNone
, it will be the current time +"_fit.pdf"
. Default:None
interactplotname (
str
, optional) – File-name of the parameter interaction plot of the spotpy estimation. IfNone
, it will be the current time +"_parainteract.pdf"
. Default:None
estname (
str
, optional) – File-name of the results of the spotpy estimation. IfNone
, 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: estimatedparallel (
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. IfNone
the CWD is used. Default:None
dbname (
str
, optional) – File-name of the database of the spotpy estimation. IfNone
, it will be the current time +"_sensitivity_db"
. Default:None
plotname (
str
, optional) – File-name of the result plot of the sensitivity analysis. IfNone
, 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. IfNone
, it will be the current time +"_senstrace.pdf"
. Default:None
sensname (
str
, optional) – File-name of the results of the FAST estimation. IfNone
, 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. IfNone
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
orfloat
, 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 behaviorfloat
: 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
- campaign_raw
Copy of the original input campaign
- data
observation data
- Type
- 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
- rad
array of the radii from the wells
- Type
- radnames
names of the radii well combination
- Type
- time
time points of the observation
- Type