# CurveToSurface (FPScript)

21.09.2021

Transforms a space curve into a surface (signal series with Z component).

## Syntax

CurveToSurface(SpaceCurve, Tolerance)
or
CurveToSurface(Y, X, Z, Tolerance)

The syntax of the CurveToSurface function consists of the following parts:

Part

Description

SpaceCurve

Is the space curve to be transformed into a surface.

Permitted data structures are space curve. All numeric data types are permitted.

If the argument is a list, then the function is executed for each element of the list and the result is also a list.

Y

A data series with the Y component of the space curve to be transformed. If you specify a signal, then its Y component is used.

Permitted data structures are data series und signal. All numeric data types are permitted.

If the argument is a list, then the first element in the list is taken. If this is also a list, then the process is repeated.

X

A data series with the X component of the space curve to be transformed. If you specify a signal, then its Y component is used.

Permitted data structures are data series und signal. All numeric data types are permitted.

If the argument is a list, then the first element in the list is taken. If this is also a list, then the process is repeated.

Z

A data series with the Z component of the space curve to be transformed. If you specify a signal, then its Y component is used.

Permitted data structures are data series und signal. All numeric data types are permitted.

If the argument is a list, then the first element in the list is taken. If this is also a list, then the process is repeated.

Tolerance

Specifies the tolerance to be used when combining close neighboring values of the X and Z components. Here, the value refers to the range of the respective component.

Permitted data structures are scalar value. All numeric data types are permitted. The argument is transformed to the unit %.

If the argument is a list, then the first element in the list is taken. If this is also a list, then the process is repeated.

## Remarks

The result always has the data structure signal series with Z-component.

The result has the same unit as the argument SpaceCurve.

For the transformation, the X and Z components are first sorted, where close neighboring values are combined by taking the arithmetic mean. Then the Y values are inserted into a data matrix according to their assigned X and Z coordinates. Y values that fall on the same position are combined by continuously forming the mean value. Unoccupied positions in the data matrix are marked as void. To obtain a sufficiently occupied matrix, the points of the space curve should be arranged as a grid, if possible.

The data types of the individual components of the result correspond to those of the respective arguments, provided that these have the calendar time or time span data type. For all other data types, the result type is a 64-bit floating point value.

## Available in

FlexPro Basic, Professional, Developer Suite

## Examples

 Dim Y = { 1, 1, 1, 1, 2, 1, 1, 1, 1 }Dim X = { 1, 2, 3, 1, 2, 3, 1, 2, 3 }Dim Z = { 1, 1, 1, 2, 2, 2, 3, 3, 3 }Dim Curve = Signal(Y, X, Z)CurveToSurface(Curve, 0) Results in a signal series with three rows and three columns. The value in the center of the Y data matrix is 2. All other values are 1. The X and Z components are the same {1, 2, 3}. The tolerance is irrelevant in this example, since the measurement values are right on the grid. Dim Y = { 1, 1, 1, 1, 2, 1, 1, 1, 1 }Dim X = { 1.05, 1.9, 3.03, 0.85, 2.12, 2.98, 1.01, 1.97, 3.01 }Dim Z = { 0.95, 0.99, 1.02, 2.11, 1.97, 1.89, 3.12, 3.01, 2.96 }CurveToSurface(Y, X, Z, 0) Results in a weakly occupied signal series with 9 x 9 values, since the data points are not right on a grid and the tolerance selected was too small. Dim Y = { 1, 1, 1, 1, 2, 1, 1, 1, 1 }Dim X = { 1.05, 1.9, 3.03, 0.85, 2.12, 2.98, 1.01, 1.97, 3.01 }Dim Z = { 0.95, 0.99, 1.02, 2.11, 1.97, 1.89, 3.12, 3.01, 2.96 }CurveToSurface(Y, X, Z, 15 %) Increasing the tolerance to 15% results in a 3 x 3 signal series. The closely spaced X and Z values are combined at each grid point. The Y component thus corresponds to that of the first example. The X and Z components deviate slightly due to averaging. Dim Y = { 1, 1, 1, 1, 2, 1, 1, 1, 1, 1.9 }Dim X = { 1.05, 1.9, 3.03, 0.85, 2.12, 2.98, 1.01, 1.97, 3.01, 2.0 }Dim Z = { 0.95, 0.99, 1.02, 2.11, 1.97, 1.89, 3.12, 3.01, 2.96, 2.0 }CurveToSurface(Y, X, Z, 15 %) The extra X value 1.9 with the X and Z coordinate 2.0 is averaged in this example with the Y value 2.0 in the center of the Y matrix. Thus, the value 1.95 appears in the result.