ProRaster Help – Algorithm Properties

On this page, you will find general help for the ProRaster product family including links to documentation, instructional videos, and training videos.
Next Topic: Layer Properties
Previous Topic: Publishing to MapInfo Pro and Exporting to located image
Back to: ProRaster Help
Back to: ProRaster
Go to: ProRaster Essential help page, ProRaster Premium help page, ProRaster Scientific help page.
The ProRaster User Guide is available for download as a PDF.

Algorithm Properties

Access the algorithm properties by clicking on the algorithm item at the top of the tree control. The algorithm property sheet will be displayed containing the Algorithm, Color, Shadow, and Report property pages. 

What property pages and the properties presented in those pages depends upon the product tier and the product licensing. 

Properties can be one of four different types, and this is true of properties for algorithms, layers, and components: 

  • Local

The property applies at algorithm level to operations that occur at this level of scope.

  • Default

The property, when enabled at the algorithm level, provides a default value that will be used by subordinate levels (layers and components), unless they specifically override the property themselves.

  • Override

The property, when enabled at the algorithm level, overrides similar properties that may be defined at layer scope or component scope.

  • Propagated

A default value for the property is acquired by propagating up the tree from lower-level components and layers but can be overridden at the algorithm level. 

Algorithm page

 Name: You should always name your algorithm as this name is reflected in the algorithm list and in the tree. When you export an algorithm, it is a requirement that the algorithm be named, and if it isn’t you will be warned.

 Description: A short, optional, description of the algorithm.

 Coordinate system (default): This is a propagated property and is acquired from layers, components, or rasters used in the components. It reflects the coordinate system that the algorithm will be rendered in. All raster data used in the algorithm will be reprojected on-the-fly, if required, from its known coordinate system into this coordinate system for rendering. If you override the coordinate system (see next item), this setting will change to reflect that.

 Coordinate system (override): To specify the coordinate system that the algorithm will be rendered in and to override the default coordinate system, select a recently used coordinate system from the drop-list or hit the button to select a coordinate system using the Projection Selection dialog.

 Valid cell by component rule: This is a default property which can be overridden in individual layers.

 When a layer is rendered the rendering engine acquires data at the pixel locations from every enabled and valid component. The data for each component may come from different rasters or different fields and bands, and so the cell validity can vary for each component. We may have valid cell data in one or more components and invalid (empty or null) data in other components.

 This rule allows you to control whether a pixel color will be generated, based on whether the component data is valid or invalid. The two most important settings are “All” and “Any”. The “All” setting tells ProRaster that the data from every component must be valid to generate a pixel color. This is like rendering the intersection of all valid data in the layer. The “Any” option means that a color will be generated if any component contributes valid data. This is like rendering the union of all valid data in the layer. The VCBC rule can have the following values: 

  • All

The data from every component must be valid to generate a pixel color.

  • Primary

The data from the primary component must be valid to generate a pixel color. The primary component is the first enabled component in the tree. It will generally be a color or image component.

  • Secondary

The data from the secondary component must be valid to generate a pixel color. The secondary component is the second enabled component in the tree. It will generally be Intensity. Note that in a RGB Color layer the Red, Green, and Blue components are all considered primary.

  • Any

A pixel color will be generated if any component contributes valid data. 

In addition to these simple rules, there are multi-stage rules. These rules cause the rendering engine to render each layer two or three times. This will reduce rendering performance in most scenarios. In a multi-stage rendering scenario, a pixel that is valid from an earlier stage will not be overprinted by a valid pixel in a later stage. 

  • All to Any

This triggers a three-stage rendering pipeline for every layer. We first render using the All rule, then the Primary rule, then the Any rule.

  • All to Primary

This triggers a two-stage rendering pipeline for every layer. We first render using the All rule, then the Primary rule.

  • All to Secondary

This triggers a two-stage rendering pipeline for every layer. We first render using the All rule, then the Secondary rule.

  • Primary to Any

This triggers a two-stage rendering pipeline for every layer. We first render using the Primary rule, then the Any rule. 

The VCBC rule you select can result is vastly different rendered outcomes, and it can also have a very serious impact on rendering performance. 

  • “Any” may be slower than “All”. If you select “All” then the rendering engine finds the intersection of the component data. This may result in a smaller (or empty) area to render and improve performance.
  • “All to Any” renders three times per layer and the other multi-stage options render twice per layer. This will naturally result in lower performance (but not always!).
  • If you have raster sources that contain multiple files the situation is more complicated! 

Consider the following scenario: I have an Image layer with a raster source in the Image component that contains hundreds of geotiff located topographic images in a tiled configuration. I have a global scale terrain raster (with no bathymetry) in the Intensity component onto which I am draping the imagery. 

If I use “All” I get high performance because most of the tiff files will not intersect the scene. But my scene is clipped to the shoreline as I have no terrain data offshore. It is also clipped to the edges of the topographic imagery. 

If I use “Primary” I get high performance and my topographic imagery now renders offshore. The algorithm accepts pixels with the image but not the intensity components.

