Functions

Functions

boolvec * surface (const char *surface_name="*")
 
boolvec * surface_add (REAL weight, const char *surface_name="*")
 
boolvec * surface_leq (const char *surface_name="*", REAL penalty_factor=0)
 
boolvec * surface_geq (const char *surface_name="*", REAL penalty_factor=0)
 
boolvec * trend (REAL D1=1, REAL D2=2, const char *surface_name="*")
 
boolvec * trend_add (REAL weight, REAL D1=1, REAL D2=0, const char *surface_name="*")
 

Detailed Description

Function Documentation

boolvec* surfit::surface ( const char *  surface_name = "*")
Tcl syntax:
surface "surface_name"
Description:
Using this rule the resulting surface approximates other surface in least squares meaning.
Parameters
surface_namename of surface dataset
Math:
This command adds the following functional to the functional sequence:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \sum_{i,j} \left( u_{i,j} - z(x_i, y_j) \right)^2, \]

where (i,j) - indices of the cells, $z(x_i, y_j)$ - surface value for the (i,j) cell.
boolvec* surfit::surface_add ( REAL  weight,
const char *  surface_name = "*" 
)
Tcl syntax:
surface_add weight "surface_name"
Description:
This function modifies previous (modifiable) rule by adding the surface() rule with some weight.
Parameters
weightinformational weight for this rule
surface_namename of surface dataset
Math:
This command modifies previous functional $ \Phi_0 $ by adding $ \Phi_1 $:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \Phi_0(u_{1,1},\ldots,u_{N,M}) + w\Phi_1(u_{1,1},\ldots,u_{N,M}), \]

where $ w $ - informational weight,

\[ \Phi_1(u_{1,1},\ldots,u_{N,M}) = \sum_{i,j} \left( u_{i,j} - z(x_i, y_j) \right)^2, \]

where (i,j) - indices of the cells, $z(x_i, y_j)$ - surface value for the (i,j) cell.
boolvec* surfit::surface_geq ( const char *  surface_name = "*",
REAL  penalty_factor = 0 
)
Tcl syntax:
surface_geq "surface_name" penalty_factor
Description:
This rule adds the surface condition - "the surface should be greater than equal to other surface".
Parameters
surface_namename of surface dataset
penalty_factorparameter for penalty algorithm
Math:
This command adds the condition:

\[ u_{i,j} \geq z(x_i, y_j) \quad i=1,\ldots,N, \quad j=1,\ldots,M \]

where (i,j) - indices of the cells, $z(x_i, y_j)$ - surface value for the (i,j) cell.
boolvec* surfit::surface_leq ( const char *  surface_name = "*",
REAL  penalty_factor = 0 
)
Tcl syntax:
surface_leq "surface_name" penalty_factor
Description:
This rule adds the surface condition - "the surface should be lower than equal to other surface".
Parameters
surface_namename of surface dataset
penalty_factorparameter for penalty algorithm
Math:
This command adds the condition:

\[ u_{i,j} \leq z(x_i, y_j) \quad i=1,\ldots,N, \quad j=1,\ldots,M \]

where (i,j) - indices of the cells, $z(x_i, y_j)$ - surface value for the (i,j) cell.
boolvec* surfit::trend ( REAL  D1 = 1,
REAL  D2 = 2,
const char *  surface_name = "*" 
)
Tcl syntax:
trend D1 D2 "surface_name"
Description:
This rule determines resulting surface behaviour in regions out low information density. This rule tells, that in these regions resulting surface should be similar to other surface (which is called trend).
Parameters
D1informational weight for rule that sounds "resulting surface should have the same gradients as trend surface"
D2informational weight for rule that sounds "resulting surface should have the same curvature as trend surface"
surface_namename of surface dataset. This is a trend surface.
Math:
This command adds the following functional to the functional sequence:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \mathbf{D_1} \frac{h_y}{h_x} \left[ \left( \left( u_{i+1,j}-u_{i,j} \right) - \left( t(x_{i+1,},y_j)-t(x_i,y_j) \right) \right)^2 + \left( (u_{i,j} - u_{i-1,j})-(t(x_i,y_j) - t(x_{i-1},y_j)) \right)^2 \right] + \]

