Surfaces may be created from drawings or tables by copying the drawing or table and pasting it as a surface.

When imported from a surface, image or drawing (for those drawing formats like SDTS that can contain surfaces), surfaces are already created as raster, grid data. At times, however, we might want to create a surface using an irregular pattern of points or from a geocoded table that contains a spatially irregular set of records. To do so we simply copy the drawing or the geocoded table and then we paste it as a surface. We may even copy an image and paste it as a surface if it makes sense to do so. The Paste As Surface dialog will be raised to allow us to specify interpolation method and other parameters of interested in creating the surface.

Pasting Images as Surfaces

Height |
Specify the values to use for elevation values for the surface. |

Type |
Choose the data type to use for elevation values. |

Pasting Tables as Surfaces

X / long |
Choose which field in the table should be used for an X or longitude coordinate. |

Y / lat |
Choose which field in the table should be used for a Y or latitude coordinate. |

Latitude / longitude coordinates |
Check if the values in the X / long and Y / lat boxes are in degrees latitude and longitude. If this box is not checked the surface will be created in Orthographic projection treating the X and Y values as meter-based coordinates. |

Height |
Choose the field to be used for elevation values for the surface. |

Type |
The data type to use for elevation values in the surface. If the originating field is a different type, Manifold will convert to the given type when writing to the surface. |

Margins |
Margins in the specified unit of measure (shared with the Pixel Size combos) in X and Y directions that the surface should be extended beyond the bounding box of the objects or records being pasted to create the surface. This allows extending the created surface by some margins beyond the data being pasted to create the surface, allowing some interpolation at the edges for smoother edge effects in some cases. 0 by default. |

Pixel Size |
Size of pixels in the created surface, in the specified unit of measure. |

Same size in X and Y direction |
If checked (default), any edits in the X pixel size will also update the Y pixel size, for "square" pixels. |

Method |
Gravity, Kriging, Median-polish Kriging, No Interpolation, Triangulation (flat) or Triangulation adjusted for contours. or The type of interpolation algorithm (model) used to create the surface. Options other than Kriging will appear only if the optional Surface Tools extension has been installed. The Triangulation adjusted for contours method uses triangulation adjusted using the DEST algorithm for increased accuracy. |

Neighbors |
Appears when using the Gravity, Kriging or Median-polish Kriging method. The number of neighboring points to consider when making the interpolation. Manifold will automatically use all points as neighbors for interpolations up to 1000 points. Note that it is faster to use all points as neighbors up to 1000 points than it is to use some subset of points (such as, only 990 neighbors out of 1000 points). |

Model |
Appears when using the Kriging or Median-polish Kriging method. Auto (default), Exponential, Gaussian, Linear, Power, Rational or Spherical interpolation models. The Auto setting allows Manifold to choose which of the interpolation models it thinks will work best in this case. Linear, Power, Rational or Auto choices will appear only if the optional Surface Tools extension has been installed. |

Use only Voronoi neighbors |
Interpolate over each location using only those neighbors that would be adjacent in a Voronoi diagram. This helps achieve a balance between a too-smooth interpolation achieved with a high number of neighbors and a too-coarse interpolation achieved with a low number of neighbors. Using this option will increase processing time. |

Use radius |
Appears when using the Gravity, Kriging or Median-polish Kriging method. The distance in the given units from any data point over which an interpolation can extend. Not checked by default to allow Manifold to choose the radius. |

Save error surface as |
Appears when using the Kriging or Median-polish Kriging method. Allows saving of an error surface using the given numeric type. |

Set corner values to |
Appears when using the Triangulation (flat) or Triangulation adjusted for contours methods. Optionally set the values in the corners of the computed surface to the given values. If this option is used, the entire surface (to the full rectangular extents) will be interpolated using the corner values as anchors. If this option is not used, those regions outside the convex hull of the existing data points will remain invisible. |

Pasting Drawings as Surfaces

Pasting a drawing as a surface is similar to pasting a table as a surface except that there is no need to specify the fields to be used as latitude and longitude, since the coordinates of objects in the drawing are built into the geometry of the drawing.