If I use “Secondary” I get low performance and all I see is the terrain – my imagery disappears. This is unexpected and explained by the multi-file raster source. For each source raster it renders, the engine finds it has terrain data but, usually, no intersecting topographic imagery. It populates the pixel with terrain only and it will not overwrite that pixel again. So, we get a bad result and a slow result because it is doing plenty of work for every raster in the raster source. 

If I use “Any” I get low performance and no onshore topographic imagery. This is unexpected and explained by the multi-file raster source. For each source raster it renders, the engine finds it has terrain data or maybe offshore topographic imagery but, usually, no intersecting onshore topographic imagery. It populates the pixel with terrain or offshore imagery, and it will not overwrite that pixel again. So, we get a bad result and a slow result because it is doing plenty of work for every raster in the raster source. 

If I use “All to Any” I see everything, and it is fast. In the first pass I render “All” and any pixels that get populated will be kept. Then I render “Primary” and this fills in the offshore topographic imagery. Then I render “Any” and this fills in the global terrain. The “Any” phase is fast because all the data has already been cached by the previous phases and most pixels are already valid and are not rendered. 

If I use “All to Primary” I see the topographic imagery onshore and offshore and terrain clipped to this and it is fast. The “All” phase renders the onshore topographic imagery, then the “Primary” phase renders the offshore topographic imagery. 

If I use “All to Secondary” I see the onshore topography and the terrain. The “All” phase renders the onshore topographic imagery, then the “Secondary” phase renders the terrain. Offshore topographic imagery is not rendered. 

If I use “Primary to Any” I see the onshore and offshore topographic imagery and the terrain, and it is fast. The “Primary” phase renders the onshore and offshore topographic imagery and the “Any” phase renders the terrain. 

In summary: 

“All” works : we see onshore imagery intersected with terrain.

“Primary” and “All to Primary” works: we see onshore and offshore imagery intersected with terrain. In this case choose “Primary” because you don’t need multi-stage rendering.

“All to Any” and “Primary to Any” works: we see onshore and offshore imagery and terrain. In this case, choose “Primary to Any” because it only involves two stages, not three.

“All to Secondary” works: we see onshore imagery and terrain.

 Reverse render order: Reverse the order in which the layers are rendered. By default, they are rendered in the order in which they are listed in the MRD file which corresponds to the bottom of the tree to the top.

 Enable: Enable or disable the algorithm from the tree or from this property.

 Version: A version number like “1.0”, optional and currently not used.

Color page

Color Interpolation: This is an override property. It will override the same property in layers and components. This sets the interpolation method used to generate underview tiles for color and opacity components. Toggle the checkbox to override the property and select from the drop-list. The following methods are available: 

Nearest neighbour: Underview cells are populated with the value of the base level cell that overlaps them. In ProRaster, underview cells never partially overlap a base level cell. Cell values are matched exactly.

Linear: Bi-directional linear interpolation. Will not overshoot or undershoot.

Local cubic spline: Bi-directional cubic spline operator. Will overshoot and undershoot.

Global cubic spline: Bi-directional cubic spline computed for the entire tile (smoothest). Will overshoot and undershoot.

Default: Chooses the highest quality method based on field type and band data type. 

This interpolation method will be used for the Color component in a LUT Color layer, the Red, Green, and Blue components in an RGB Color layer, and the Image component in an Image layer. It is also used for Opacity components. 

Color Nearest: This is an override property. It will override the same property in layers and components. Tile data at any resolution level may have to be interpolated to provide data that is aligned with the pixel grid and centred on the pixel centres. ProRaster works to try to avoid this in most scenarios to maximise data and image quality. When ProRaster needs to interpolate, it will use either nearest neighbour or bi-linear interpolation. The choice will depend on the field type and band data type. If possible, it will default to using bi-linear. You can override this by toggling the override checkbox and checking the nearest neighbour box. 

This interpolation method will be used for the Color component in a LUT Color layer, the Red, Green, and Blue components in an RGB Color layer, and the Image component in an Image layer. It is also used for Opacity components. 

Intensity Interpolation: This is an override property. It will override the same property in layers and components. This sets the interpolation method used to generate underview tiles intensity components. Toggle the checkbox to override the property and select from the drop-list. 

Intensity Nearest: This is an override property. It will override the same property in layers and components. If possible, it will default to using bi-linear. You can override this by toggling the override checkbox and checking the nearest neighbour box. 

Buffer background color: When you render the algorithm to a map or when you export a located image, it will be rendered in a rectangular pixel buffer. This buffer will be pre-filled with pixels of the selected color. Set the RGB components of the color via the color picker control and set the alpha component from 0 to 255. 

Render invalid pixels: Raster cells that are invalid are generally not rendered and so will not overwrite the buffer background color. In rare situations, you may want to render invalid cells in some special color. You can enable this here. 

Invalid pixel color: The RGBA color used to render invalid cells. 

Blending rule: This rule controls what transparency and opacity modulation is allowed in an algorithm. It has the following values: 

Override: Completely disables blending.

Overprint: Modulates pixel opacity in an Image layer by the alpha component of the image componenent raster source.

Light Table: Blends overlapping layers together by simulating a light table.

