Interpolating Surfaces There are query functions for interpolating surfaces. Two caveats: First, the performance is not final. We have multiple big improvements currently in testing, they make for a big difference. Second, the Transform pane does not yet include point-and-click templates for interpolating surfaces. These templates are waiting for a big feature that we are adding to the query engine, also currently in testing. New query functions: TileInterpolateKriging - takes a drawing and the interpolation parameters and returns an interpolation object that can be used to produce tiles using kriging. The heights are taken from Z values in the drawing geoms. 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 function uses one of these values and ignores the other ones. (We can generate an error here, if necessary.) The interpolation parameters are: radius for neighbor searches (kriging interpolates heights from closest coordinates), number of neighbors to use, interpolation model. If both the radius and the number of neighbors are zero or negative, kriging uses Voronoi neighbors (however many of them there would be). If both the radius and the number of neighbors are positive, kriging uses no more than the specified number of neighbors in the specified radius. (The behavior for the remaining two combinations is currently being adjusted.) The interpolation model can be set to a zero or negative value to autoselect the model, or to a specific value: 1 = linear, 2 = circular, 3 = exponential, 4 = gaussian, 5 = power, 6 = rational, 7 = spherical. TileInterpolateKrigingPar - a parallel variant of TileInterpolateKriging, takes an additional parameter with the thread configuration. TileInterpolateKrigingMedianPolish - takes the same parameters as TileInterpolateKriging and returns an interpolation object that can be used to produce tiles using kriging with median-polish (additional processing aiming to improve the quality of the interpolation). TileInterpolateKrigingMedianPolishPar - a parallel variant of TileInterpolateKrigingMedianPolish, takes an additional parameter with the thread configuration. TileInterpolateTriangulation - takes a drawing and returns an interpolation object that can be used to produce tiles using triangulation. (Like with kriging, all geoms are currently converted to coordinates. This is going to be changed, we will use constrained triangulation for lines and either convert areas to boundaries or ignore them.) TileInterpolateTriangulationPar - a parallel variant of TileInterpolateTriangulation, takes an additional parameter with the thread configuration. TileInterpolate - takes an interpolation object created by one of the above functions, a rectangle, and creates a tile with interpolated pixel values. New service query functions: CoordConvertRect - takes a coordinate converter object, a rect value, and the optional number of intermediate divisions, and converts the rect to the desired coordinate system. If the number of intermediate divisions is positive, the function creates a grid of intermediate coordinates covering the rect, projects all these coordinates and uses the results to compute the shape of the resulting rect more accurately (useful when the projection is curvilinear). ValueSequenceTileXY - takes a rect value for the image, a tile size value, and a contained / touching boolean switch, and returns a table of XY indexes for tiles either completely within or with any part within the specified rect. The returned table includes the following fields: X - X coordinate of a tile, can be negative, Y - Y coordinate of a tile, can be negative, Rect - rect of a tile (it can be computed from X, Y and the tile size, but is provided regardless for convenience). (The post after this one provides an example MXB with the query that illustrates how to use the above functions together.) Other Matching brackets in text windows using Ctrl-] matches #...# delimiters used for dates in SQL. The list of Standard coordinate systems no longer includes generic templates for coordinate systems like Orthographic which do not cover the entire Earth and need customization. (These templates come from Manifold 8 which used them as a starting point for creating a custom coordinate system. Leaving these templates in the list in the Standard tab was inviting the user to make a mistake of using them without further customization, so we removed them. All components set to use these templates will still continue to work / import / export as they should, the change affects only the list of displayed systems.) The toolbar for a layout window or a map window collapses cursor modes into a single button with a dropdown menu. The icon on the button is set to the current cursor mode, the tooltip for the button displays the description of the current cursor mode. The toolbar for a map window includes a button for locations, with a dropdown menu. Switching the cursor mode in a map window cancels all pending editing. (For example, starting to enter coordinates for an area, then switching to tracker removes all entered coordinates and clears the Record pane.) The toolbar no longer includes a button for the Help - About command. The toolbar for a layout window no longer includes a button for the File - Print command (we have Ctrl-P to invoke this command, plus the change makes the toolbar line up with the toolbar for a map window). The File - Print Preview command has an icon. Right-clicking a location in the Project pane allows applying the location to the active window using the new 'View in Active Window' command. Saving a virtual layout, location, map or query as a persistent component puts the new component into the current path for the target data source in the Project pane. (This handles all cases where the new component goes to data source A but the Project pane has a completely different data source B selected, etc.) Reading a TIFF interprets 3-channel floating-point images as RGB instead of BGR, 4-channel floating-point images as RGBA instead of BGRA, and sets the default value range to [0, 1]. Exporting data to a TIFF writes additional data for the projection into the file. (Fix) Exporting data to a GDB no longer fails if the table contains a field with a reserved name (typically, OBJECTID). (Fix) Exporting data to a GDB no longer produces wrong results if one or more of the fields fail to add. (The new code skips fields that fail to add and writes correct data into the remaining fields.) Exporting data to an ECW or a JPEG2K writes image offset and scale info into the image file in addition to the projection info in the accompanying file. Reading a KML file reads GroundOverlay data. (Fix) Migrating images from MAP files created by Manifold 8 no longer sometimes shifts them 32 pixels up unnecessarily. End of list.
|