Historically, PEST is a topic that has intimidated beginner-novice modelers, due to the steep learning curve and lack of an intuitive GUI. PEST requires several steps to be completed in a specific sequence, in order to achieve a successful run and meaningful results. If you don’t mind editing text files, you might be able to get by, but very few modelers are comfortable with doing this. Visual MODFLOW changed the way modelers see and use PEST with the release of the WinPEST interface in 1999. In recent years, PEST has made significant advances with the addition of pilot point parameterization, regularization, and distributed processing. These advances have pushed Parameter Estimation and Uncertainty Analysis methods into the spotlight, underlining their value in the overall groundwater modeling process. The downside, however, is that these new features require a new learning curve and new sequential steps in order to be successful. Existing MODFLOW GUI’s fail to provide an intuitive, logical GUI for PEST – with upcoming release of VMOD Flex 2012.2, we hope to change this, and in the process make PEST available to modelers of any skill level. Take a look at what’s to come.


PEST with Pilot Points


The following is a mockup of the GUI for using PEST with Pilot points in VMOD Flex.

Before starting PEST, you must have translated and run your model using MODFLOW-2000 or MODFLOW-2005.

VMOD Flex provides a set of workflow steps that allow you to build the PEST input files, run PEST, and analyze/interpret the results, in an intuitive, logical fashion. The steps for the PEST workflow GUI are shown below:


  • Define Observations
  • Define PEST Parameters
    • Boundary Conditions
    • Property Zones
  • Define Pilot Points
  • Define Kriging Variograms
  • Select PEST Run Mode
    • Run PEST
    • Sensitivity Analysis
  • Select Regularization Type
    • None
    • Tikhonov
    • Truncated SVD
    • SVD Assist
  • Select PEST Run Type
    • PEST
    • Predicitive Analysis
    • Uncertainty Analysis (Monte Carlo)
  • Run PEST
  • Analyze Results
  • Update Model Inputs

You can easily navigate through the workflow by:

Clicking the NextButton_32(Next) button to go to the Next step

Clicking the BackButton_32(Back) button to go to the Previous step; or

Selecting specific steps in the workflow tree.

The first step is to define the observations and assign weights.




By default, all your head observations are included and have a default weight of 1.

When you are finished, click NextButton_32 (Next Step button) to proceed.

The next step is to choose what PEST Parameters you want to include.




VMOD Flex groups parameters into two categories:

  • Property Zone Parameters (Hydraulic Conductivity, Storativity, etc.), and
  • Boundary Condition parameters (Conductances, Recharge/EVT zones, Specified Heads, etc.).


Currently Property Zone parameters are supported. Select this option to proceed.

The next step is to select which parameters you want to include and which parameter zones you want to include.




For each parameter, you can specify to “Tie” it to another parameter. You can also specify the Transformation option (by default, all Conductivity parameters are set to Log transformation)

For each parameter zone, you must specify minimum and maximum values; defaults are provided, in addition, the value from each zone is also displayed to assist in defining reasonable minimum/maximums.

When you are finished, click NextButton_32 (Next Step button) to proceed.

The next step is to provide pilot points to represent the selected parameter zones.




Pilot points are simple XY points with an initial value for each parameter. Pilot points can be imported from .TXT file, XLS, .SHP file, or assigned manually by digitizing in the 2D environment. An example of the pilot points on top of conductivity zones is shown below.




  • Select the desired points object from the model tree, then click button-bluearrow (Add Object button) to add these points.
  • Slect which parameter zones the points represents (eg. Kx-Zone1, or Kz-Zone5)
  • In the table in the lower half of the window, you can specify which pilot points are “Hard”. Hard pilot points are those that have initial values that are well known, and which should not be adjusted during the PEST run. Examples of these include points where you have pumping/slug test data. For all other points, there initial value is taken from the property zone in which the specific point lies.

When you are finished, click NextButton_32 (Next Step button) to proceed.

The next step is to Define Variograms for Kriging.



Each parameter+zone is listed in the tree, and must have a variogram defined. Further details will follow on the various parameters that can be modified for each variogram.

When you are finished, click NextButton_32 (Next Step button) to proceed.

The next step is to choose the PEST Run Mode:




The options are:

  • Run PEST (Parameter Estimation/Optimization)
  • Run Sensitivity Analysis (this is PEST with just a single iteration); it is recommended you first run a Sensitivity Analysis before a PEST run in order to determine which parameters are the most sensitive, and should thus be included in the PEST run.


Select the desired option from the main window.

If you select to Run PEST, the following options will appear




VMOD Flex provides three PEST Run types:

  • Parameter Estimation (Traditional PEST, with Pilot Points)
  • Uncertainty Analysis (Using Null Space Monte Carlo)
  • Predictive Analysis


Currently traditional PEST Run type is supported.

The next step is to define the Regularization options.




PEST provides a variety of regularization options, and these are available in the VMOD Flex GUI:

  • No Regularization
  • Tikhonov Regularization
  • Truncated SVD Regularization
  • SVD Assist

(Note, these options may be adjusted for the final release, as it is possibel to combine Tikhonov Regularization with SVD Assist)

Select the desired option to proceed.

The next step is the edit/modify the PEST control file.





The PEST control file is presented in a text editor, where you can adjust any of the run time parameters, or insert additional information; copy and paste is available from here, allowing for quick processing using external tools.

When you are finished, click NextButton_32 (Next Step button) to proceed.

The next step is to Run PEST; click on the NextButton_32 (Run PEST) button from the main toolbar.





PEST progress will appear in the main window.

Once the PEST run is complete, click NextButton_32 (Next Step button) to proceed.

The next step is to Analyze the Results.




VMOD Flex provides a link to each of the PEST output files and allows you to view these in a tabbed view.

You will be able to export the PEST results directly to Excel, where you can build your own charts showing parameter values, sensitivities, etc. Some example charts are below.




When you are finished, click NextButton_32 (Next Step button) to proceed.

The last step (optional) is to save the modified PEST parameter values as new inputs for the numerical model.




VMOD Flex will save the adjusted model parameters in a new model run within the same project. In the past, you would need to do a “Save Project As…”, if you wanted to keep the original model separate from the PEST updated model. With VMOD Flex, you can have all these model scenarios/runs accessible within a single project, allowing you to efficiently compare the original model to the “PEST-adjusted” model run, where you can make comparisons between calculated heads, property zone parameters, etc.


We want to hear from you! Please send us your comments/suggestions via our support team