Likewise, there is no need to specify whether the coordinates are latitude and longitude coordinates, since the coordinate system used by the drawing is also known. When pasting a drawing as a surface, the surface will inherit all projection parameters from the drawing.

When pasting a drawing as a surface, Manifold can use point and line objects to create a surface. Point objects are taken as point data from which the surface is interpolated. Line objects will have point data created at each coordinate ("inflection point") that defines the line.

Height |
Choose the field to be used for elevation values for the surface. |

Type |
The data type to use for elevation values in the surface. If the originating field is a different type, Manifold will convert to the given type when writing to the surface. |

Margins |
Margins in the specified unit of measure (shared with the Pixel Size combos) in X and Y directions that the surface should be extended beyond the bounding box of the objects or records being pasted to create the surface. This allows extending the created surface by some margins beyond the data being pasted to create the surface, allowing some interpolation at the edges for smoother edge effects in some cases. 0 by default. |

Pixel Size |
Size of pixels in the created surface, in the specified unit of measure. |

Same size in X and Y direction |
If checked (default), any edits in the X pixel size will also update the Y pixel size, for "square" pixels. |

Method |
Gravity, Kriging, Median-polish Kriging, No Interpolation or Triangulation (flat). The type of interpolation algorithm (model) used to create the surface. Options other than Kriging will appear only if the optional Surface Tools extension has been installed. |

Neighbors |
Appears when using the Gravity, Kriging or Median-polish Kriging method. The number of neighboring points to consider when making the interpolation. Manifold will automatically use all points as neighbors for interpolations up to 1000 points. Note that it is faster to use all points as neighbors up to 1000 points than it is to use some subset of points (such as, only 990 neighbors out of 1000 points). |

Model |
Appears when using the Kriging or Median-polish Kriging method. Choose Auto (default), Exponential, Gaussian, Linear, Power, Rational or Spherical interpolation models. The Auto setting allows Manifold to choose which of the interpolation models it thinks will work best in this case. Linear, Power, Rational or Auto choices will appear only if the optional Surface Tools extension has been installed. |

Use only Voronoi neighbors |
Interpolate over each location using only those neighbors that would be adjacent in a Voronoi diagram. This helps achieve a balance between a too-smooth interpolation achieved with a high number of neighbors and a too-coarse interpolation achieved with a low number of neighbors. Using this option will increase processing time. |

Use radius |
Appears when using the Gravity, Kriging or Median-polish Kriging method. The distance in the given units from any data point over which an interpolation can extend. Not checked by default to allow Manifold to choose the radius. |

Save error surface as |
Appears when using the Kriging or Median-polish Kriging method. Allows saving of an error surface using the given numeric type. |

Set corner values to |
Appears when using the triangulation method. Optionally set the values in the corners of the computed surface to the given values. If this option is used, the entire surface (to the full rectangular extents) will be interpolated using the corner values as anchors. If this option is not used, those regions outside the convex hull of the existing data points will remain invisible. |

Trimming Unwanted Surface Extensions

Data pasted as a surface rarely fits into a rectangular box. Normally, the interpolation radius parameter will deal with this automatically. For example, suppose we have a drawing showing county centroids in the United States with a "population" field for each county. If we paste these as a surface, the data within the borders of the US will be real but there will be no data beyond the borders of the US. In that case, the interpolation radius will render invisible all pixels in the surface beyond the region where data points exist. When using the triangulation method. he Set corner values option allows us to force Manifold to fill in all invisible pixels outside the convex hull of the surface to form an interpolated rectangular surface.

Another option is to simply select the unwanted surface pixels and delete them. The easiest way to make a surface conform to some desired area in a drawing is to select the area and transfer the selection to the surface. Use Edit - Invert Selection to select all other pixels and delete them. Next, use the Selections pane to select invisible pixels, invert the selection once more and then use the transform toolbar to Crop to the selection.

Creating Tables from Surfaces

Surfaces may be copied and then pasted as tables. See the Editing Surfaces topic.

Unexpected Results in Surfaces

When creating surfaces from tables or drawings at times we may see unexpected results in the surface. For example, a regular pattern or other visual artifact might appear superimposed upon the surface as seen in the illustration below.

