<< Click to Display Table of Contents >> PESTPP-IES |
![]() ![]() ![]() |
PESTPP-IES is an iterative ensemble Kalman smoother. It can be considered as the flagship of the PEST++ suite. Ideally, a modeller supplies a smoother such as PESTPP-IES with samples of the prior parameter probability distribution. After an iterative parameter adjustment process, these become samples of the posterior parameter probability distribution. The model run burden of the parameter adjustment process is comparatively light. This is because the number of model runs that is required per iteration is proportional to the number of realisations that comprise an ensemble, and not the number of parameters that comprise a realisation. The iterative parameter adjustment process is not always straightforward. However PESTPP-IES provides many options that can yield good performance in difficult circumstances. These include different types of localisation, as well as multi-modal updating of individual realisations. Nevertheless, in circumstances where there is a high degree of nonlinearity between model outputs and parameters, and/or where the measurement dataset is large, its performance may suffer. In these situations, it may not attain as good a fit with a history-matching dataset as may be desired. Whether it does this or not, there can be no guarantee that its uncertainty limits are either too broad or too narrow. Little can be done about this. Every method has its strengths and shortcomings. Furthermore, in highly-parameterised settings where sensitivities cannot be calculated using adjoint methods, ensemble methods provide the only viable option for posterior uncertainty analysis. A quote from an excellent book by Evensen et al (2022) comes to mind regarding use of ensemble methods. "The fun fact is that nobody knows precisely what distribution the method samples in the nonlinear case". This is a great book. And it is free. |
Programs of the PEST++ suite can read their data requirements using protocols that are updated from that of the traditional PEST control file. Features of the new protocol include the following. •Values of control variables are provided following pertinent keywords. •Values do not need to be provided for all control variables. If a variable is omitted, a default value is supplied. •Variables which define the dimensions of the inverse problem are not required as PEST++ programs figure out problem dimensions themselves. •The names of all parameters, parameter groups, observations and observation groups can be up to 200 characters in length. •Data pertaining to parameters and observations can be supplied in external tabular or CSV files. •In the "observation data" section of a PEST control file, measurement standard deviations can be provided in addition to weights. This is explained in further detail in a previous page. Thankfully, PEST++ programs can read legacy PEST input datasets. PEST++ control variables (including those which govern the operation of PESTPP-IES) can be placed anywhere within a legacy PEST control file following the "++" characters. |
Just like members of the PEST suite, PESTPP-IES can obtain prior parameter uncertainties from a user-prepared parameter uncertainty file. This file can cite one or a number of covariance matrix files. It can also cite individual parameter standard deviations. If you do not provide PESTPP-IES with a parameter uncertainty file, it will not complain. It will simply use parameter bounds to calculate prior uncertainties. This is not a good idea if parameters exhibit prior spatial correlation (as groundwater model parameters often do). So it is worthwhile going to the trouble of creating a prior uncertainty file yourself. Covariance matrices which denote stationary or non-stationary spatial correlation can be built using programs PPCOV, PPCOV3D, PPCOV_SVA and PPCOV3D_SVA from the groundwater utility suite. |
Some practicalitiesMathematically, model parameter uncertainty (and therefore predictive uncertainty) arises from two sources. These are: •lack of information in the calibration dataset (this resulting in the existence of a parameter null space); •contamination of measurements by measurement noise. (We recognise that the above two points ignore uncertainties in the conceptual model, including uncertainties in the prior parameter probability distribution.) The PESTPP-IES algorithm through which samples of the prior parameter probability distribution are adjusted to become samples of the posterior parameter probability distribution includes both of these contributions. It incorporates the effects of measurement noise by generating samples of it, and adding these samples to the measurement dataset. Each parameter realisation is therefore adjusted using the same measurement dataset as every other realisation, but with a different realisation of measurement noise. A problemUnless you tell PESTPP-IES otherwise, it assumes that the weight assigned to each observation in a legacy PEST control file is equal to the inverse of the standard deviation of measurement noise associated with that measurement. It generates a sample of measurement noise accordingly. If you are not paying much attention to weights, this sample may be wildly aberrant. If measurement noise standard deviations are exaggerated, PESTPP-IES may fail to achieve a good fit with the measurement dataset. Measurement weights are important. Furthermore, you need to be creative when developing a measurement weighting strategy. Of particular importance is the balancing of different components of a multi-component objective function. But then a problem arises. How can weights serve this balancing role and govern the level of random noise that PESTPP-IES must add to measurements at the same time? Obviously they cannot. Solution to the problemThere are three ways out of this dilemma. The first is to employ new PEST control file protocols for the "observation data" section of the PEST control file. This allows you to provide observation data in an external file that has five columns instead of four. The extra column contains measurement standard deviations. PESTPP-IES uses these to generate measurement noise. It is easy to make an external observation data file from the "observation data" section of a PEST control file. Just a little cutting and pasting is required. The second option is to generate your own realisations of noise-enhanced observations for PESTPP-IES to use. The name of the CSV or JCB file which contains these noise-enhanced observations is supplied to PESTPP-IES through the ++observation_ensemble() keyword. Meanwhile you can generate this observation ensemble using the RANDOBS utility supplied with the PEST suite. A third option is to tell PESTPP-IES to add zero measurement noise to observation realisations. This can be done using the ++ies_no_noise(true) directive. |
The PEST suite provides a suite of utilities that facilitate joint use of programs of the PEST suite with PESTPP-IES in particular, and with the PEST++ suite in general. We tabulate them here again.
|
Sometimes the performance of PESTPP-IES in fitting a measurement dataset, and possibly in sampling the posterior parameter probability distribution, can be improved if you calibrate a model first and then run PESTPP-IES. This assumes, of course, that the number of model parameters is not so large as to preclude the use of any parameter adjustment method that does not rely on ensembles. If you have, indeed, calibrated a model, then you can centre samples of the prior parameter probability distribution on calibrated parameter values instead of prior mean parameter values; this may improve PESTPP-IES's numerical performance a lot. Use the PARREP utility to insert calibrated parameter values into the PEST control file on which the PESTPP-IES run is based. Or you can go one step further than this. As well as using calibrated parameter values as initial parameter values, you can use the PREDUNC7 utility to calculate a linear posterior covariance matrix after you have calibrated the model. You can then inform PESTPP-IES that this is the "prior parameter covariance matrix". Its numerical performance should then be exceptionally good. |
The RSI_HP program is supplied with the PEST_HP suite. This is a basic ensemble smoother - but with an inversion algorithm that can overcome some of the history-matching shortcomings that beset traditional ensemble methods. RSI_HP cannot handle as many parameters as PESTPP-IES can handle. Nor does it have as many parameter adjustment options. However experience demonstrates that it can often fit a measurement dataset quickly and well, even under adverse nonlinear conditions. Unfortunately, the cost of such a good fit may be ensemble collapse. However this raises many questions. What can we conclude from failure of an ensemble method to achieve a good fit with a measurement dataset (and therefore failure to extract all available information from that dataset)? Is it trying to collapse, but cannot? Does the resulting ensemble spread truly reflect null space contributions to parameter/predictive uncertainty, or is it just an unquantifiable artefact of its failure to fit the dataset? We refer you to Evensen et al's comments above. |