Purpose

The module Histogram3DLinearFunction computes a histogram (i.e. and approximation of a PDF) of a piecewise multi-linear function with values in a three-dimensional space (represented as a list of three scalar-valued functions).

Windows

Default Panel

../../../Modules/ML/MLStochasticCollocation/mhelp/Images/Screenshots/Histogram3DLinearFunction._default.png

Input Fields

Connect here the functions to be examined, as a function array.

The module only works if the array consists of exactly three components. Use might want to use the module SelectLinearFunction twice to create such a list.

If you want to compute a histogram of a 1D or 2D valued function, choose zero functions for the other components of the list (using the module TensorInterpolationPolynomial with Nodes=Values=0 and the module InterpolatePolynomialToLinearFunction after that).

inputFunctions

name: inputFunctions, type: MLBase

Output Fields

output0

name: output0, type: Image

Contains the histogram as a 3D image.

Parameter Fields

Visible Fields

Bounding Box Function 1

name: autoBBox1, type: String, persistent: no

Shows the generic bounding box of the first function.

This is a bounding box in the pre-image space.

It can also be obtained with an EvaluateLinearFunction module.

Bounding Box Function 2

name: autoBBox2, type: String, persistent: no

Shows the generic bounding box of the second function.

This is a bounding box in the pre-image space.

It can also be obtained with an EvaluateLinearFunction module.

Bounding Box Function 3

name: autoBBox3, type: String, persistent: no

Shows the generic bounding box of the third function.

This is a bounding box in the pre-image space.

It can also be obtained with an EvaluateLinearFunction module.

Bounding Box Selection

name: bBoxSelection, type: Enum, default: Union

Determines the bounding box mode.

The module needs a bounding box in the pre-image space. The function is restricted to this set before the histogram is computed. Since this set is compact, the range of the function will then also be compact, hence bounded. (The range of the function on this set is also referred as the bounding box in image space.) This field allows you to choose whether the generic bounding box of one of the three functions or (the convex hull of) their union or a manually entered bounding box is used.

Values:

Title Name
Manual Manual
Function 1 Function 1
Function 2 Function 2
Function 3 Function 3
Union Union

Manual Bounding Box

name: manBBox, type: String

Sets the manual pre-image bounding box.

Use manual image bounding box

name: useManImageBBox, type: Bool, default: FALSE

If checked, the manual image bounding box is used.

This field concerns the bounding box in the image space. It also determines the size of the output ML image.

If disabled, the generic bounding box is used here, which is defined as the (cuboid shaped hull of) the compact set of values that the function takes on the selected pre-image space bounding box. In opposite to the Histogram3DInterpolationPolynomial module (equivalent module for polynomials), this field is disabled on default since the automatic detection is faster here than for polynomials.

The behavior of the module in the case that the manual bounding box is too small can be influenced using the Project to bounding box field.

Manual Image Bounding Box

name: manImageBBox, type: String

Sets the manual image bounding box.

Histogram Accuracy

name: accuracy, type: Integer, default: 20, minimum: 2

Sets the number of points per space dimension in which the pre-image bounding box is scanned.

The higher the number, the better is the approximation of the histogram, but the slower is the computation.

Image Voxel Size

name: voxelSize, type: Vector3, default: 1 1 1

Sets the voxel size of the output ML image and thus also the quality of the histogram.

This does not influence the performance so much as the Histogram Accuracy field.

Convert meters

name: convertMeters, type: Bool, default: TRUE

If checked, the module will assume that the functions’ values have the unit of meters and should be converted to millimeters in the ML image (as is usual for the ML).

In this case, the Image Voxel Size is interpreted as millimeters as well, whereas the Manual Image Bounding Box is interpreted as meters. If you find this too confusing, disable this field, so that no conversions are performed.

Compute on demand

name: computeOnDemand, type: Bool, default: FALSE

If checked, the module computes on demand.

It is well-known that the ML uses a page-based image processing technique. However, for this module, this is in general unsuited since it would reduce the performance. Hence, this module usually computes the complete output ML image as soon as the first page is requested.

However, if you configure the module to yield a very large output image, this could lead to a memory shortage. In this case, you can enable this field. It will solve the memory problem but slow down the computation considerably.

Project to bounding box

name: projectToBBox, type: Bool, default: TRUE

If checked, the values that lie outside are projected to the nearest point inside.

The image will then always integrate to one, but where appropriate have noticeably high values on the boundary of the ROI.

This field determines the behavior of the module in the case that the manually chosen image bounding box is too small.

If disabled, the histogram is just cut off, resulting in an image that does not integrate to one (as it otherwise does).