The Interpolate template appears in the template list when a geometry field, of type geom, geommfd, or geomwkb, has been picked in the Transform pane. It interpolates vector data to create raster data.
Interpolation templates will add a Description property to the raster image they create, which will contain a report of various relevant factors used in the computation. See the discussion at the end of this topic.
Interpolate |
Create raster data in the specified Result destination and specified data type by interpolation using values in vector objects in a drawing. Parameter boxes will automatically appear as required by different interpolation options.
Typical interpolation parameters, depending on the operation:
Do not use a Resolution of 1 with a Unit of Degree when drawings are in an angular coordinate system, like Latitude / Longitude. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a linear coordinate system and the Unit chosen is Meter, a Resolution of 30 creates pixels that are 30 meters by 30 meters in size. To keep units straight, it is best to do interpolations using drawings that have been projected into linear coordinate systems, and not radial coordinate systems like Latitude / Longitude.
Interpreting various combinations of specified (positive value) or zero or negative value for Radius and Neighbors:
Using a larger radius with a specified number of Neighbors, can dramatically increase the time required for computations. When interpolating closely packed points that are confined to a specific region of a drawing, measure a distance that is slightly beyond the group of packed points, and use that distance for the Radius when using a specified number of Neighbors.
See the Notes at the end of the Example: Create Terrain Elevation Raster from a NASA PDS Table topic.
Interpolation Model options:
Regression model options:
The SQL function used within interpolation transform templates operate on objects that have Z values within their geoms. The transform automatically takes Z values from the designated field and temporarily adds them as Z values within the geom for each object so the function used can operate. The starting data is not changed, so after running this transform objects will not end up with Z values in their geoms.
Kriging operations produce a report of the parameters used, including resolved values for autocomputed parameters, and save the report into the description property of the new image component.
In Kriging, geoms without Z values are ignored. All geoms are converted to coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the operation uses one of these values and ignores any other Z values. If there is too little data to set up the model, Kriging degrades to Gravity interpolation.
About regression Kriging: Imagine an undulating surface that lies on the slope of a large hill, where if the surface were not bumpy we would have a smooth plane inclined at the overall angle of the hill. Suppose now we have many points that lie on the surface with each point providing the X,Y, and Z value of the surface at that point. Some regions of the surface have relatively few points or are lacking points.
The general task of Kriging is to take the collection of many points and to re-create the surface, filling in through computation some plausible interpolation in regions where sample points are sparse or missing. Ordinary Kriging simply takes the X,Y,Z values of the points and applies Kriging computations to interpolate a surface.
Regression Kriging first attempts to ascertain the overall inclined plane and to remove that as a bias, to allow considering the undulating surface as if it were arranged horizontally and not tilted on the overall slope of a hill. A Kriging calculation is performed on the adjusted, "as if level," coordinates of the points, and then the resulting interpolated surface is titled back to the original overall incline. The choice of linear or quadratic regression is a choice of how the original "overall" tilted-plane setting is determined.
Regression Kriging can identify and set aside more complex biases than the case of an undulating surface within a simple, overall incline in a hill. This non-mathematical description provides an analogy, not an exact phrasing of the math involved, to help non-mathematicians understand how Regression Kriging can provide better results than ordinary Kriging.
Launch the template by choosing a geometry field and then double-clicking the Interpolate template. When the template launches we can specify options.
|
Interpolate : gravity (IDW) |
Given a drawing with objects that have Z values in some field or which have Z values in their geometry, create an image and table using gravity formulae with inverse distance weighting (IDW) to interpolate pixel values in tiles from Z values for each object. The Result destination is always a new table and image.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values.
Interpolation parameters:
Interpreting various combinations of specified (positive value) or auto-computed (zero or negative value) for Radius and Neighbors:
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolate : Kriging |
Given a drawing with objects that have Z values in some field, create an image and table using Kriging to interpolate pixel values in tiles from Z values for each object. The Result destination is always a new table and image. Produces a report of the parameters used, including resolved values for autocomputed parameters, and saves the report into the description property of the new component.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values. If there is too little data to set up the model, Kriging degrades to Gravity interpolation.
Interpolation parameters:
Interpreting various combinations of specified (positive value) or auto-computed (zero or negative value) for Radius and Neighbors:
Interpolation Model options:
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolate : Kriging with median polish |
Given a drawing with objects that have Z values in some field, create an image and table using Kriging to interpolate pixel values in tiles from Z values for each object. Apply median-polish, an extra processing step, to improve the interpolation. The Result destination is always a new table and image. Produces a report of the parameters used, including resolved values for autocomputed parameters, and saves the report into the description property of the new component.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values. If there is too little data to set up the model, Kriging degrades to Gravity interpolation.
Interpolation parameters:
Interpreting various combinations of specified (positive value) or auto-computed (zero or negative value) for Radius and Neighbors:
Interpolation Model options:
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolate : Kriging with regression |
Given a drawing with objects that have Z values in some field, create an image and table using Kriging with regression to interpolate pixel values in tiles from Z values for each object. The Result destination is always a new table and image. Produces a report of the parameters used, including resolved values for autocomputed parameters, and saves the report into the description property of the new component.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values. If there is too little data to set up the model, Kriging degrades to Gravity interpolation.
Interpolation parameters:
Interpreting various combinations of specified (positive value) or auto-computed (zero or negative value) for Radius and Neighbors:
Interpolation Model options:
Regression model options:
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees. About regression KrigingImagine an undulating surface that lies on the slope of a large hill, where if the surface were not bumpy we would have a smooth plane inclined at the overall angle of the hill. Suppose now we have many points that lie on the surface with each point providing the X,Y, and Z value of the surface at that point. Some regions of the surface have relatively few points or are lacking points.
The general task of Kriging is to take the collection of many points and to re-create the surface, filling in through computation some plausible interpolation in regions where sample points are sparse or missing. Ordinary Kriging simply takes the X,Y,Z values of the points and applies Kriging computations to interpolate a surface.
Regression Kriging first attempts to ascertain the overall inclined plane and to remove that as a bias, to allow considering the undulating surface as if it were arranged horizontally and not tilted on the overall slope of a hill. A Kriging calculation is performed on the adjusted, "as if level," coordinates of the points, and then the resulting interpolated surface is titled back to the original overall incline. The choice of linear or quadratic regression is a choice of how the original "overall" tilted-plane setting is determined.
Regression Kriging can identify and set aside more complex biases than the case of an undulating surface within a simple, overall incline in a hill. This non-mathematical description provides an analogy, not an exact phrasing of the math involved, to help non-mathematicians understand how Regression Kriging can provide better results than ordinary Kriging.
|
Interpolate : natural neighbors |
Given a drawing with objects that have Z values in some field or which have Z values in their geometry, create an image and table using natural neighbors interpolation with Sibson weights to interpolate pixel values in tiles from Z values for each object. Natural neighbors interpolation is limited to interpolations within the convex hull of the source data. The Result destination is always a new table and image.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values.
Interpolation parameters:
See the Wikipedia article on natural neighbor interpolation for the mathematics behind the method.
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolate : thin-plate spline |
Given a drawing with objects that have Z values in some field or which have Z values in their geometry, create an image and table using thin-plate spline (TPS) interpolation to interpolate pixel values in tiles from Z values for each object. Thin-plate spline interpolation works both inside and outside the convex hull of the source data. The Result destination is always a new table and image.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values.
Interpolation parameters:
See the Wolfram MathWorld article on thin-plate splines for the mathematics behind the method.
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolate : triangulation |
Given a drawing with objects that have Z values in some field or which have Z values in their geometry, create an image and table using triangulation to interpolate pixel values in tiles from Z values for each object. The Result destination is always a new table and image.
All geoms are converted to their constituent coordinates. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values.
Interpolation parameters:
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolate : triangulation with segments |
Given a drawing with objects that have Z values in some field or which have Z values in their geometry, create an image and table using constrained triangulation to interpolate pixel values in tiles from Z values for each object. The Result destination is always a new table and image.
Areas are converted to boundary lines. The constrained triangulation keeps segments from lines and areas, which are converted to boundary lines. Duplicate XY coordinates are ignored: if duplicate XY coordinates have different Z values, the function uses one of these values and ignores any other Z values.
Interpolation parameters:
Do not use a Resolution of 1 and a Unit of Degree when drawings are in a Latitude / Longitude coordinate system that uses degrees. That creates pixels which are 1 degree in size, many kilometers in size in most parts of the world. If drawings are in a coordinate system that uses meters or other linear unit, a Resolution of 30 using Meter as the Unit will create pixels that are 30 meters by 30 meters in size. To allow the widest choice of units it is best to do interpolations using drawings that have been projected into coordinate systems which use linear units of measure such as meters or feet and not angular units such as degrees.
|
Interpolation templates will add a Description property to the raster image they create, which will contain a report of various relevant factors used in the computation. The Description property will appear in the Info pane for the raster image. A typical example is how a Kriging interpolation creates a Description for the resulting raster image.
The image above was created with the Interpolate template from a LiDAR point set drawing that contained over 88 million points. Kriging was used with a resolution of 0.8, with 5 neighbors, and with auto choice of model. The result is a 5000 x 5000 pixel raster image seen above, styled using the Classic - Altitude, Aeronautical palette adjusted to use darker colors at both ends of the palette, with hill shading turned on using a Z factor of 0.5.
With the focus on the opened Terrain window, we take a look at the Info pane.
If a component has a Description property, the Info pane will show it. We can click the [...] edit button to see the entire Description in an edit box:
The Description provides details on factors used in the Kriging interpolation, which were automatically computed. We see that in this case the auto choice for Model resulted in a Spherical model being used. The other factors are typical factors used in Kriging interpolations. A good discussion of Kriging which explains such factors is the How Kriging works web page for Esri's ArcGIS Pro package.
A .jpg image of the 5000 x 5000 Terrain shown above is available in the Terrain.zip file that may be downloaded from the manifold.net website. The .zip file contains the .jpg image along with sidecar files that give projection information, so it automatically will be correctly georeferenced when used in a Manifold project. However, .jpg format does not allow storage of the Description property as is saved in the original Manifold image.
Curvilinear segments - As a practical matter, most people doing GIS will use straight line segments for lines and areas. Few GIS systems do a good job of supporting curved segments, so there is much less data published using curved segments. Manifold's ability to work with curved segments allows us to use that data within Manifold in a limited way, at least for display and interactive editing.
However, most processing tools in Manifold, such as Transform templates and various Geom SQL functions, do their work by first converting a curvilinear segment into a straight line segment between the same two start and finish coordinates. That will often lead to weird or otherwise unexpected results. To avoid such problems, first convert curvilinear segments into equivalent constellations of straight line segments at whatever resolution is desired, using the Clean transform template with the convert curves to lines operation option and the number of linear segments desired to approximate the curve in the Curve limit parameter. See the Curved Segments discussion in the Drawings topic.
GPGPU - Manifold automatically uses GPU parallelism (see the GPGPU topic) in SQL functions within transform templates where it makes sense to do so and when workflow is such that it is worth it to dispatch to GPU instead of simply using CPU parallelism. In many cases both CPU parallelism and GPU parallelism will be used. For example, all Kriging implementations (standard, median polish, and regression Kriging) use GPU, if available, to compute model parameters together with CPU parallelism in other parts of the function's operation. GPU cards are so cheap that it doesn't make sense to try to guess when it pays to use GPGPU: simply install a GPU card, at least a cheapo GPU card. Always. Do not overthink it. Just install an NVIDIA GPU card.
Danie Krige and Georges Matheron - For historical notes on the inventor of Kriging as well as the man who named the technique after Krige, see SQL Example: Kriging topic.