Navigation:  Working with Your Data >

Creating Surfaces


In Visual MODFLOW Flex, a surface refers to an attribute (e.g., elevation, conductivity, heads) represented as a set of continuous data over an area. Surfaces can either be imported directly (see "Importing Surfaces") from various file types using the import utility, or created by interpolating one or more points data objects. This chapter describes the process of creating surfaces from point data objects.

Surfaces are required in Visual MODFLOW Flex for defining the vertical boundaries of structural zones, e.g., horizons in a conceptual model. However, surfaces can also be used to assign spatially-variable attributes to property zones and boundary conditions, or for simply visualizing spatial variation using the 2D or 3D Viewers.

The create surface process allows you to generate surfaces using any numeric attribute in a point data object. The point data object can be one that has been imported using the import utility, or one that has been generated from other data objects, e.g., cross sections and wells.

This chapter presents information on the following topics:

Create Surface

General Settings

Interpolation Settings


Create Surface


To create a new surface, follow the steps below:


From the Data Explorer, right-click anywhere and select Create Surface... from the pop-up menu.




The Create Surface dialog will display. Specify the general settings, described in the following section.




General Settings

Enter a unique name for the surface in the Surface Name field, and a description of the surface (optional) in the Description text box.

The Data Source frame allows you to select the point data object(s) from which the surface will be created.


Adding a Data Source


From the Data Explorer, select the desired Point data object from which the surface will be interpolated.

Click the Add button, to add the point data object to the Data Source frame.

Visual MODFLOW Flex allows you to create a single surface from multiple point data objects. Repeat the steps above to add additional points data objects to the Data Source frame.

For each data source, select the Z Value from the combo box (shown below). The Z value can be any numeric attribute stored in the points data source, e.g., Elevation, Conductivity, Initial Concentration, etc.




Next, click the Interpolation Settings tab to define the interpolation settings for the surface. These settings are described in the following section.


Interpolation Settings

Select the interpolation method to use for generating the surface. Choose from the following interpolation methods:

Inverse Distance


Natural Neighbor




Below are brief descriptions of each interpolation method, taken from the GSLIB Geostatistical Software Library and User’s Guide (Deutsch and Journel, 1998). For a description of each interpolation parameter setting, click on the setting, and a brief description will be displayed beneath the interpolation settings grid.

Once the settings have been defined, click the [OK] button to generate the surface.

Inverse Distance

The Inverse Distance Squared method is very fast and efficient, weighted average interpolation method. The weighting factor applied to the data depends on the distance of the point from the grid cell, and is inversely proportional to the distance squared. Consequently, the greater the distance the data point is from the grid node, the smaller the influence it has on the calculated value.

The Inverse Distance Squared method for interpolation may generate patterns similar to the “bull’s-eye” surrounding points of observations. Selecting a larger number of nearest neighboring data points may smooth this effect, but if the bull’s eye pattern is undesirable, then other methods for interpolation, like Natural Neighbor and Kriging, are recommended.



Kriging is a geostatistical method that produces visually appealing maps from irregularly spaced data. Anisotropy and underlying trends suggested in raw data can be incorporated in an efficient manner through Kriging. The program used, called kt3d, is available in the public domain from the Geostatistical Software Library (GSLIB), distributed by Stanford University, and is well documented by Deutsch and Journel (1998). The project kt3d performs simple Kriging, ordinary Kriging, or Kriging with a polynomial trend, and uses the standard parameter file used by GSLIP. If the semi-variogram components have already been modeled by the user, they can be incorporated into the program by choosing the appropriate set of parameters in the parameter file. The semi-variograms available include Spherical, Exponential, Gaussian, Power, and the Hoe effect models. If the variogram information is not available, the default linear variogram with no nugget effect should be used. This option is a special case of the Power model with the exponent equal to 1.  When using the Kriging interpolation method, you may need to adjust the min and max radii of the variogram in order to get an ideal interpolation; these parameter values will depend on your data set.  Default values are 100 and 100 along the major and semi-major axes. You will likely need to alter these values based on your input dataset and on the characteristics of the model domain.


Natural Neighbors

The Natural Neighbor method (Watson, 1994) is based on the Thiessen polygon method used for interpolating rainfall data. The grid node for interpolation is considered a new point, or target, to the existing data set. With the addition of this point, the Thiessen polygons based on the existing points are modified to include the new point. The polygons reduce in area to include the new points, and the area that is taken out from the existing polygons is called the “borrowed area”. The interpolation algorithm calculates the interpolated value as the weighted average of the neighboring observations where the weights are proportional to the borrowed areas. The Natural Neighbor method is valid only with the convex hull of the Thiessen polygon formed by the data points, and values outside the hull extrapolation should be used with caution.

The Natural Neighbor interpolation scheme may be visualized as a taut rubber sheet stretched to satisfy all the data points. The interpolated value at any location is a linear combination of all Natural Neighbors of that location, and the resulting surface is continuous with a slope that is also continuous. Combining the gradients or slopes with the linear interpolation provides results that are more smooth, and may anticipate the peak and valleys between data. Singularities and other undesirable effects may be lessened by incorporating the gradient factor.

The gradient influence on the results can be manipulated by two tautness parameters that you can enter. These parameters allow the interpolated surface to vary from purely linear interpolation to one which is well rounded and has a gradient factor. In all cases the slope discontinuities are removed and the resulting surface has slope continuity everywhere.



Interpolation Settings

Data object spreadsheet tables can be viewed by right-clicking on the data object in the Data Explorer, and selecting Spreadsheet... from the pop-up menu. 2D Viewers can be set to pick mode by selecting the Pick Mode button from the viewer sidebar.


Defining an Interpolation Domain using a Polygon

When creating a surface, the interpolation domain is automatically calculated from the X and Y extents of the specified point(s) data set. There may be times when you do not want to use the entire points data set to generate a surface. In this case, you can manually define the interpolation domain (Xmax, Ymax, Xmin, Ymin) by specifying new values in the interpolation settings grid, or you can use an imported or digitized polygon data object.

To define the interpolation domain using a polygon data object, follow the steps below:

In the Create Surface dialog box, select the Use a polygon extent check box.

Select a polygon data object from the Data Explorer, and then click the  button.



When the polygon data object is selected, the interpolation domain values in the settings grid will update with the X-Y extents of the selected polygon data object.



Page url: