To create contours, there are three general steps: data analysis/normalization, gridding, and contouring. For each of these steps, several options exist which will produce different contour lines. Often, artificial control points are added where professional judgment deems it appropriate to pin down, or expand contour lines. The following list gives you a quick overview of each gridding method and some advantages and disadvantages in selecting one method over another. Inverse Distance to a Power is fast but has the tendency to generate ‘bull’s-eye’ patterns of concentric contours around the data points. Inverse Distance to a Power does not extrapolate Z values beyond the range of data. Kriging is one of the more flexible methods and is useful for gridding almost any type of data set. With most data sets, Kriging with the default linear variogram is quite effective. In general, we would most often recommend this method. Kriging is the default gridding method because it generates a good map for most data sets. For larger data sets, Kriging can be rather slow. Kriging can extrapolate grid values beyond your data’s Z range. Minimum Curvature generates smooth surfaces and is fast for most data sets but it can create high magnitude artifacts in areas of no data. The internal tension and boundary tension allow you control over the amount of smoothing. Minimum Curvature can extrapolate values beyond your data’s Z range. Natural Neighbor generates good contours from data sets containing dense data in some areas and sparse data in other areas. It does not generate data in areas without data. Natural Neighbor does not extrapolate Z grid values beyond the range of data. Nearest Neighbor is useful for converting regularly spaced (or almost regularly spaced) XYZ data files to grid files. When your observations lie on a nearly complete grid with few missing holes, this method is useful for filling in the holes, or creating a grid file with the blanking value assigned to those locations where no data are present. Nearest Neighbor does not extrapolate Z grid values beyond the range of data. Polynomial Regression processes the data so that underlying large-scale trends and patterns are shown. This is used for trend surface analysis. Polynomial Regression is very fast for any amount of data, but local details in the data are lost in the generated grid. This method can extrapolate grid values beyond your data’s Z range. Radial Basis Function is quite flexible. It compares to Kriging since it generates the best overall interpretations of most data sets. This method produces a result quite similar to Kriging. Modified Shepard’s Method is similar to Inverse Distance to a Power but does not tend to generate ‘bull’s eye’ patterns, especially when a smoothing factor is used. Modified Shepard’s Method can extrapolate values beyond your data’s Z range. Triangulation with Linear Interpolation is fast. When you use small data sets, Triangulation with Linear Interpolation generates distinct triangular faces between data points. Triangulation with Linear Interpolation does not extrapolate Z values beyond the range of data. Additional algorithms are available for users of Surfer 8, including the new data metrics options introduced in version 8, such as slope and aspect. In addition to the contours being imported into ArcGIS, the grid can also be converted from a Surfer grid to an ESRI Grid for further analysis in ArcGIS. Vector maps are also an option for users of Surfer 7 or later, which are lines sized by magnitude of the gradient along the surface and pointing in the direction of that gradient, e.g. groundwater flow directions. Using the built-in ArcMap or ArcScene Visual Basic for Applications (VBA) environment, this module may now be automated to create the same output available when using the EQuIS for ArcGIS ‘Contours with Surfer’ dialog/user interface. This facilitates the creation of multiple contours for various analytes, dates, or even to compare the results of simply using a different gridding algorithm keeping all other parameters constant. See the Customizing section for sample code. Source.