The illustration above shows a surface interpolated from a table of 641 records providing elevations near Portola Valley, California. The table was copied and then pasted using default settings for pixel size into a surface. Using default resolution creates a surface with 102,400 points which means that 99.4% of the points are interpolated using a Kriging algorithm.

For smoother results it would be better to paste the table using larger pixels, for, say, 1600 points with approximately 60% being interpolatedâ€¦

â€¦or perhaps somewhat smaller pixels to get 6400 points with approximately 90% being interpolated:

Both of the above illustrations show the full surface, of which the first illustration shows the upper right corner. Pasting tables or drawings as surfaces where the surface contains much more than 90% interpolated points will produce highly unreliable results.

It is always tempting for newbies to want to interpolate data to "fill in the gaps" between a data set that has too few data points. It is also easy to forget the simple arithmetic that creates from such innocuous sounding numbers as a 320 x 320 (X pixels by Y pixels) the huge number of 102,400 points. Between the desire to have data where there is none and a forgetfulness about how many pixels are involved in even medium-resolution surfaces it is easy to fall into the trap of trying to stretch a rather small data set into a very large surface. If we want to create a finely detailed, high-resolution surface from a table the only solution is to have a reasonably large number of data points (records) with which to begin.

Example

In this example we will create a surface from a grid of points.

We begin with a map that shows a drawing containing a grid of points superimposed upon the example Montara Mountain surface (created from the USGS 1:24K-scale SDTS DEM showing a region just south of San Francisco, California). The grid was created by creating a blank drawing and then using the Grid command to create a grid of points spaced every 1000 meters. Points in the grid that did not appear above the surface were deleted. Using the Transfer Heights command we placed the value of the height of the surface into the Height column for each point.

We now have a drawing that contains points with height values for each point. Many data sets from which we would like to create a surface will be in this form, as a drawing of points where each point has a height value. Although many such data sets will have the points in a regular arrangement, a regular arrangement of points is not necessary to create a surface from such points. In this example, the points are regularly arranged because that was the easiest way to create points for the example, by using the Grid command. All that is necessary to create a surface from points is that the points are reasonably dense in areas of interest. Obviously, if some regions have very many data points while in other regions there are very few points then the accuracy with which a surface may be interpolated will be lower in regions with fewer points.

To create a surface, in the project pane we Copy the drawing containing points and Paste As a surface.

In the Paste As Surface dialog we choose to make each pixel 100 meters in size in X and Y directions. Since our original data set had a point every 1000 meters, this means that we will create a surface for which ten surface pixels will be interpolated between each data point. We have also checked the Save error surface box to create an error surface.

Viewing the result, we can see that the surface is clearly of much lower resolution than the original. Even so the surface reproduces the general topography, at least as much as can be represented given that the surface heights were sampled only every 1000 meters (the spacing of the grid points). Note that the only way to completely reproduce the original surface would have been to lay down a grid of so many points that each pixel of the original surface could be sampled.

Opening the error surface we can see the regions of higher error by applying the spectrum palette in the View - Display Options dialog, arranged so that regions of higher error show red and those of lower error show blue and purple. Note that the regions immediately surrounding the data points used to interpolate the surface show relatively low error while those regions surrounding rapidly changing terrain elevations (such as the higher altitude peaks) show greater error.

Notes

Images that represent raster data such as elevations, temperatures and other factors are often very interesting to visualize as surfaces.

Because Manifold can paste tables directly into surfaces, one can take a table of elevations created from, say, a GPS and paste it immediately as a surface. One could also take a table of any value (such as pollution levels, temperature, etc.) and paste it as a surface.

If a field named z, elevation, elev, e, height, hgt or h (case insensitive) exists in the drawing or table, Manifold will offer that by default as the field in the Height box. When pasting tables, fields named longitude, latitude, lon, long, lat, x or y (case insensitive) will be offered as the X / long or Y / lat box fields by default.

Attempting to create a surface larger than 16 million pixels (4,000 x 4,000) will trigger a confirmation dialog that will ask "Surface size is (x dimension) x (y dimension) pixels. Paste anyway?"

See Also

See the Displaying Data in a Gradient Map topic for an example that shows demographic data displayed in a continuously varying gradient throughout the United States using a surface.