440 | | * ''' Angle: ''': three component rotation vector used to define the orientation, for instance for planes. |
441 | | |
442 | | * ''' RangeX: ''', ''' RangeY: ''', ''' RangeZ: ''':bounds defining the range of projection along each coordinate, one or two values depending on the object type. |
| 440 | * ''' Angle: ''': three component rotation vector which defines the orientation of the object coordinate axis, for 'plane' and 'volume'. In 2D, this rotation vector has only one component along z, defining a rotation angle in the plane (expressed in degrees). This applies also to the main axis of 'ellipse' and 'rectangle'. In 3D, line objects ('line', 'polyline','rectangle','polygon','ellipse') are assumed contained in a plane, and 'Angle' defines the orientation of this plane. |
| 441 | |
| 442 | * ''' RangeX: ''', ''' RangeY: ''', ''' RangeZ: ''':bounds defining a range of projection along each coordinate with respect to the object. These ranges have one or two values depending on the object type. |
| 443 | * 'points': the only relevant range is RangeX, with one value (a radius around the point). |
| 444 | * 'lines': the only relevant range is RangeY, with one value, a radius transverse to the line. |
| 445 | * 'polyline' and 'polygon' ranges are not relevant. |
| 446 | * 'rectangle','ellipse': RangeX and RangeY (one value) define the half length and half width respectively. In 3D, RangeZ may set a range of projection transverse to the plane containing the object. |
| 447 | * 'plane': RangeX and RangeY (two values each) may restrict a region in the coordinates of the plane. In 3D, RangeZ may set a range of projection transverse to the plane. |
| 448 | * 'volume': RangeX, RangeY, rangeZ (two values each) define a selected volume in the data set. |
457 | | * 'points': each field variable is averaged in a sphere of radius RangeX (a single value) around each projection point and attributed to this point position. |
458 | | * 'line': for scattered coordinates, each initial data point within a range ''RangeY'' on each side of the line is normally projected on the line, keeping its field values. For grid lin interpolation and averaging. Vector quantities are furthermore projected on the line as longitudinal (X) and normal (Y) components. RangeX, with two values, can be used to set bounds along the axis. |
459 | | * 'plane': similar as line, RangeZ in 3D. RangeX and RangeY used to set bounds. |
460 | | * 'volume': used to set bounds in 3D within a box [RangeX, RangeY, RangeZ]. |
| 463 | * 'points': each field variable is averaged in a sphere of radius RangeX (a single value) around each projection point and attributed to this point position. An ancillary variable U_nbval(i) indicates the number of (non-false) data found around each point. Ancillary data and warning flags are not projected on points. |
| 464 | * 'line': for scattered coordinates, each initial data point within a range ''RangeY'' on each side of the line is normally projected on the line, keeping its field values. For grid lin interpolation and averaging. Vector quantities are furthermore projected on the line as longitudinal (X) and normal (Y) components. The line length and mean value of each variable along the line is also calculated (giving access to circulation and flux). Ancillary data and warning flags are not projected on points. |
| 465 | * 'plane': similar as line, RangeZ in 3D. RangeX and RangeY used to set bounds. All data are projected in this mode. |
| 466 | * 'volume': used to set bounds in 3D within a box [RangeX, RangeY, RangeZ]. All data are projected in this mode. |
465 | | * 'line','polyline', 'rectangle', 'polygon', 'ellipse': linear interpolation on points regularly spaced on the line, with mesh DX. The X coordinate is the distance following the line, with an origin at the starting point(the first point in 'line','polyline','polygon',the lower left corner for rectangle, the point along the main axis for an ellipse). |
| 471 | * 'line','polyline', 'rectangle', 'polygon', 'ellipse': linear interpolation on points regularly spaced on the line, with mesh DX. The X coordinate is the distance following the line, with an origin at the starting point(the first point in 'line','polyline','polygon',the lower left corner for rectangle, the point along the main axis for an ellipse). The line length and mean value of each variable along the line is also calculated (giving access to circulation and flux). |
476 | | === 6.4 Projected fields === |
477 | | The result of projection can be easily checked by creating the object in uvmat, and using the menubar option '''[Export/field in workspace]''' in '''view_field.fig'''. |
478 | | |
479 | | * ''' Projection on n points: ''' for each variable U, a set of n values U(i),i=1 to n is obtained, together with the unstructured coordinates (X(i), Y(i)) of the n points, and Z(i) in 3D. |
480 | | * !ProjMode= 'projection': the value U(i) is obtained as an average of the (non false) data values in a domain of sizes max(2RangeX, 2RangeY, 2RangeZ) centered at each projection point. An ancillary data U_nbval(i) is also obtained, indicating the number of non-false data around each point. |
481 | | * !ProjMode= 'interp_lin': U(i),i=1 is obtained as a linear interpolation on each point. |
482 | | |
483 | | * ''' Projection on open lines: ''' This includes the object styles 'line', 'polyline'. For vector fields, the projected x component is along the line and the y component is perpendicular. 3D case still needs to be implemented**. |
484 | | * !ProjMode='projection': in the case of unstructured coordinates, each data point in the region of action (width max(RangeY) around the line) is projected onto the line. The direction of projection is normal except if 'Phi' is non equal to 0 (only possible for 'line'). For structured coordinates with meshes DX,DY (DZ), data are interpolated on the line with a mesh =min(DX,DY,DZ). For each field component U, a corresponding projected field U is produced. If DX is defined on the line, a smoothed field U_smooth is also calculated, as well as the mean U_mean along the line. |
485 | | * !ProjMode='interp_lin': non-false data are linearly interpolated on the line, with mesh =DX along the line. Data which are 'discrete','warnflag' or 'errorflag' (as defined by the attribute 'Role') are not projected. |
486 | | |
487 | | * ProjMode='interp_tps': same as 'interp' but with a smoothing operation. |
488 | | |
489 | | * ''' Projection on closed lines: ''' , This includes 'rectangle','ellipse','polygon'. For ProjMode='projection', 'interp', 'filter', it behaves like open lines (not all options implemented yet**). For ProjMode='inside' or 'outside', the pdf of each field variable, restricted to the inside or the outside respectively, is calculated. |
490 | | |
491 | | * ''' Projection on planes: ''' Data in the range of action (RangeZ on each side of the plane) are projected normally to the plane, and its position expressed with respect to the coordinate system attached to the plane. This coordinate system is defined by an origin, the plane position XObject,YObject, ZObject, the ranges [RangeX(1) RangeX(2)] and [RangeY(1) RangeY(2)] for X and Y, and the Euler angles Phi, Theta, Psi. |
492 | | * !ProjMode='projection': in the case of unstructured coordinates, all field variables are projected onto the plane. For structured coordinates with meshes DX,DY (DZ), data are interpolated on the line with a mesh =min(DX,DY,DZ). |
493 | | * !ProjMode='interp_lin': non-false data are linearly interpolated on the grid defined by the plane coordinate system and and meshes DX, DY. Data which are 'discrete','warnflag' or 'errorflag' (as defined by the attribute 'Role') are not projected. |
494 | | * !ProjMode='interp_tps': same as interp_lin but with thin plate shell interpolation. |
495 | | |
496 | | * ''' Projection on volumes:** ''' This is used to delimitate a volume for 3D representation |
497 | | |
498 | | === 6.5 Object representation === |
| 482 | |
| 483 | === 6.4 Object representation === |