\[ \mathbf{D_1} \frac{h_x}{h_y} \left[ \left( \left( u_{i,j+1}-u_{i,j} \right) - \left( t(x_i,y_{j+1})-t(x_i,y_j) \right) \right)^2 + \left( \left( u_{i,j-1} - u_{i,j} \right) - \left( t(x_i,y_{j-1}) - t(x_i,y_j) \right) \right)^2 \right] + \]

\[ + \mathbf{D_2} \frac{h_y^2}{h_x^2} \left[ \left( (u_{i+2,j} - 2u_{i+1,j} + u_{i,j}) - (t(x_{i+2},y_j) - 2t(x_{i+1},y_j) + t(x_i,y_j)) \right)^2 + \right. \]

\[ \left( (u_{i+1,j} - 2u_{i,j} + u_{i-1,j}) - (t(x_{i+1},y_j) - 2t(x_i,y_j) + t(x_{i-1},y_j)) \right)^2 + \]

\[ \left. \left( (u_{i,j} - 2u_{i-1,j} + u_{i-2,j}) - (t(x_i,y_j) - 2t(x_{i-1},y_j) + t(x_{i-2},y_j)) \right)^2 \right] + \]

\[ + 2 \mathbf{D_2} \left( \left[ \left( (u_{i+1,j+1} - u_{i,j+1} - u_{i+1,j} + u_{i,j}) - (t(x_{i+1},y_{j+1}) - t(x_i,y_{j+1}) - t(x_{i+1},y_j) + t(x_i,y_j) ) \right) \right] + \right. \]

\[ \left. \left[ \left( (u_{i,j+1} - u_{i-1,j+1} - u_{i,j} + u_{i-1,j}) - (t(x_i,y_{j+1}) - t(x_{i-1},y_{j+1}) - t(x_i,y_j) + t(x_{i-1},y_j)) \right) \right] \right) + \]

\[ + \mathbf{D_2} \frac{h_x^2}{h_y^2} \left[ \left( (u_{i,j+2} - 2u_{i,j+1} + u_{i,j}) - (t(x_i,y_{j+2}) - 2t(x_i,y_{j+1}) + t(x_i,y_j)) \right)^2 + \right. \]

\[ \left( (u_{i,j+1} - 2u_{i,j} + u_{i,j-1}) - (t(x_i,y_{j+1}) - 2t(x_i,y_j) + t(x_i,y_{j-1})) \right)^2 + \]

\[ \left. \left( (u_{i,j} - 2u_{i,j-1} + u_{i,j-2}) - (t(x_i,y_j) - 2t(x_i,y_{j-1}) + t(x_i,y_{j-2})) \right)^2 \right] + \]

\[ + 2 \mathbf{D_2} \left( \left[ \left( (u_{i+1,j+1} - u_{i+1,j} - u_{i,j+1} + u_{i,j}) - (t(x_{i+1},y_{j+1}) - t(x_{i+1},y_j) - t(x_i,y_{j+1}) + t(x_i,y_j)) \right) \right] + \right. \]

\[ \left. \left[ \left( (u_{i+1,j} - u_{i+1,j-1} - u_{i,j} + u_{i,j-1}) - (t(x_{i+1},y_j) - t(x_{i+1},y_{j-1}) - t(x_i,y_j) + t(x_i,y_{j-1})) \right) \right] \right) = \min. \]

boolvec* surfit::trend_add ( REAL  weight,
REAL  D1 = 1,
REAL  D2 = 0,
const char *  surface_name = "*" 
)

bool trend_add(REAL weight, REAL D1 = 1, REAL D2 = 2, const char * surface_name = "*");

Tcl syntax:
trend_add weight D1 D2 "surface_name"
Description:
This function modifies previous (modifiable) rule by adding the trend rule with some weight.
Parameters
weightinformational weight for trend rule
D1informational weight for rule that sounds "resulting surface should have the same gradients as trend surface"
D2informational weight for rule that sounds "resulting surface should have the same curvature as trend surface"
surface_namename of surface dataset. This is a trend surface.



surfit: gridding and contouring software.