Blend: Enables blending by layer and blending by pixel and blending by image alpha component. 

Blend with buffer: Enable this option to blend your imagery with the buffer background color so that it appears the algorithm fades to background in the map. When you export your imagery, you may want to disable this option to ensure that the background color does not bleed into the imagery color.

Nearest neighbour: Underview cells are populated with the value of the base level cell that overlaps them. In ProRaster, underview cells never partially overlap a base level cell. Cell values are matched exactly.

Linear: Bi-directional linear interpolation. Will not overshoot or undershoot.

Local cubic spline: Bi-directional cubic spline operator. Will overshoot and undershoot.

Global cubic spline: Bi-directional cubic spline computed for the entire tile (smoothest). Will overshoot and undershoot.

Default: Chooses the highest quality method based on field type and band data type. 

This interpolation method will be used for the Color component in a LUT Color layer, the Red, Green, and Blue components in an RGB Color layer, and the Image component in an Image layer. It is also used for Opacity components. 

Color Nearest: This is an override property. It will override the same property in layers and components. Tile data at any resolution level may have to be interpolated to provide data that is aligned with the pixel grid and centred on the pixel centres. ProRaster works to try to avoid this in most scenarios to maximise data and image quality. When ProRaster needs to interpolate, it will use either nearest neighbour or bi-linear interpolation. The choice will depend on the field type and band data type. If possible, it will default to using bi-linear. You can override this by toggling the override checkbox and checking the nearest neighbour box. 

This interpolation method will be used for the Color component in a LUT Color layer, the Red, Green, and Blue components in an RGB Color layer, and the Image component in an Image layer. It is also used for Opacity components. 

Intensity Interpolation: This is an override property. It will override the same property in layers and components. This sets the interpolation method used to generate underview tiles intensity components. Toggle the checkbox to override the property and select from the drop-list. 

Intensity Nearest: This is an override property. It will override the same property in layers and components. If possible, it will default to using bi-linear. You can override this by toggling the override checkbox and checking the nearest neighbour box. 

Buffer background color: When you render the algorithm to a map or when you export a located image, it will be rendered in a rectangular pixel buffer. This buffer will be pre-filled with pixels of the selected color. Set the RGB components of the color via the color picker control and set the alpha component from 0 to 255. 

Render invalid pixels: Raster cells that are invalid are generally not rendered and so will not overwrite the buffer background color. In rare situations, you may want to render invalid cells in some special color. You can enable this here. 

Invalid pixel color: The RGBA color used to render invalid cells. 

Blending rule: This rule controls what transparency and opacity modulation is allowed in an algorithm. It has the following values: 

Override: Completely disables blending.

Overprint: Modulates pixel opacity in an Image layer by the alpha component of the image componenent raster source.

Light Table: Blends overlapping layers together by simulating a light table.

Blend: Enables blending by layer and blending by pixel and blending by image alpha component. 

Blend with buffer: Enable this option to blend your imagery with the buffer background color so that it appears the algorithm fades to background in the map. When you export your imagery, you may want to disable this option to ensure that the background color does not bleed into the imagery color. 

Light table opacity: Sets the opacity of every layer in the algorithm from 0 (transparent) to 255 (opaque) when in Light Table blending mode.

Shadow page 

Enable override: This is an override property that will override the shadow and specular highlight settings for every Intensity component in every layer in the algorithm. Check the box to control these properties from the algorithm. 

The appearance of the shadow and specular highlight is determined by the azimuth and altitude of an artificial sun. You can set these parameters for the shadow and for the highlight independently. You can enable one or both features at the same time. 

A graphical control shows the position of the sun as a filled yellow circle, and the position of the specular highlight sun as a star. You can drag the sun around the control by left clicking, holding, and dragging. When you release the button, the properties will be updated. You can drag the highlight sun around the control by right clicking, holding, and dragging. In both cases the preview graphic is updated to show what the effect looks like. 

In addition to moving the sun angle, you can change the scaling, or depth, of the shadow and highlight. To ensure that shadow is approximately uniform, regardless of the scale or units of the raster values, the scaling factor depends on a statistic computed from the raster. If this is unsuitable, you can manually override this value. Specifying a suitable value is largely guess work and trial and error. 

Enable shadow: Check this box to enable hill-shading with artificial shadow.

Azimuth (shadow): The sun azimuth can be varied between 0 and 360 degrees.

Altitude (shadow): The sun altitude can be varied between 0 and 90 degrees.

Scale (shadow): The shadow depth can be varied between 0 and 100. 

Enable highlight: Check this box to enable specular highlights.

Azimuth (highlight): The sun azimuth can be varied between 0 and 360 degrees.

Altitude (highlight): The sun altitude can be varied between 0 and 90 degrees.

Scale (highlight): The highlight scaling can be varied between 0 and 100. 

Manual statistics: Enable this option and define the average cell-to-cell difference to set scaling manually.

Report page

 The report page contains no editable properties. If you double click in the map, the report page will be opened and populated with an XML report. You can copy and paste this out into any XML or text editor for inspection. The report contains information on the data values of all the rasters that contribute to the algorithm at the location you double clicked.