Changes between Version 105 and Version 106 of UvmatHelp
- Timestamp:
- Aug 13, 2014, 7:22:21 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
UvmatHelp
v105 v106 1 1 [[PageOutline]] 2 2 3 = --- Help for Uvmat --- = 3 = --- Help for UVMAT --- = 4 4 5 == 1 - Generalities == 6 5 7 === 1.1 Aim === 6 The package uvmat can be used to visualise, scan and analyse a wide variety of input data: all image and movie formats recognised by Matlab (see [#a3.1Inputdataformats section 3.1]), NetCDF binary files(see [#a7.1TheNetCDFformat section 7]). It is however particularly designed for laboratory data obtained from imaging systems: it includes a Particle Image Velocimetry software, as well as tools for geometric calibration, masks, grid generation and image pre-processing (e.g. background removal), and editing documentation files in the format xml. Stereoscopic PIV, PIV-LIF and 3D PIV in a volume (still under development) are handled. 8 9 The package UVMAT can be used to visualise, scan and analyse a wide variety of input data: all image and movie formats recognised by Matlab (see [#a3.1Inputdataformats section 3.1]), NetCDF binary files(see [#a7.1TheNetCDFformat section 7]). It is however particularly designed for laboratory data obtained from imaging systems: it includes a Particle Image Velocimetry software, as well as tools for geometric calibration, masks, grid generation and image pre-processing (e.g. background removal), and editing documentation files in the format xml. Stereoscopic PIV, PIV-LIF and 3D PIV in a volume (still under development) are handled. 7 10 8 11 This package can be used without knowledge of the Matlab language, but it is designed to be complemented by user defined Matlab functions, providing flexibility for further data analysis. It provides convenient tools to develop a set of processing functions with a standardised system for input-output. … … 14 17 15 18 * '''browse_data.fig:''' scans the data directory of a project 16 * '''editxml.fig:''' displays and edits xml files according to an xml schema. xml reading and editing is performed by the toolbox [http://www.artefact.tk/software/matlab/xml/ xmltree], integrated in the package '' uvmat'' as a subdirectory /@xmltree.17 * '''geometry_calib.fig''': determines geometric calibration parameters for relating image to physical coordinates. The toolbox http://www.vision.caltech.edu/bouguetj/calib_doc/ is used, integrated in the package '' uvmat'' as a subdirectory /toolbox_calib.19 * '''editxml.fig:''' displays and edits xml files according to an xml schema. xml reading and editing is performed by the toolbox [http://www.artefact.tk/software/matlab/xml/ xmltree], integrated in the package ''UVMAT'' as a subdirectory /@xmltree. 20 * '''geometry_calib.fig''': determines geometric calibration parameters for relating image to physical coordinates. The toolbox http://www.vision.caltech.edu/bouguetj/calib_doc/ is used, integrated in the package ''UVMAT'' as a subdirectory /toolbox_calib. 18 21 * '''get_field.fig:''' selects coordinates and field in a general NetCDF file. 19 22 * '''series.fig:''' applies various processing functions to series of fields. A set of functions is integrated in the package as a subdirectory /series, but new functions can be introduced by the user. 20 23 * '''set_object.fig:''' creates and edits geometric objects used to project data: points, lines, planes... 21 * '''view_field.fig:''' is a GUI complementing uvmatfor plotting projected data.24 * '''view_field.fig:''' is a GUI complementing UVMAT for plotting projected data. 22 25 23 26 Functions in the package are used to generate file names, to read files and plot data, and to perform various ancillary tasks. The full set of functions is listed in [#Appendix:overviewofthepackage overview of the package]. … … 33 36 34 37 === 1.4 Copyright and licence === 35 Copyright Joel Sommeria, 2008, LEGI / CNRS-UJF-INPG, joel.sommeria(at)legi.grenoble-inp.fr. 38 39 Copyright (C) Joel Sommeria, 2008-2014, LEGI UMR 5519 / CNRS UJF Grenoble-INP / Grenoble, France - joel.sommeria(at)legi.grenoble-inp.fr. 36 40 37 41 The package UVMAT is free software; it can be redistributed and/or modified it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 38 42 39 UVMAT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (file {COPYING.txt}) for more details.43 UVMAT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (file {COPYING.txt}) for more details. 40 44 41 45 ---- 42 46 == 2 - Overview of the GUI uvmat.fig == 43 47 === 2.1 Opening the GUI === 44 Type '>>uvmat' in the Matlab prompt to display the GUI. If the function is unknown by Matlab, add the appropriate path to the folder '''UVMAT''' where the toolbox has been installed (see the Matlab command '>>help path'). When the GUI is opening, the date of last modfication is displayed in the central window. During opening, the program checks the Matlab path to all the functions of the package (using the function ''check_functions.m''). If a function is missing, or if it is overridden by a function with the same name at another path location, a message is displayed in the central window at the opening of the GUI '''uvmat.fig'''. Finally, if the svn server is accessible by line-command, the latest version number of the uvmatpackage is indicated.48 Type '>>uvmat' in the Matlab prompt to display the GUI. If the function is unknown by Matlab, add the appropriate path to the folder '''UVMAT''' where the toolbox has been installed (see the Matlab command '>>help path'). When the GUI is opening, the date of last modfication is displayed in the central window. During opening, the program checks the Matlab path to all the functions of the package (using the function ''check_functions.m''). If a function is missing, or if it is overridden by a function with the same name at another path location, a message is displayed in the central window at the opening of the GUI '''uvmat.fig'''. Finally, if the svn server is accessible by line-command, the latest version number of the UVMAT package is indicated. 45 49 46 50 The GUI contains an upper menu bar, a central graphic display window, a lower left window for histogram, a top right text display window, columns of edit boxes and command buttons on both side. … … 87 91 When available, the time of each frame or field is displayed in the edit box '''[!TimeValue]''', at the very right. In the case of image pairs, the time interval Dt is displayed between the edit boxes '''[i1], [j1]''' and '''[i2], [j2]'''. This timing information can be read directly in the input file, in the case of movies or Netcdf files, or can be defined in a xml documentation file, see [#a3.5Imagedocumentationfiles.xml section 3.5] (in case of conflict, the latter prevails). 88 92 89 '''Note: ''' the five last input file names, as well as other pieces of personal information, are stored for convenience in a file (''uvmat_perso.mat'') automatically created in the user preference directory of Matlab (indicated by the Matlab command '>>prefdir'. Browsers then read default input in this file. A corruption of this file ''uvmat_perso.mat'' may lead to problems for opening uvmat, type '>>reinit' on the Matlab prompt to delete it and reinitialise the configuration of uvmat.93 '''Note: ''' the five last input file names, as well as other pieces of personal information, are stored for convenience in a file (''uvmat_perso.mat'') automatically created in the user preference directory of Matlab (indicated by the Matlab command '>>prefdir'. Browsers then read default input in this file. A corruption of this file ''uvmat_perso.mat'' may lead to problems for opening UVMAT, type '>>reinit' on the Matlab prompt to delete it and reinitialise the configuration of UVMAT. 90 94 91 95 === 2.4 General tools === … … 100 104 * '''Extracting graphs:''' The graph displayed in the central window can be copied to a separate figure by pressing the menu bar command '''[Export/extract figure]'''. This allows plot editing, exporting in image format and printing, using standard Matlab graphic tools. Plots can be also exported on an existing figure for data comparison, using the option '''[Export/export on axis]'''. A movie can be produced using the command '''[Export/make movie avi]'''. 101 105 102 * '''Extracting data''' as Matlab arrays. Information stored in the GUI uvmat(as ''!UserData'' in the figure) can be extracted in the Matlab work space by the menu bar command '''[Export/field in workspace]''' (or by pressing the right mouse button on the GUI). Type '>>Data_uvmat.Field' to get the current input field as a Matlab structure. An image or scalar matrix is for instance obtained as Data_uvmat.Field.A.106 * '''Extracting data''' as Matlab arrays. Information stored in the GUI UVMAT (as ''!UserData'' in the figure) can be extracted in the Matlab work space by the menu bar command '''[Export/field in workspace]''' (or by pressing the right mouse button on the GUI). Type '>>Data_uvmat.Field' to get the current input field as a Matlab structure. An image or scalar matrix is for instance obtained as Data_uvmat.Field.A. 103 107 104 108 [[Image(help_coordinates_titres.jpg)]] 105 109 106 110 ---- 107 == 3 - Input files and navigation with uvmat==111 == 3 - Input files and navigation with UVMAT == 108 112 === 3.1 Input data formats === 109 113 uvmat can read any image format recognised by the Matlab image reading function ''imread.m''. Images can be in true color or B&W, with 8 bit or 16 bit grey levels. Image files containing multiple frames are handled. Movie files can be also opened, using the Matlab function ''!VideoReader.m'', or ''mmreader.m'' for older versions of Matlab. 110 114 111 ''U vmat'' can also read various kinds of data in the binary format Netcdf, as described in [#a7Netcdffilesandget_field.fig section 7]. Velocity fields obtained by PIV and results of data processing are stored in this format. Derived quantities (vorticity, divergence...) can be directly obtained. The input file type is recognized by the function ''get_file_type.m'' of uvmatand the file is opened by the function ''read_field.m'' according to this file type. It is possible to include new input file types by a modification of these two functions.112 113 The PIV software provided in uvmatcan deal with any image or movie format recognised by Matlab, while the older fortran version CIVx requires B&W images in the format png (portable network graphics). It is a binary format for images with lossless (reversible) compression, recommended by w3c (http://www.w3.org/Graphics/PNG). It is an open source patent-free replacement of GIF and can also replace many common uses of TIFF. It can be read directly by all standard programs of image visualisation and processing. Compressing a raw binary image to its png form typically saves disk storage by a factor of 3.115 ''UVMAT'' can also read various kinds of data in the binary format Netcdf, as described in [#a7Netcdffilesandget_field.fig section 7]. Velocity fields obtained by PIV and results of data processing are stored in this format. Derived quantities (vorticity, divergence...) can be directly obtained. The input file type is recognized by the function ''get_file_type.m'' of UVMAT and the file is opened by the function ''read_field.m'' according to this file type. It is possible to include new input file types by a modification of these two functions. 116 117 The PIV software provided in UVMAT can deal with any image or movie format recognised by Matlab, while the older fortran version CIVx requires B&W images in the format png (portable network graphics). It is a binary format for images with lossless (reversible) compression, recommended by w3c (http://www.w3.org/Graphics/PNG). It is an open source patent-free replacement of GIF and can also replace many common uses of TIFF. It can be read directly by all standard programs of image visualisation and processing. Compressing a raw binary image to its png form typically saves disk storage by a factor of 3. 114 118 115 119 For 3D PIV**, 'volume' images, with file extension .vol are used. These are images in the png format, where the npz slices are concatenated along the y direction, forming a composite image of dimension (npy x npz, npx) from the images (npy x npx). 116 120 117 121 === 3.2 Selecting fields from CIV === 118 To update... The package uvmatrecognizes the NetCDF fields obtained from the CIVx software. This includes the velocity fields and their spatial derivatives, as well as information about the CIV processing (image correlation values and flags). The vorticity, divergence, or strain are read in the same NetCDF files, but are available only after a PATCH operation has been run in the CIVx software, see [#a11-PIV:ParticleImagingVelocimetrys section 11].122 To update... The package UVMAT recognizes the NetCDF fields obtained from the CIVx software. This includes the velocity fields and their spatial derivatives, as well as information about the CIV processing (image correlation values and flags). The vorticity, divergence, or strain are read in the same NetCDF files, but are available only after a PATCH operation has been run in the CIVx software, see [#a11-PIV:ParticleImagingVelocimetrys section 11]. 119 123 120 124 <doc71|center> … … 152 156 -'''Movie scan:''' Fields can be continuously scanned as a movie by pressing the pushbuttons '''[Movie]''' ( '''[++>]''') or '''[!MovieBackward]''' . The movie speed can be adjusted by the slider '''[speed]'''. Press '''[STOP] ''' to stop the movie. 153 157 154 -'''Keyboard short cuts:''' the activation of the push buttons '''[runplus]''' and '''[runmin]''' can be performed by typing the key board letters 'p' and 'm' respectively, after the uvmatfigure has been selected by the mouse. Similarly the command of the push button '''[run0]''' can be performed by typing the 'return carriage' key.158 -'''Keyboard short cuts:''' the activation of the push buttons '''[runplus]''' and '''[runmin]''' can be performed by typing the key board letters 'p' and 'm' respectively, after the UVMAT figure has been selected by the mouse. Similarly the command of the push button '''[run0]''' can be performed by typing the 'return carriage' key. 155 159 156 160 === 3.5 Image documentation files (.xml) === 157 Image series in uvmat are documented by a file providing image timing, geometric calibration, camera type and illumination. This file is in the format ''xml'', a hierarchically organised text file. The content is labelled by tags, represented by brackets <.>, whose names and organisation are specified by a schema file (.xsd). A general introduction to the xml language and schemas is provided for instance in http://www.w3schools.com/xml. The schema used for image documentation is ''!ImaDoc.xsd'', available in the uvmatpackage in a sub-directory ''/Schemas''. Simple templates of xml files are also provided there.158 159 When a new file series is opened in uvmat, the xml documentation file is automatically sought in the folder containing the data series folder: the documentation of the file series !RootPath/SubDir/RootFile_1,... is in the file !RootPath/RootFile.xml. As a second choice (corresponding to an earlier convention), the xml file will be sought inside the data series folder, as !RootPath/SubDir/RootFile.xml (if this file does not exist, a text file with the same root name but extension .civ is sought as an obsolete option). The detection of the image documentation file is indicated by the visibility of the pushbutton '''[view_xml]''' on the upper right of the GUI '''uvmat.fig'''. Press this button to see the content through an xml editor '''editxml.fig''' (described in [#a10-Processingfieldseries section 10]). The xml file can be also opened directly by the uvmat browser, or by any text editor. In uvmat, it is read by the function ''imadoc2struct.m''.161 Image series in UVMAT are documented by a file providing image timing, geometric calibration, camera type and illumination. This file is in the format ''xml'', a hierarchically organised text file. The content is labelled by tags, represented by brackets <.>, whose names and organisation are specified by a schema file (.xsd). A general introduction to the xml language and schemas is provided for instance in http://www.w3schools.com/xml. The schema used for image documentation is ''!ImaDoc.xsd'', available in the UVMAT package in a sub-directory ''/Schemas''. Simple templates of xml files are also provided there. 162 163 When a new file series is opened in UVMAT, the xml documentation file is automatically sought in the folder containing the data series folder: the documentation of the file series !RootPath/SubDir/RootFile_1,... is in the file !RootPath/RootFile.xml. As a second choice (corresponding to an earlier convention), the xml file will be sought inside the data series folder, as !RootPath/SubDir/RootFile.xml (if this file does not exist, a text file with the same root name but extension .civ is sought as an obsolete option). The detection of the image documentation file is indicated by the visibility of the pushbutton '''[view_xml]''' on the upper right of the GUI '''uvmat.fig'''. Press this button to see the content through an xml editor '''editxml.fig''' (described in [#a10-Processingfieldseries section 10]). The xml file can be also opened directly by the UVMAT browser, or by any text editor. In UVMAT, it is read by the function ''imadoc2struct.m''. 160 164 161 165 The xml file <!ImaDoc> can contain the following sections, as prescribed by the schema file ''!ImaDoc.xsd''.: … … 208 212 209 213 * '''Project''' contains all information on a project. 210 * '''Campaign''' corresponds to a series of experiments obtained by varying a given set of physical parameters. A set of parameter names (with units) is expected to be associated to a campaign. A project may involve several campaigns corresponding to different configurations, hence different relevant parameters. For a single configuration, 'Campaign' can be at the top of the data tree, without an additional 'Project' level. The uvmatpackage does not manage levels above 'Campaign'.214 * '''Campaign''' corresponds to a series of experiments obtained by varying a given set of physical parameters. A set of parameter names (with units) is expected to be associated to a campaign. A project may involve several campaigns corresponding to different configurations, hence different relevant parameters. For a single configuration, 'Campaign' can be at the top of the data tree, without an additional 'Project' level. The UVMAT package does not manage levels above 'Campaign'. 211 215 * '''Experiment''' is a directory containing all the data for a particular experiment, defined by a choice of values for the physical parameters. 212 216 * '''!DataSeries''' contains an image series or movie from a camera, or more generally a data series from a device. Its name must correspond to the device and remain the same for all the experiments using this device. The results from data processing, as provided by 'civ' or 'series', are stored at the same level in a !DataSeries directory, named from the source one with a extension specific to the processing program, for instance '.civ' for the PIV data. … … 214 218 '''Mirror data trees''' can be created to process a source data set in 'read only' mode, to preserve the safety of the data source, and to allow several users to work in parallel without interference. 215 219 216 The data organisation can be controlled and managed by the GUI '''browse_data.fig'''. This is called by the menu bar option '''[Open/browse campaign]''' in uvmat: with this browser select the path of the folder considered as 'Campaign' (instead of the data file itself). Then the GUI '''browse_data.fig''' appears with a list of 'Experiments' and a list of '!DataSeries'. Select your choice to open the corresponding file series in '''uvmat.fig'''. The selected campaign path is then recorded for future opening under '''[Open/browse campaign]''' in the menu bar of '''uvmat.fig'''.220 The data organisation can be controlled and managed by the GUI '''browse_data.fig'''. This is called by the menu bar option '''[Open/browse campaign]''' in UVMAT: with this browser select the path of the folder considered as 'Campaign' (instead of the data file itself). Then the GUI '''browse_data.fig''' appears with a list of 'Experiments' and a list of '!DataSeries'. Select your choice to open the corresponding file series in '''uvmat.fig'''. The selected campaign path is then recorded for future opening under '''[Open/browse campaign]''' in the menu bar of '''uvmat.fig'''. 217 221 218 222 Instead of directly opening a file series with '''browse_data.fig''', you can create a 'mirror data tree' by pressing 'create_mirror', then selecting the path chosen for the new mirror folder 'Campaign'. Inside this mirror folder, a set of folders is then created for each experiment. Furthermore, an xml file 'mirror.xml' is created to recall the source directory (under the label <!SourceDir>). Inside each mirror folder 'Experiment', the source is reproduced as symbolic links. Data processing in the mirror campaign then produces 'real' !DataSeries folders. … … 222 226 ---- 223 227 == 4 - Scalar and vector display == 224 The uvmatinterface primarily reads and visualises two-dimensional fields, which can be images or scalars, or vector fields.228 The UVMAT interface primarily reads and visualises two-dimensional fields, which can be images or scalars, or vector fields. 225 229 226 230 === 4.1 Images and scalars: === … … 293 297 A transform can be systematically applied after reading the input field, for instance the transform 'phys' which takes into account geometric calibration. This transform can possibly combine two input fields, for instance to substract a background from an image. The processing function is chosen by the popup menu '''[transform_fct]''' on the left, and its path is displayed in the box '''[path_transform]'''. Select the option 'more...' to browse new functions. The same functions can be called in data processsing using the GUI '''series.fig'''. A few functions are provided in the folder /transform_fct, see the list in [#transformfunctions the function overview]. 294 298 295 These functions can transform fields into polar coordinates, do image filtering, Fourier transform, signal analysis for a 1D input field... Other functions can be easily written using those as templates. The general form of such functions is !DataOut=transform_fct(!DataIn,!XmlData,!DataIn_1,!XmlData_1) where Data is an input field object, as described in [#a5.2FieldrepresentationasMatlabstructure section 5.2], and !XmlData the content of the xml file Imadoc, as stored in the uvmatGUI. !XmlData contains in particular the element .[wiki:GeometryCalib] containing the calibration parameters, see [#a8.2TheGUIgeometry_calib.fig section 8.2].299 These functions can transform fields into polar coordinates, do image filtering, Fourier transform, signal analysis for a 1D input field... Other functions can be easily written using those as templates. The general form of such functions is !DataOut=transform_fct(!DataIn,!XmlData,!DataIn_1,!XmlData_1) where Data is an input field object, as described in [#a5.2FieldrepresentationasMatlabstructure section 5.2], and !XmlData the content of the xml file Imadoc, as stored in the UVMAT GUI. !XmlData contains in particular the element .[wiki:GeometryCalib] containing the calibration parameters, see [#a8.2TheGUIgeometry_calib.fig section 8.2]. 296 300 297 301 === 4.6 Succession of operations: === … … 342 346 343 347 === 5.2 Field representation as Matlab structure === 344 The uvmatpackage represents data as ''Matlab structures'', a set of data elements characterized by a tag name (char string) and a value. The value can be any Matlab object: number, array, character string or cell, or a structure itself, providing a data organisation as hierarchical tree. Each element is denoted in the form ''Data.tag=value''.345 346 Data are kept in memory in the GUI uvmatas a Matlab structure, stored as ''!UserData'' in the GUI figure. This structure can be extracted by the menu bar command '''[Export/field in work space]''', then typing the Matlab command '>>Data_uvmat'. It contains the current input field as a substructure ''Data_uvmat.Field''.348 The UVMAT package represents data as ''Matlab structures'', a set of data elements characterized by a tag name (char string) and a value. The value can be any Matlab object: number, array, character string or cell, or a structure itself, providing a data organisation as hierarchical tree. Each element is denoted in the form ''Data.tag=value''. 349 350 Data are kept in memory in the GUI UVMAT as a Matlab structure, stored as ''!UserData'' in the GUI figure. This structure can be extracted by the menu bar command '''[Export/field in work space]''', then typing the Matlab command '>>Data_uvmat'. It contains the current input field as a substructure ''Data_uvmat.Field''. 347 351 348 352 This field has a specific organisation, mirroring the structure of netcdf files (see [#a7-Netcdffilesandget_field section 7]). The field is described by a set of (single or multidimensional) data arrays, called the ''variables''. The ''dimensions'' of these arrays have names, in order to identify correspondance between different arrays. For instance the arrays representing the velocity components U and V must have the same dimensions. A dimension has a specific value, which sets the common size of all arrays sharing this dimension. Field description furthermore involves optional ''attributes'' to document the field data, for instance to specify the role of variables or to provide units. These attributes can be global, or can be attached to a specific variable. … … 366 370 * '''!ProjModeRequest'''= ''interp_lin'' or ''interp_tps'' indicates whether lin interpolation or derivatives by tps is needed to calculate the requested field. 367 371 * '''Operation''': name (char string) of the operation to be performed to finalise the field cell after projection. 368 * '''!SubCheck'''= 0 /1 indicate that the field must be substracted (second entry in uvmat)372 * '''!SubCheck'''= 0 /1 indicate that the field must be substracted (second entry in UVMAT) 369 373 370 374 Any other element can be added, but will not be taken into account if they are not listed in ''!ListGlobalAttribute'' or ''!ListVarName''. 371 375 372 376 === 5.3 Conventions for attributes in field objects: === 373 -'''Global attributes active in uvmat''': those are used for plot settings or data processing.377 -'''Global attributes active in UVMAT''': those are used for plot settings or data processing. 374 378 375 379 * 'Conventions': … … 433 437 ---- 434 438 == 6 - Projection objects == #ProjObject 435 === 6.1 Definition and editing with the uvmatinterface ===436 These are geometrical objects used to define cuts along lines or planes, to interpolate fields on a regular grid, to restrict the analysis or visualisation to field subregions. The projection of fields on objects is performed by the function ''proj_field.m'', which can be used as well in data processing outside the GUI ''' uvmat''', using for instance [#a10-Processingfieldseries series.fig]).439 === 6.1 Definition and editing with the UVMAT interface === 440 These are geometrical objects used to define cuts along lines or planes, to interpolate fields on a regular grid, to restrict the analysis or visualisation to field subregions. The projection of fields on objects is performed by the function ''proj_field.m'', which can be used as well in data processing outside the GUI '''UVMAT''', using for instance [#a10-Processingfieldseries series.fig]). 437 441 438 442 When a 2D or 3D field is opened by '''uvmat;fig''', a default projection object called 'plane' is created, so that all field plots (in 2D and 3D) are considered as the result of a projection. New objects are created by the menu bar command '''[Projection object]''' in '''uvmat.fig'''. The creation of a new object ('''points''', '''line'''....) can be initiated by selecting the corresponding item in the menu. Alternatively, an existing xml object file can be opened by selecting the menu option '''[browse...]'''. In each case an auxiliary GUI '''set_object.fig''' describing the object properties appears, see next [#a6.2Objectproperties sub-section] for their definitions. This GUI can be directly edited and object coordinates can be set by mouse drawing on the plot, see [#a6.4Objectrepresentation section 6.4]. To validate edition on the GUI '''set_object.fig''', refresh the plots by pressing '''[REFRESH]'''. Objects can be saved as xml files with the (upper right) button '''[SAVE]''' of '''set_object.fig'''. 439 443 440 The names of the created objects are listed in the menu '''[!ListObject]'''. The properties of the object selected in this menu can be viewed by activating the check box '''[!CheckViewObject]'''. Check '''[!CheckEditObject]''' to allow object editing with '''set_object.fig'''. The selected object is plotted in magenta, while the inactive ones are in blue. The field plot resulting from projection can be viewed in the GUI view_field.fig by activating '''[!CheckViewField]'''. This option is automatically selected when a new object is created. Then the projection object used for the main plotting window in uvmatcan be selected by the menu '''[!ListObject_1]''' which reproduces the list of available objects. The active objects are plotted in magenta, while the inactive ones are in blue.The object can be deleted by pressing '''[DeleteObject]'''.444 The names of the created objects are listed in the menu '''[!ListObject]'''. The properties of the object selected in this menu can be viewed by activating the check box '''[!CheckViewObject]'''. Check '''[!CheckEditObject]''' to allow object editing with '''set_object.fig'''. The selected object is plotted in magenta, while the inactive ones are in blue. The field plot resulting from projection can be viewed in the GUI view_field.fig by activating '''[!CheckViewField]'''. This option is automatically selected when a new object is created. Then the projection object used for the main plotting window in UVMAT can be selected by the menu '''[!ListObject_1]''' which reproduces the list of available objects. The active objects are plotted in magenta, while the inactive ones are in blue.The object can be deleted by pressing '''[DeleteObject]'''. 441 445 442 446 The properties of the projection objects can be extracted as a Matlab structure using the menu bar command '''[Export/field in workspace]''' of '''uvmat.fig'''. Those are contained in the cell of structures ''Data_uvmat.[wiki:ProjObject]''. … … 487 491 * no action on 'polyline', 'rectangle', 'polygon', 'ellipse'. 488 492 489 * ''' !ProjMode 'interp_lin': ''' Linear interpolation of scalar and vector field variables, after exclusion of false data (marqued by error flag). Ancillary data and warning flags are not projected in this mode. Gridded data are interpolated by ..., while fields with scattered coordinates are projected with the Matlab function .... Note that this function provides interpolation only within the convex hull of the initial data set, attributing 'NaN' (undefined) field values out of this domain. To avoid problems with further data processing, uvmattransforms NaN values into zeros, but mark them with an error flag FF=1.493 * ''' !ProjMode 'interp_lin': ''' Linear interpolation of scalar and vector field variables, after exclusion of false data (marqued by error flag). Ancillary data and warning flags are not projected in this mode. Gridded data are interpolated by ..., while fields with scattered coordinates are projected with the Matlab function .... Note that this function provides interpolation only within the convex hull of the initial data set, attributing 'NaN' (undefined) field values out of this domain. To avoid problems with further data processing, UVMAT transforms NaN values into zeros, but mark them with an error flag FF=1. 490 494 * 'points': linear interpolation on each point of the object. 491 495 * '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). 492 496 * 'plane': linear interpolation on a regular grid with meshes DX, DY and ortigin at (X,Y)=(0,0). This grid is bounded by the two values of RangeX and RangeY along X and Y respectively. 493 497 494 * ''' !ProjMode 'interp_tps': ''' This behaves with different objects line 'interp_lin', but using the more precise thin spline shell method. This is particularly usefull to calculate spâtial field derivatives. Furthermore this method provides data exrtrapolation outside the initial convex hull (although it is not reliable at large distances). This mode does require a previous calculation of tps weights, see [#a5.1Gridingofdata section 5.1], so it does not act on the initial field cells with scattered coordinates. This is done by uvmatif tps projection is requested. Gridded data are linearly interpolated (to clarify...).498 * ''' !ProjMode 'interp_tps': ''' This behaves with different objects line 'interp_lin', but using the more precise thin spline shell method. This is particularly usefull to calculate spâtial field derivatives. Furthermore this method provides data exrtrapolation outside the initial convex hull (although it is not reliable at large distances). This mode does require a previous calculation of tps weights, see [#a5.1Gridingofdata section 5.1], so it does not act on the initial field cells with scattered coordinates. This is done by UVMAT if tps projection is requested. Gridded data are linearly interpolated (to clarify...). 495 499 496 500 * ''' !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. other statistics... … … 518 522 The NetCDF format has been initially developed for meteorological data, but has been progressively chosen by many scientific communities. This format has been for instance proposed by the European network PIVNet (http://www.meol.cnrs.fr/LML/EuroPIV2/Proceedings/p251.pdf ) to inter compare data obtained by various techniques of Particle Imaging Velocimetry. 519 523 520 Libraries for reading-writing and data visualisation with usual computer languages can be freely downloaded. Recent releases of Matlab contain built in functions for reading and writting netcdf files. For old versions, a free toolbox must be downloaded from from http://sourceforge.net/projects/mexcdf/. U vmatdeals with both cases.524 Libraries for reading-writing and data visualisation with usual computer languages can be freely downloaded. Recent releases of Matlab contain built in functions for reading and writting netcdf files. For old versions, a free toolbox must be downloaded from from http://sourceforge.net/projects/mexcdf/. UVMAT deals with both cases. 521 525 522 526 The NetCDF data model consists of variables, dimensions, and attributes. … … 568 572 -'''3D projection:''' this transforms handles projection effects, as needed for stereoscopic view, as well as quadratic distortion, according to the pinhole camera model ( R.Y. Tsai, 'An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision'. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, pp. 364-374, 1986). We use a more recent version, with the toolbox [->http://www.vision.caltech.edu/bouguetj/calib_doc/] . To use this option, the number of calibration points should be large enough and well spread over the whole image. 569 573 570 To deduce the 3D physical coordinates from the 2D image coordinates, the ''z'' position, or a plane of cut, defined generally by a laser sheet, must be given as part of the calibration parameters. In uvmat, it is possible to introduce a set of planes obtained by volume scanning.574 To deduce the 3D physical coordinates from the 2D image coordinates, the ''z'' position, or a plane of cut, defined generally by a laser sheet, must be given as part of the calibration parameters. In UVMAT, it is possible to introduce a set of planes obtained by volume scanning. 571 575 572 576 The transform coefficients for each image series are stored under the tag <!GeometryCalib> in the corresponding xml documentation file <!ImaDoc>, described in [#a3.5Imagedocumentationfiles.xml section 3.5]. Calibration coefficients can be obtained and displayed with the GUI '''geometry_calib.fig'''. … … 579 583 -'''Simple scaling''': a simple scaling, in pixels/cm, can be introduced by the menubar command '''[Tools/Set scale]''', which displays a set of four reference points in the table '''[!ListCoord]'''. The tool 'ruler', from the menu bar command '''[Tools/ruler]''' of '''uvmat.fig''', can be useful to get the scaling. The default origin of the physical coordinates is set by default to the lower left image corner. Use the tool 'translate points', described below, to change the origin. 580 584 581 -''' Appending calibration points with the mouse: ''' Calibration points can be manually picked out by the mouse on the current image displayed by ''' uvmat''' (left button click). This requires the activation of the check box '''[enable mouse]'''. The image coordinates (in pixels) are picked by the mouse (the option 'blank' in the popup menu '''[transform_fct]''' is automatically selected when the mouse button is pressed). Zoom can be used to improve the precision, but must be desactivated for mouse selection (then move across the image by the key board directional arrows). Points can be accumulated from several images, using the key board short cuts 'p' and 'm' to move in the image series without the mouse. A calibration point can be adjusted by selecting it with the mouse and moving it while pressing the left mouse button. The coordinates in pixel of the selected points get listed in the table '''[!ListCoord]''' of '''geometry_calib.fig'''.585 -''' Appending calibration points with the mouse: ''' Calibration points can be manually picked out by the mouse on the current image displayed by '''UVMAT''' (left button click). This requires the activation of the check box '''[enable mouse]'''. The image coordinates (in pixels) are picked by the mouse (the option 'blank' in the popup menu '''[transform_fct]''' is automatically selected when the mouse button is pressed). Zoom can be used to improve the precision, but must be desactivated for mouse selection (then move across the image by the key board directional arrows). Points can be accumulated from several images, using the key board short cuts 'p' and 'm' to move in the image series without the mouse. A calibration point can be adjusted by selecting it with the mouse and moving it while pressing the left mouse button. The coordinates in pixel of the selected points get listed in the table '''[!ListCoord]''' of '''geometry_calib.fig'''. 582 586 583 587 -''' Editing the coordinate table: ''' After mouse selection, the physical coordinates must be introduced by editing the table. To make this task easier it is possible to export the table content on the Matlab command window by pressing '''[COPY PTS]''', and copy-paste a column on the table '''[!ListCoord]''' (the column below the introduction cell is filled). A single point can be removed by the 'backward' or 'suppr' keyboard command after selecting its line on the table. The whole set of points can be removed by pressing '''[CLEAR PT]'''. They can be also removed by pressing '''[STORE PT]''', then stored in a xml file (whose path and name is listed in '''[!ListCoordFiles]'''). Stored points can be retrieved by the menu bar command '''[Import/calibration points]'''. … … 589 593 -''' Translation and rotation of calibration points: '''In general A translation or rotation (in physical space) can be introduced by the menu bar commands '''[!Tools/Translate points]''' and '''[!Tools/Rotate points]'''. In the case of rotation, the origin of the rotation, as well as the angle (in degree) must be introduced. The resulting coordinates appear in the list '''[!ListCoord]'''. 590 594 591 -''' Recording calibration parameters: ''' Once the list of calibration points has been completed, press '''[APPLY]''', after selecting the appropriate option in '''[calib_type]'''. (see the previous [#a8.1Generalities sub-section 8.1]). Note that the 3D options require a sufficient number of calibration points (typically > 10) spread over the image with different values of z, or a tilted grid, see below. Calibration coefficients are recorded in the xml file <!ImaDoc> associated with the image currently opened by uvmat. If previous calibration data already exist, the previous xml file is updated, but the original one is preserved with the extension .xml~. If no xml file already exists, it is created. The image transformation to phys coordinates can be directly seen on the '''uvmat.fig''' interface after completion of the command '''[APPLY]'''.595 -''' Recording calibration parameters: ''' Once the list of calibration points has been completed, press '''[APPLY]''', after selecting the appropriate option in '''[calib_type]'''. (see the previous [#a8.1Generalities sub-section 8.1]). Note that the 3D options require a sufficient number of calibration points (typically > 10) spread over the image with different values of z, or a tilted grid, see below. Calibration coefficients are recorded in the xml file <!ImaDoc> associated with the image currently opened by UVMAT. If previous calibration data already exist, the previous xml file is updated, but the original one is preserved with the extension .xml~. If no xml file already exists, it is created. The image transformation to phys coordinates can be directly seen on the '''uvmat.fig''' interface after completion of the command '''[APPLY]'''. 592 596 593 597 To reproduce the same calibrationn for image series, open one of the image in the series, and apply again the calibration with the same points, or copy-paste the section GeometryCalib of the xml documentation file with a text editor. … … 599 603 -'''Intrinsic parameters''': the previous procedure first determines the extrinsic parameters which characterize the camera optics (focal lengths and nonlinear deformation parameter). Then the extrinsic parameters, translation and rotation of the camera with respect to the reference grid, are determined on the last grid image. if the same optics is used in a new experiment, it is possible to skip the multiplane detection, importing the intrinsic parameters from a previous <!ImaDoc> file by the menu bar tool '''[!Import/Intrinsic]''' parameters, then applying the calibration with the option '3D_extrinsic' with the reference grid image only. 600 604 601 -'''Section planes:''' deducing the physical coordinates from image coordinates requires information on the section plane. The default assumption is that the objects in the image are in the plane ''z''=0, but uvmatcan handle volume scanning by a laser plane. A set of section planes can be defined by their origin positions and rotation angle vectors. Theses planes are labelled by a ''z index'', assumed to be the frame index j (case of volume scan), or the index i modulo the number of slices !NbSlice (case of multiplane scan). The chosen option can be doucumented in the file <ImaDoc> by the menu bar command '''[Tools/set planes]''' of '''geometry_calib.fig'''. A dialog box appears for entering the set of section plane positions ''z'', as lower value, upper value and increment. Similarly an angular scan be be introduced. After introduction of the multi-plane information, the z-index is displayed in the frame '''[FileIndices]''' of '''uvmat.fig'''. The local z position of the mouse pointer, assuemed to lay on the current section plane, is then displayed in '''[text_display]'''.605 -'''Section planes:''' deducing the physical coordinates from image coordinates requires information on the section plane. The default assumption is that the objects in the image are in the plane ''z''=0, but UVMAT can handle volume scanning by a laser plane. A set of section planes can be defined by their origin positions and rotation angle vectors. Theses planes are labelled by a ''z index'', assumed to be the frame index j (case of volume scan), or the index i modulo the number of slices !NbSlice (case of multiplane scan). The chosen option can be doucumented in the file <ImaDoc> by the menu bar command '''[Tools/set planes]''' of '''geometry_calib.fig'''. A dialog box appears for entering the set of section plane positions ''z'', as lower value, upper value and increment. Similarly an angular scan be be introduced. After introduction of the multi-plane information, the z-index is displayed in the frame '''[FileIndices]''' of '''uvmat.fig'''. The local z position of the mouse pointer, assuemed to lay on the current section plane, is then displayed in '''[text_display]'''. 602 606 603 607 === 8.3 Structure of the xml file === … … 620 624 * <omc> 3 components of the rotation vector (this is for diagnostic use, it is redondant with the matrix R used for actual coordinate transforms). The physical coordinate axis are transformed to the image coordinate axis by a composition of the translation T and the rotation) 621 625 622 * <!ErrorRms>: rms difference (in X and Y direction) between the image coordinates measured for the calibration points and the coordinates transformed from their physical coordinates (using the function ''px_XYZ.m in uvmat'')623 624 * <!ErrorMax> : maximum difference (in X and Y direction) between the image coordinates measured for the calibration points and the coordinates transformed from their physical coordinates. (using the function ''px_XYZ.m'' in uvmat)626 * <!ErrorRms>: rms difference (in X and Y direction) between the image coordinates measured for the calibration points and the coordinates transformed from their physical coordinates (using the function ''px_XYZ.m in UVMAT'') 627 628 * <!ErrorMax> : maximum difference (in X and Y direction) between the image coordinates measured for the calibration points and the coordinates transformed from their physical coordinates. (using the function ''px_XYZ.m'' in UVMAT) 625 629 626 630 * <!SourceCalib> set of the point coordinates used for calibration … … 640 644 == 9 - Masks and grids == 641 645 === 9.1 Masks === 642 Mask files are used to restrict the domain of CIV processing, to take into account fluid boundaries or invalid image zones. They must be stored as .png images with 8 bits, as described in [section 3.6->#sec3.6_mask]. Mas files are automatically recognised by '''uvmat.fig''' and '''civ.fig''' if they are named [filebase '_xxmask_' 'filenumber' '.png'], where xx is the number of masks (nbslices) used when the series of fields corresponds physically to a set of nbslices positions. The mask filenumber used is the image field number modulo nbslices. Use xx=1 in the default case of a fixed position and a single mask. Masks can be made by pressing the menu bar Tools/make mask on the GUI uvmat. The mask is created interactively with the mouse on the current image.646 Mask files are used to restrict the domain of CIV processing, to take into account fluid boundaries or invalid image zones. They must be stored as .png images with 8 bits, as described in [section 3.6->#sec3.6_mask]. Mas files are automatically recognised by '''uvmat.fig''' and '''civ.fig''' if they are named [filebase '_xxmask_' 'filenumber' '.png'], where xx is the number of masks (nbslices) used when the series of fields corresponds physically to a set of nbslices positions. The mask filenumber used is the image field number modulo nbslices. Use xx=1 in the default case of a fixed position and a single mask. Masks can be made by pressing the menu bar Tools/make mask on the GUI UVMAT. The mask is created interactively with the mouse on the current image. 643 647 644 648 First open an input image file name with the browser, or the edit box and carriadge return. From the image name, a corresponding mask name is proposed in the lower edit box. It should be edited if a series of masks is made, in case of mutipositions (number nbslices) of the laser sheet in a series. The names must be [filebase '_xxmask' 'filenumber' '.png'], where xx is the number of masks (nbslices). The mask filenumber used is the image field number modulo nbslices. The filenumber can be incremented by the NEXT press button. … … 651 655 652 656 === 9.2 Grids === 653 Grid files, see [section 3.6->#sec3.6_grid], are used to impose a set of positions for PIV vectors. To create a grid for PIV, activate the menu bar Tools/Make grid on the GUI uvmat. Introduce a minimum value, mesh, and maximum value for each coordinate x in the edit boxes XMin, DX, XMax respectively. Do the same for the y coordinate. This must be expressed in physical coordinates.657 Grid files, see [section 3.6->#sec3.6_grid], are used to impose a set of positions for PIV vectors. To create a grid for PIV, activate the menu bar Tools/Make grid on the GUI UVMAT. Introduce a minimum value, mesh, and maximum value for each coordinate x in the edit boxes XMin, DX, XMax respectively. Do the same for the y coordinate. This must be expressed in physical coordinates. 654 658 655 659 The grid will be limited to an image , or to the common region of two images, depending whether one or two image names are indicated in the edit boxes image_1 and image_2. Press save to save the corresponding grid file (s). A dialog box appears to edit the name of the output grid file, and a second one in case of two images. … … 673 677 The menu bar at the top of the GUI contains the following buttons: 674 678 675 * '''[Open]''': Open or browse input files. It operates like for the GUI uvmat, except that there are now two possibilities: '''browse...''' or '''browse_append...'.'' '''''The latter appends a new input line to the table [!InputTable] while the former refreshes the table.679 * '''[Open]''': Open or browse input files. It operates like for the GUI UVMAT, except that there are now two possibilities: '''browse...''' or '''browse_append...'.'' '''''The latter appends a new input line to the table [!InputTable] while the former refreshes the table. 676 680 677 681 * '''[Open campaign] ''': does the same as '''[Open] but '''scan the data organised as a project/campaign, see [https://servforge.legi.grenoble-inp.fr/#a3.7Dataorganisationinaproject section 3.7]. … … 693 697 694 698 === 10.4 The frame [Fields] === 695 The velocity type and field are automatioally chosen by default, but can be specified by the menus '''[!VelType]''' and '''[!FieldName]'''. In case of multiple input file series, these menus only refer to the first line. Then the menus '''[!VelType_1]''' and '''[!FieldName_1]''' refer to the second line, consistently with the input for the GUI ''' uvmat'''.699 The velocity type and field are automatioally chosen by default, but can be specified by the menus '''[!VelType]''' and '''[!FieldName]'''. In case of multiple input file series, these menus only refer to the first line. Then the menus '''[!VelType_1]''' and '''[!FieldName_1]''' refer to the second line, consistently with the input for the GUI '''UVMAT'''. 696 700 697 701 === 10.5 Field transform, projection object and mask === 698 A transform function can be introduced by the menu '''[!TransformName]''' in the frame '''[!FieldTransform]"]'''. New transform functions can be introduced by the option 'more....'. Its path is then recorded and displayed in '''[!TransformPath]. Transform '''functions act field by field to modify the input (for instance transforming image to physical coordinates), like in the GUI uvmat, while the '''Action''' functions act on the whole series.702 A transform function can be introduced by the menu '''[!TransformName]''' in the frame '''[!FieldTransform]"]'''. New transform functions can be introduced by the option 'more....'. Its path is then recorded and displayed in '''[!TransformPath]. Transform '''functions act field by field to modify the input (for instance transforming image to physical coordinates), like in the GUI UVMAT, while the '''Action''' functions act on the whole series. 699 703 700 704 A projection object can be introduced by selecting the check box '''[!CheckObject]'''. If a projection object has been already created the opened interface '''set_object.fig''' will be used. Otherwise a browser appears to open an object file (xml). It is possible to view the current projection object by pressing '''[view]''', edit it by selecting '''[edit]''', or delete it by pressing '''[delete]'''. … … 709 713 The actual start of the processing is triggered by pressing the button '''[RUN]'''. It can be run in local mode, i.e. on the current Matlab session, or as ''background'', by selecting this option in '''!RunMode'''. In mode ''background'', calculation is performed in a new Matlab session (without graphics) so that the current Matlab session is free for new operations. If a cluster system has been detected, a third option ''cluster'' appears in the menu, allowing to dispatch parallel computations on a computer cluster. 710 714 711 For the cluster option, a compiled version of the action function is useful, to avoid installing Matlab on each node of the cluster. This is achieved by selecting the option ''.sh'' in the menu '''!ActionExt'''. If the compiled version is not yet available, or outdated, the GUI proposes a new compilation of the selected function (launching the function ''compile.m'' requiring the Matlab compilator toolbox). The use of compiled function on the cluster requires a file 'RunTime' whose address needs to be specified in the parameter file PARAM.xml of the package uvmat. The commands in '''series''' are set for the system 'oar', but adding the equivalent commands for another cluster system is straightforward (this must be done in the sub-function ''RUN_Callback''of ''series.m'').715 For the cluster option, a compiled version of the action function is useful, to avoid installing Matlab on each node of the cluster. This is achieved by selecting the option ''.sh'' in the menu '''!ActionExt'''. If the compiled version is not yet available, or outdated, the GUI proposes a new compilation of the selected function (launching the function ''compile.m'' requiring the Matlab compilator toolbox). The use of compiled function on the cluster requires a file 'RunTime' whose address needs to be specified in the parameter file PARAM.xml of the package UVMAT. The commands in '''series''' are set for the system 'oar', but adding the equivalent commands for another cluster system is straightforward (this must be done in the sub-function ''RUN_Callback''of ''series.m''). 712 716 713 717 === 10.7 Action functions of general use === … … 736 740 PIV can be performed by selecting the Matlab function ''civ_series'' as '''[!ActionName]''' in the GUI '''series.fig''': then the '''GUI civ_input''' appears to enter the processing parameters. An image file series must have been entered as input of '''series.fig''', or alternatively a Netcdf file resulting form a previous PIV processing (with conventions '''civdata'''). 737 741 738 An alternative possibility is to use the older Fortran program ''CivX'' from the GUI '''civ.fig'''. This can be called directly on the Matlab prompt, by typing ''>>civ'', or from uvmatby the menu bar command '''[RUN/PIV (old civ)]'''. '''-Modes of frame pair indexing''' A first menu '''[!ListCompareMode]''' selects one among four modes of operation:742 An alternative possibility is to use the older Fortran program ''CivX'' from the GUI '''civ.fig'''. This can be called directly on the Matlab prompt, by typing ''>>civ'', or from UVMAT by the menu bar command '''[RUN/PIV (old civ)]'''. '''-Modes of frame pair indexing''' A first menu '''[!ListCompareMode]''' selects one among four modes of operation: 739 743 740 744 * '''PIV''': makes image comparisons on sliding index pairs, as usual for measuring velocities by particle displacements. A second menu '''[!ListPairMode]''' in the panel '''[!PairIndices]''' then selects one among three possibilities (not always available depending on the file indexing): … … 787 791 The PIV calculation is started by the press button [RUN], or [BATCH] if this option has been installed. BATCH sends the same computations as background computing tasks in a network. 788 792 789 In both cases, the status of the computations can be checked by opening {.cmx } and {.log} files, using the uvmatbrowser or any text editor. These files are writtent in the same subdirectory as the NetCDF result files. Each {.cmx} file contains the set of parameters used for a civ computation. It is written by the civ interface just before ordering the computations. By contrast , the {.log} file is produced after completion of the computations, and it contains some information on the process, including possible error messages.793 In both cases, the status of the computations can be checked by opening {.cmx } and {.log} files, using the UVMAT browser or any text editor. These files are writtent in the same subdirectory as the NetCDF result files. Each {.cmx} file contains the set of parameters used for a civ computation. It is written by the civ interface just before ordering the computations. By contrast , the {.log} file is produced after completion of the computations, and it contains some information on the process, including possible error messages. 790 794 791 795 === 11.3 FIX === … … 812 816 Install two cameras viewing a common field with angle about 45 ° on each side. A system of titled objective lenses (Sheimpflug) allows to optimize the focus in the whole image. 813 817 814 Make a careful geometric calibration, by taking the images of a grid positioned in the plane of the laser sheet used for particle illumination. Introduce a Tsai calibration with the calibration tool associated with the image acquisition software Acquix. Calibration can be adjusted with the uvmatinterface (see calibration).818 Make a careful geometric calibration, by taking the images of a grid positioned in the plane of the laser sheet used for particle illumination. Introduce a Tsai calibration with the calibration tool associated with the image acquisition software Acquix. Calibration can be adjusted with the UVMAT interface (see calibration). 815 819 816 820 This calibration model is valid in air or with an interface air-water perpendicular to the line of sight for each camera. Otherwise, the calibration problem is more complex. … … 820 824 The images from each camera (camA and camB) must be in the same directory and the PIV results in a single subdirectory. It is advised to do the successive operations including civ2 and fix2. This double series of PIV processing can be done in two steps (keeping the same CIV subdirectory) or simulatenously, using the compare ('-') option. Then the check boxed test_stereo1 and test_stereo2 in the PATCH1 and PATCH2 frames must be unselected. 821 825 822 For PIV near a staigth wall, it is advised to create a grid for each image series, corresponding to a common array of physical positions. This can be done by the pusch button grid in uvmat(bottom right).826 For PIV near a staigth wall, it is advised to create a grid for each image series, corresponding to a common array of physical positions. This can be done by the pusch button grid in UVMAT (bottom right). 823 827 824 828 Combine PIV fields: this is done by selecting PATCH1 and test_stereo1 (at level civ1), or PATCH2 and test_stereo2 (at level civ2) in the stereo mode (check box compare selected). The resulting fields camA-camB are in physical coordinates. They are final results which cannot be processed for further Civ operations: one must go back to the two image series for that purpose. Note that this stereo combination is only possible in the RUN mode for the moment (no BATCH)**. … … 948 952 This GUI '''editxml.fig''' visualises and edits xml files. It is automatically called by the browser of '''uvmat.fig''' when a file with extension .xml is opened. 949 953 950 When an input file is opened, editxml detects the title key, e.g. <!ImaDoc>, and looks for the corresponding xml schema (e.g. {ImaDoc.xsd} ). This schema is sought in the directory defined by <SchemaPath> in the installation file {PARAM.xml} of uvmat. If the schema is found, the hierarchical structure and keys given by the schema are diplayed. Otherwise the keys of the xml file are displayed.954 When an input file is opened, editxml detects the title key, e.g. <!ImaDoc>, and looks for the corresponding xml schema (e.g. {ImaDoc.xsd} ). This schema is sought in the directory defined by <SchemaPath> in the installation file {PARAM.xml} of UVMAT. If the schema is found, the hierarchical structure and keys given by the schema are diplayed. Otherwise the keys of the xml file are displayed. 951 955 952 956 Simple elements in the xml file are listed in the forme 'key'='value', and the corresponding attributes are shown in green. Comments from the schema are dispalyed in blue. Complex elements are indicated by '+'. Selecting them on the list gives access to the lower hierarchical level. Press the arrow '''[<---]''' to move back upward in the hierarchy.