414 | | -''' {Name:} ''' any name given to the object -''' {Type:} ''' classify the object with the following choice: -*'points': set of n points -*'line': simple straight segment, defined by its two end points -*'polyline': open line made of n-1 consecutive segments (defined by n points) -*'rectangle': defined by its center, half width and half height. -* 'polygon': closed line made of n consecutive segments (defined by n points) -*'ellipse': defined by its center, half width and half height. -*'plane': plane with associated cartesian coordinates -*'volume': volume with associated cartesian coordinates |
415 | | |
416 | | -''' {ProjMode:} ''': specifies the method of projection of coordinates and field. |
417 | | |
418 | | -''' {Angle:} ''': three component rotation vector used to define the orientation, for instance for planes. |
419 | | |
420 | | -''' {RangeX:} ''', ''' {RangeY:} ''', ''' {RangeZ:} ''':bounds defining the range of projection along each coordinate, one or two values depending on the object type. |
421 | | |
422 | | -''' {DX:} ''', ''' {DY:} ''', ''' {DZ:} ''':meash along each coordinate defining a grid for interpolation. |
423 | | |
424 | | -''' {Coord:} ''': matrix with two (for 2D fields) or three columns defining the object position. -*for 'points', 'line', 'polyline', 'polygon': matrix with n lines [xi yi zi], corresponding to each of the n defining points. Note that in 3D case, polygons must be included in a plane, which imposes restrictions on these coordinates. -*for 'rectangle', 'ellipse': coordinates of the center. -*for 'plane' or 'volume': coordinates of the origin of the new coordinate frame attached to the object. |
425 | | |
426 | | -''' {CoordUnit:} ''' units for the coordinates, must fit with the units of coordinates for the projected field. |
| 410 | * ''' {Name:} ''' any name given to the object |
| 411 | * ''' {Type:} ''' classify the object with the following choice: |
| 412 | * 'points': set of n points |
| 413 | * 'line': simple straight segment, defined by its two end points |
| 414 | * 'polyline': open line made of n-1 consecutive segments (defined by n points) |
| 415 | * 'rectangle': defined by its center, half width and half height. |
| 416 | * 'polygon': closed line made of n consecutive segments (defined by n points) |
| 417 | * 'ellipse': defined by its center, half width and half height. |
| 418 | * 'plane': plane with associated cartesian coordinates |
| 419 | * 'volume': volume with associated cartesian coordinates |
| 420 | |
| 421 | * ''' {ProjMode:} ''': specifies the method of projection of coordinates and field. |
| 422 | |
| 423 | * ''' {Angle:} ''': three component rotation vector used to define the orientation, for instance for planes. |
| 424 | |
| 425 | * ''' {RangeX:} ''', ''' {RangeY:} ''', ''' {RangeZ:} ''':bounds defining the range of projection along each coordinate, one or two values depending on the object type. |
| 426 | |
| 427 | * ''' {DX:} ''', ''' {DY:} ''', ''' {DZ:} ''':meash along each coordinate defining a grid for interpolation. |
| 428 | |
| 429 | * ''' {Coord:} ''': matrix with two (for 2D fields) or three columns defining the object position. |
| 430 | * for 'points', 'line', 'polyline', 'polygon': matrix with n lines [xi yi zi], corresponding to each of the n defining points. Note that in 3D case, polygons must be included in a plane, which imposes restrictions on these coordinates. |
| 431 | * for 'rectangle', 'ellipse': coordinates of the center. |
| 432 | * for 'plane' or 'volume': coordinates of the origin of the new coordinate frame attached to the object. |
| 433 | |
| 434 | * ''' {CoordUnit:} ''' units for the coordinates, must fit with the units of coordinates for the projected field. |
431 | | Each variable of the input field yields a corresponding variable in the projected field. Integral quantities (circulation, flux...) can be calculated as well. The result depends on the nature of the field variable (set by the variable attribute 'Role', on the object style and projection mode ProjMode: when any averaging or interpolation process is involved, the only projected variables are scalars and vector components, excluding 'warnflag', 'errorflag', 'ancillary'. Those are only projected with the mode 'projection' on line, planes or volumes. -''' {ProjMode 'projection': } ''' this is a direct projection of the field data in a range of action around the object, as defined by the parameters 'RangeX', 'RangeY', "RangeZ'. The projection of an input variable defined on unstructured coordinates therefore remains unstructured. By contrast, an input variable defined on a regular grid always yields a variable on a regular grid on the projection project (for instance on a line or plane). |
432 | | |
433 | | -''' {ProjMode 'interp':} ''' Linear interpolation of the fields on a grid of regularly spaced points defined on the projection object, with meshes DX, DY, DZ. The grid array along x starts at RangeX(1) and ends at the closest value smaller than RangeX(2). Similar convention is used for y and z in case of planes and volumes. |
434 | | |
435 | | -''' {ProjMode 'filter':} ''' filtered interpolation (used only for lines). For each point an average of the neighborhing data is used, with a weighting function whose range is given by max(RangeY). This is useful to get reliable profiles in the presence of 'holes' in the data fields. |
436 | | |
437 | | -''' {ProjMode 'inside' and 'ouside} '''': defined only for closed lines: rectangle, polygon, ellipse. For each field U, its probability distribution function Uhist inside, or respectively outside, the line is calculated, as well as the mean Umean. |
438 | | |
439 | | -''' {ProjMode 'none', 'mask_inside', 'mask_outside':} ''' no projection operation. The object is used solely for plotting purpose, to show a boundary or to prepare a mask, inside or outside a closed line, see [section 8.1->#sec8.1]). |
440 | | |
441 | | [sec6.4<-] |
| 439 | Each variable of the input field yields a corresponding variable in the projected field. Integral quantities (circulation, flux...) can be calculated as well. The result depends on the nature of the field variable (set by the variable attribute 'Role', on the object style and projection mode ProjMode: when any averaging or interpolation process is involved, the only projected variables are scalars and vector components, excluding 'warnflag', 'errorflag', 'ancillary'. Those are only projected with the mode 'projection' on line, planes or volumes. |
| 440 | |
| 441 | * ''' {!ProjMode 'projection': } ''' this is a direct projection of the field data in a range of action around the object, as defined by the parameters 'RangeX', 'RangeY', "RangeZ'. The projection of an input variable defined on unstructured coordinates therefore remains unstructured. By contrast, an input variable defined on a regular grid always yields a variable on a regular grid on the projection project (for instance on a line or plane). |
| 442 | |
| 443 | * ''' {ProjMode 'interp_lin':} ''' Linear interpolation of the fields on a grid of regularly spaced points defined on the projection object, with meshes DX, DY, DZ. The grid array along x starts at RangeX(1) and ends at the closest value smaller than RangeX(2). Similar convention is used for y and z in case of planes and volumes. |
| 444 | |
| 445 | * ''' {ProjMode 'interp_tps':} ''' interpolation with thin spline shell. |
| 446 | |
| 447 | * ''' {ProjMode 'inside' and 'ouside} '''': defined only for closed lines: rectangle, polygon, ellipse. For each field U, its probability distribution function Uhist inside, or respectively outside, the line is calculated, as well as the mean Umean. |
| 448 | |
| 449 | * ''' {ProjMode 'none', 'mask_inside', 'mask_outside':} ''' no projection operation. The object is used solely for plotting purpose, to show a boundary or to prepare a mask, inside or outside a closed line, see [section 8.1->#sec8.1]). |
444 | | 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'''. |
445 | | |
446 | | -''' {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. -*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. -*ProjMode= 'interp': U(i),i=1 is obtained as a linear interpolation on each point. |
447 | | |
448 | | -''' {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**. -*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. -* ProjMode='interp': |
449 | | |
450 | | 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. |
451 | | |
452 | | -* ProjMode='filter': same as 'interp' but with a smoothing operation. -''' {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. |
453 | | |
454 | | -''' {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. -*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). -* ProjMode='interp': |
455 | | |
456 | | 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. |
457 | | |
458 | | -''' {Projection on volumes:**} ''' This is used to delimitate a volume for 3D representation |
| 452 | 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'''. |
| 453 | |
| 454 | * ''' {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. |
| 455 | * 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. |
| 456 | * ProjMode= 'interp_lin': U(i),i=1 is obtained as a linear interpolation on each point. |
| 457 | |
| 458 | * ''' {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**. |
| 459 | * 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. |
| 460 | * 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. |
| 461 | |
| 462 | * ProjMode='interp_tps': same as 'interp' but with a smoothing operation. |
| 463 | |
| 464 | * ''' {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. |
| 465 | |
| 466 | * ''' {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. |
| 467 | * 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). |
| 468 | * 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. |
| 469 | * ProjMode='interp_tps': same as interp_lin but with thin plate shell interpolation. |
| 470 | |
| 471 | * ''' {Projection on volumes:**} ''' This is used to delimitate a volume for 3D representation |
469 | | -*'points': mark points with mouse left button. Use right click to end the series. The list of coordinates appear on the set_object interface. These can be then manually edited, use plot on the GUI '''set_object.fig''' to validate. The range of action can be set on the GUI '''set_object.fig''' by the edit box '''[YMax] ''' (only needed in the ProjMode 'projection'). This range is visualised by dashed circles around each point. The set of points can be determined from successive images (to track a feature for instance): for that purpose use the keyboard keys 'p' and 'm' to increament or decrement fields without the mouse. -*'line': just draw a line, keeping the mouse left button pressed, release to end. The range of action, set by '''[YMax]''', is visualised by two dashed lines (only if ProjMode='projection'). -*'polyline': draw a line with several segments, press and release the mouse left button to mark each summit, press the right button to end the line. -*'rectangle': defined by its center, half width and half height. -*'polygon': closed line made of n consecutive segments (defined by n points) -*ellipse: defined by its center, half width and half height. -*plane: plane with associated cartesian coordinates -*volume: volume with associated cartesian coordinates |
| 482 | * 'points': mark points with mouse left button. Use right click to end the series. The list of coordinates appear on the set_object interface. These can be then manually edited, use plot on the GUI '''set_object.fig''' to validate. The range of action can be set on the GUI '''set_object.fig''' by the edit box '''[YMax] ''' (only needed in the ProjMode 'projection'). This range is visualised by dashed circles around each point. The set of points can be determined from successive images (to track a feature for instance): for that purpose use the keyboard keys 'p' and 'm' to increament or decrement fields without the mouse. |
| 483 | * 'line': just draw a line, keeping the mouse left button pressed, release to end. The range of action, set by '''[YMax]''', is visualised by two dashed lines (only if ProjMode='projection'). |
| 484 | * 'polyline': draw a line with several segments, press and release the mouse left button to mark each summit, press the right button to end the line. |
| 485 | * 'rectangle': defined by its center, half width and half height. |
| 486 | * 'polygon': closed line made of n consecutive segments (defined by n points) |
| 487 | * 'ellipse': defined by its center, half width and half height. |
| 488 | * 'plane': plane with associated cartesian coordinates |
| 489 | * 'volume': volume with associated cartesian coordinates |