PEST Calibration Observations

  • Scroll to top of this topic Scroll to Top of Page

  • Print the current topic Print Topic

  • No expanding elements on this page Show/Hide Expanders

When PEST is estimating parameters, it compares simulated values from the model with measurements representing the modeled system. From a model calibration standpoint, it is important to have a variety of different observation types. For example, head observations are typically widely available for calibrating models, but head observations alone are typically insufficient to constrain many important model inputs. For example, if the model parameters include recharge and hydraulic conductivity, head observation data alone only allows for estimation of the ratio of the recharge rate to the hydraulic conductivity but will not allow the independent estimation of both the recharge rate and the hydraulic conductivity (e.g., Haitjema, 2006).  PEST provides means to overcome such parameter correlation (e.g., Tikhonov regularization application of Hunt and others, 2019) but generally a minimum of head and flow type observations are considered necessary for calibration (Anderson and others, 2015).  Inclusion of many types of observations, however, will typically provide more robust calibration results (Hunt and others., 2006).

Sometimes the difference between two simulated values can be more helpful in estimating parameters than the simulated values themselves (Doherty and Hunt, 2010; Anderson and others, 2015). Typically, such comparisons involve simulated values of the same type and time at different locations that define a spatial gradient or simulated values of the same type and location at different times that define a temporal change. Both types can be defined in the Comparison Observations dialog box. Temporal changes typically are defined when a single object is used to specify observations at different time. In such cases, the user can typically define comparison observations in the same dialog where the direct observations are defined– usually the Object Properties dialog

When ModelMuse generates the model input files, it also generates two input files for one of the utility programs: Mf6ObsExtractor, Mf2005ObsExtractor, or SutraObsExtractor. Depending on the version of the forward model selected, the utility program processes the model output files to generate simulated values that can be compared with observed values. The other input file causes the utility to generate an instruction file used by PEST to read the model results. The instruction file is generated when the model is run from ModelMuse. The simulated values are extracted when PEST is running the model through the RunModel.bat batch file.

For all calibration observations for PEST, an observation name, the observed value, the weight and an observations group must be defined. Observation weights are important for prioritizing calibration tradeoffs that arise; Doherty and Hunt (2010) and Chapter 9 of Anderson and others (2015), among others, have discussed the importance of weighting for the parameter estimation process. Observation groups are defined in the Observation Group Properties pane of the PEST Properties dialog box.


MODFLOW 6 provides the “Observation Utility” to generate time-series of simulated values of many sorts, including heads, and flows through boundaries. The simulated values are written at each time step and may refer to values at a single cell or to a group of cells. ModelMuse allows the user to define calibration observations for use with PEST based on the output of the Observation Utility. For head observations, calibration observations are computed by interpolating in space and time to the observation location and time. For structured grids, bilinear interpolation is used from the surrounding cell centers within a layer to the observation location. For unstructured (DISV) grids, a linear, triangular, or quadrilateral basis function (Wang and Anderson, 1977) is used for spatial interpolation within a layer. The type of basis function is chosen automatically depending on the number of active cells surrounding the observation. Spatial interpolation among more than 4 points is not supported. Temporal interpolation is performed by linear interpolation between the time preceding and succeeding the observation time. Flows through boundaries may involve adding the flows from several objects. All calibration observations are defined on the Calibration tab of the Observation Utility pane of the Object Properties dialog box.

Multilayer head observations are defined in horizontal space by point observations on the top view of the model in which the multilayer checkbox on the calibration tab is checked and in which the object has information that tells ModelMuse that the point object intersects more than one layer. The information takes the form of “Z formulas” that define the well screened interval. If the multilayer checkbox is not checked, the observation will be treated as a single-cell observation and the cell that has the longest length of intersection between the cell and the well screen will be the cell used for the observation. Transmissivity weighting is applied to the individual cells that make up the multilayer head observations based on the product of the cell hydraulic conductivity in the X direction (Kx) and the length of intersection between the well screen and the cell. The transmissivity weights used for the composite head calculation remain constant during parameter estimation even if Kx is changed during parameter estimation.


MODFLOW-2005 and related models such as MODFLOW-NWT have a built-in mechanism for defining head and flow observations at specified locations and times. There are also several packages that generate simulated values that can be compared with observed values. As described in the MODFLOW-2005 documentation (Harbaugh, 2005; see also Hill and others, 2000), MODFLOW-2005 interpolates head observations in time and space to the location and time of the head observation. Head observations are defined in the Head Observation Package. Individual head observations are specified in the Head Observations pane of the Object Properties dialog box. Observations of flow through boundaries can be defined in the CHOB, DROB, GBOB, RVOB, and STOB packages. Individual flow observations are defined in the Manage Flow Observations dialog box.

ModelMuse generates input for Mf2005ObsExtractor so that output files from several other packages can be used for model calibration (for example, the Gage Package). If the Lake package is used, lake gages can be used to export various lake properties such as the lake stage or the inflow or outflow from the lake. These can be used to define calibration observations on the Calibration tab for the Lake Package in the Object Properties dialog box. On the Gage tab, you need to ensure that data of the desired feature type will be saved. If the MNW2 package is used, the head in the well or well flows can be used as calibration observations. These are defined on Calibration tab on theMNW2 Package pane in the Object Properties dialog box. If the SFR package is used, calibration observations for it can be defined on the Calibration tab on the SFR pane and Calibration tab of the Gage pane, which are both in the ObjectProperties dialog box. If subsidence is simulated using either the SUB or SWT packages, observations related to subsidence can be defined on the SUB and SWT panes, which are both in the Object Properties dialog box. If the Seawater Intrusion package is used and observations are used, the SWI2 pane in the Object Properties dialog box can be used to defines observations of Zeta. Observations defined for the SUB, SWT, or Seawater Intrusion packages are interpolated by Mf2005ObsExtractor in the same was as head observations are interpolated by MODFLOW-2005.


SUTRA has built-in capabilities for defining observations at particular places and times. These fall into two classes. Observations of state variables are specified in the Sutra State Calibration Observations pane of the Object Properties dialog box. Observations of flow through boundaries and related variables are specified in the Manage SUTRA Boundary Observations dialog box.