The map window supports several new commands in the context menu used for editing geometry:
Allows clipping currently edited geometry. The command shows a dialog which allows switching between clipping to all or selected records, and switching between keeping inner or outer part of the result. The default is to clip to all records and to keep the outer part. You can clip newly inserted geometry or existing geometry or tracker geometry.
Clipped geometry can be edited further before being saved.
Allows merging multiple area, line or point records into one. The command shows a dialog which allows switching between merging all or selected records and specifying transfer rules. The default is to merge selected records (otherwise it is too easy to merge all records). You can only merge into existing geometry (have to Alt-click geometry for the record to merge into).
Merging immediately commits changes to all altered records and clears the picked record.
Transfer rules for merge:
- (none) - keep the value in the picked record, any field type,
- copy - keep the value in the picked record if it is not NULL, otherwise use a first encountered non-NULL value from one of the merged records, any field type,
- minimum / maximum - use the minimum or maximum value, any field type except binary,
- average / sum - use the average value or the sum of all values, any numeric field type.
The computed fields and unique fields are excluded from the merge. The table has to support updating and deleting records.
When merging selected records, the picked record does not have to be selected.
Allows splitting area or line records into parts producing a separate record for each part. The command shows a dialog which allows switching between splitting all or selected records and specifying transfer rules. The default is to split all records. You can only split using tracker geometry (to split using existing geometry, use the Split transform).
Splitting immediately commits changes to all altered records and clears the tracker.
Transfer rules for split:
- (none) - use a NULL value, any field type,
- copy - keep the original value, any field type,
- split - split the original value equally between parts, any numeric field type,
- split proportional - split the original value between parts proportionally to their area (for area) or length (for line), any numeric field type.
Splitting the original value between parts makes sure that the sum of the resulting values equals the original value, including for integer fields (eg, splitting 100 into 3 equal parts will produce 33, 33, 34).
The computed fields and unique fields are excluded from the merge. The table has to support inserting, updating and deleting records, and has to have an autogenerated unique field.
All of the above commands remove curves and Z values from processed geometry.
All of the above commands save last used options in the map window to allow quick repeated use.
All of the above commands run progress and allow canceling. This allows using commands with big data sets or with data sets on slow data sources.
The 'gravity' interpolation method is renamed to 'gravity (IDW)', to include a commonly used term and allow using it in the filter box.
Gravity interpolation allows specifying interpolation order. The default value is 2.
Gravity interpolation now uses multiple threads to compute Voronoi neighbors.
There is a new interpolation method: 'natural neighbors' (here is the description of the method on Wikipedia). The current implementation is using Sibson weights. The method is limited to the convex hull of the source data.
There is a new interpolation method: 'thin-plate spline', analogous to 'thin-plate spline' registration. The method works outside of the convex hull of the source data.
(Fix) Kriging interpolation no longer sometimes produces weird results for the power model with radius set to 0 (autocompute) due to selecting the wrong radius.
(Fix) The Interpolate transform no longer applies margins for triangulation / triangulation with segments (the margin parameter was hidden, but the system was still using its value).
(Fix) The Interpolate transform no longer sometimes increases margins for interpolation methods not limited to the convex hull of the source data.
Changed function: TileInterpolateGravity, now also accepts order (any positive number, possibly fractional, a good default value is 2).
New function: TileInterpolateGravityPar, a parallel version of TileInterpolateGravity.
New functions: TileInterpolateNatural / Par, create a natural neighbors interpolation object.
New functions: TileInterpolateSpline / Par, create a thin-plate spline interpolation object, accept radius (0 to autocompute) and the number of neighbors (0 to use Voronoi neighbors).
Changed functions: TileInterpolateXxx, now also accept bounds for the produced image. Passing invalid bounds (eg, VectorMakeX4(1, 1, 0, 0)) sets bounds to those of the source data. Specifying bounds allows not computing values that will be ignored later anyway. This improves performance, particularly for various types of Kriging which were spending significant time computing values near the edges.
(Fix) The library dataport correctly skips image files that refuse to load in all cases. (Previously, some files might cause the dataport to stop initializing.)
The library dataport reports the number of files matching the file mask in the log window. This allows quickly checking if the library shows no data or less data than desired because of issues with the file mask.
(Fix) Linking TIFF without cache no longer fails. This was making the library dataport choke on TIFF files, too.
End of list.