Changes between Version 100 and Version 101 of UvmatHelp


Ignore:
Timestamp:
May 10, 2014, 3:27:08 PM (10 years ago)
Author:
sommeria
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UvmatHelp

    v100 v101  
    350350In summary, the ''field structure'' is specified by the following elements:
    351351
    352  * (optional) '''!!!ListGlobalAttribute:''' list (cell array of character strings) of the names of global attributes  Att_1, Att_2...
    353  * (mandatory) '''!!!ListVarName:''' list of the variable names Var_1, Var_2....(cell array of character strings).
    354  * (mandatory) '''!!!VarDimName:''' list of the dimensions associated with each variable: this is a cell array whose number of element is equal to that of '''ListVarName'''. Each element is the dimension name for a unidimensional variable, or a cell array specifying the list of dimension names for a multidimensional variable.
    355  * (optional) '''!!!VarAttribute:''' cell array of structures of the form !VarAttribute{ivar}.key=value, defining an attribute tag name and value for the variable #ivar (variable number in the list !ListVarName]).
     352 * (optional) '''!!!!ListGlobalAttribute:''' list (cell array of character strings) of the names of global attributes  Att_1, Att_2...
     353 * (mandatory) '''!!!!ListVarName:''' list of the variable names Var_1, Var_2....(cell array of character strings).
     354 * (mandatory) '''!!!!VarDimName:''' list of the dimensions associated with each variable: this is a cell array whose number of element is equal to that of '''ListVarName'''. Each element is the dimension name for a unidimensional variable, or a cell array specifying the list of dimension names for a multidimensional variable.
     355 * (optional) '''!!!!VarAttribute:''' cell array of structures of the form !VarAttribute{ivar}.key=value, defining an attribute tag name and value for the variable #ivar (variable number in the list !ListVarName]).
    356356 * .Att_1, Att_2... : values of the listed global attributes.
    357357 * .Var_1, .Var_2...: variables arrays whose names are listed in !ListVarName.
     
    359359In some cases, it is useful to define the field object independently from its data content. Then the variables .Var1... are replaced by the lists of dimension names and values.
    360360
    361  * '''!!!ListDimName:''' list of dimension names (cell array of character strings)
    362  * '''!!!DimValue:''' array of dimension values corresponding to !LisDimName.
     361 * '''!!!!ListDimName:''' list of dimension names (cell array of character strings)
     362 * '''!!!!DimValue:''' array of dimension values corresponding to !LisDimName.
    363363
    364364The following temporary information is added to manage projection and field substraction oerations, which must be done in general after projection:
     
    599599-'''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.
    600600
    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 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]'''.
     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 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]'''.
    602602
    603603=== 8.3 Structure of the xml file ===
     
    664664Several input file series can be introduced simultaneously with the upper menu bar, or filling manually the successive lines of '''!InputTable'''. To get a new line, press the 'down' keyboard arrow after selecting the last existing line (this copies by default the last line content to the new line). A line can be suppressed by selecting it and pressing the key 'Suppress'. Press the button '''[REFRESH]''' to validate the input (checking the existence of the file series) after any editing.
    665665
    666 The panel [!IndexRange] specifies the range of input file or field indices to process while the panel Action specifies the processing function. New processing functions can be added by the user. The files resulting from the processing are put in a folder with the same path RootPath as the folder !SubDir containing the input files. The name of this output folder  is defined in [!OuputSubdir]: the default name is the input folder SubDir, followed by an extension depending on the processing function.
     666The panel [!IndexRange] specifies the range of input file or field indices to process while the panel Action specifies the processing function. New processing functions can be added by the user. The files resulting from the processing are put in a folder with the same path RootPath as the folder !SubDir containing the input files. The name of this output folder  is defined in [!OuputSubdir]: the default name is the input folder ''!SubDir'', followed by an extension depending on the processing function.
    667667
    668668The same action can be performed eiither on the local Matlab session, either as background process on the same computer, either as jobs sent on a cluster. In all cases the GUI series exports its content in a xml configuration file put in a subfolder /0_XML of the result folder [!OuputSubdir].
     
    673673The menu bar at the top of the GUI contains the following buttons:
    674674
    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.
     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.
    676676
    677677 * '''[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].
     
    685685 * '''[Help] ''': displays this help file using the Matlab browser.
    686686
    687 === 10.3 The frame [IndexRange] ===
     687=== 10.3 The frame [!IndexRange] ===
    688688The series of file indices is set in the frame '''[!IndexRange]'''. Any action is performed from field index '''[num_first_i]''' to '''[num_last_i] ''' with increment '''[num_incr_i]''' . If this increment is empty (or not an integer number), operation is performed on all available files between ''first_i'' and ''last_i''. In case of double indexing, action is similarly performed from field index''' [num_first_j]''' to '''[num_last_j]''' with increment '''[num_incr_j]'''. Succesive file names are ordered as a matrix {j,i} with the index j varying the fastest. The box '''num_NbSlice''' can be introduced to scan the ''i'' index modulo NbSlice.
    689689
    690 The  min and max indices available in the series are indicated as a guide-line, as well as the corresponding times in '''[wiki:TimeTable [TimeTable]]'''. The times for the first and last chosen indices are also indicated, as well as the source of the time information (column 'Name' in the table).
    691 
    692 When input files are indexed by pairs i1-i2 or j1-j2, as resulting for instance from PIV, the pair indexing can be chosen by pressing the button''' [wiki:SetPairs "[SetPairs]"]''' which opens an ancilliary GUI. Depending on the input file names, this can provides the choice between 'bursts', 'Di','Dj'. In mode 'bursts' a single j index pair is selected in the menu '''[!ListPairs]'''. In mode 'Di' and 'Dj' it selects a given index interval in i or j respectively. Then the first_i and last_i refer to the ''reference indices''. With the option '*-*' in '''[!ListPairs]''', available pairs are automatically chosen. In case of multiple input lines, the selection from '''[Set pairs]''' refers to the line number displayed in [[https://servforge.legi.grenoble-inp.fr/search?q=wiki%3AListView ListView]]. It is  transfered to the corresponding line in the table '''[!PairString]'''.
     690The  min and max indices available in the series are indicated as a guide-line, as well as the corresponding times in '''[!TimeTable]'''. The times for the first and last chosen indices are also indicated, as well as the source of the time information (column 'Name' in the table).
     691
     692When input files are indexed by pairs i1-i2 or j1-j2, as resulting for instance from PIV, the pair indexing can be chosen by pressing the button '''[!SetPairs]''' which opens an ancilliary GUI. Depending on the input file names, this can provides the choice between 'bursts', 'Di','Dj'. In mode 'bursts' a single j index pair is selected in the menu '''[!ListPairs]'''. In mode 'Di' and 'Dj' it selects a given index interval in i or j respectively. Then the first_i and last_i refer to the ''reference indices''. With the option '*-*' in '''[!ListPairs]''', available pairs are automatically chosen. In case of multiple input lines, the selection from '''[Set pairs]''' refers to the line number displayed in [!ListView]. It is  transfered to the corresponding line in the table '''[!PairString]'''.
    693693
    694694=== 10.4 The frame [Fields] ===
     
    707707The action function is first activated when it is selected in the menu '''[!ActionName]'''. This first activation checks input data and sets the visibility of input GUI uicontrols.
    708708
    709 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. For the latter 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'').
    710 
    711 === 10.7 check_data_files ===
    712 Gives the series of files selected for processing and checks their existence. The oldest modified file is indicated, which is useful to detect whether any file in a civ processing is missing (then the oldest file is not updated).
    713 
    714 For NetCDF files, the last operation made (civ1, fix1, patch1, civ2, fix2, patch2) is indicated. The details of each NetCDF file can be dispalyed by selecting it with the mouse in the list.
    715 
    716 === 10.8 aver_stat: ===
    717 This option provides any average over the processed files. If nb_slice is not equal to 1, the average is performed slice by slice, providing nb_slice results.   If a projection object is selected (check box '''[!CheckObject]'''), the field is projected before averaging.
    718 
    719 For unstructured coordinates varying for successive fields, the data is linearly interpolated on the coordinates of the first field in the series. It is then advised to project the fields on a regular grid, creating a projection object of type 'plane' with projection mode 'interp_lin' or 'interp_tps'.
    720 
    721 With a projection mode 'inside' or 'outside', the global histogram of field variables on the selected region will be obtained.
    722 
    723 In the case of two input files series, the field difference will be perfomed like with the interface '''uvmat.fig'''. It is not possible to use more than two input series for this funtion.
    724 
    725 === 10.9 time_series ===
    726 This action provides a time series of the input field. It is advised to use a POINTS projection object, so the series is limited to the selected points.
    727 
    728 In the case of two input files series, the field difference will be perfomed like with the interface '''uvmat.fig'''. It is not possible to use more than two input series for this funtion.
    729 
    730 === 10.10 merge_proj ===
    731 This option allows to merge several field series in a single one. This is useful to merge fields obtained with different cameras. Select the different series, activating the check box add. In this case, it is generally useful to first interpolate the fields on a single grid. For that purpose select a projection object of type 'plane' with projection mode 'interp' or 'interp_tps' to get spatial derivative.
    732 
    733 Since the different views have their own calibration, it is important to use the option 'phys' (menu menu_coord), and to create the grid in phys coordinates.
    734 
    735 === 10.12 more... ===
    736 This action calls any user defined function by its name, acting on the series of fields defiend for ACTION. Some examples of usr_defined functions are in the subdirectory {/series}.
    737 
    738 -List of available functions:
     709The 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
     711For 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
     713=== 10.7 Action functions of general use ===
     714A few functions are provided by default in the menu '''[!ActionName]'''. In addition to ''civ_series'', discussed in [#Civ: section 11], these are:
     715
     716 * ''check_data_files:'' gives the series of files selected for processing and checks their existence. The oldest modified file is indicated, which is useful to detect whether any file in a civ processing is missing (then the oldest file is not updated). For NetCDF files, the last operation made (civ1, fix1, patch1, civ2, fix2, patch2) is indicated. The details of each NetCDF file can be dispalyed by selecting it with the mouse in the list.
     717 *  ''aver_stat'': this option provides any average over the processed files. If ['''!!NbSlice]''' is not equal to 1, the average is performed slice by slice, providing !!NbSlice results.   If a projection object is selected (check box '''[!CheckObject]'''), the field is projected before averaging. For unstructured coordinates varying for successive fields, the data is linearly interpolated on the coordinates of the first field in the series. It is then advised to project the fields on a regular grid, creating a projection object of type '''plane''' with projection mode '''interp_lin''' or '''interp_tps'.'' With a projection mode 'inside' or 'outside', the global histogram of field variables on the selected region will be obtained. In the case of two input files series, the field difference will be perfomed like with the interface '''uvmat.fig'''. It is not possible to use more than two input series for this function.
     718 * ''time_series:'' this action provides a time series of the input field, possibly projected . Thus projection on 'points' lead to time series of the projected variable(s) for each point, projection by interpolation on a line will (x,time) field, while projection on a plane gives a 3D matrix, whose first index corresponds to time. Note that for a vector field, projections on a tilted line or plane give the vector components longitudinal and normal to the object. To preserve the original x and y components, introduce them as ''scalar'', not ''vectors''. In the case of two input files series, the field difference will be perfomed like with the interface '''uvmat.fig'''. It is not possible to use more than two input series for this funtion.
     719 * ''merge_proj'': this option allows to merge several field series in a single one. This is useful to merge fields obtained with different cameras. Select the different series, using the input option ''append''. In this case, it is generally useful to interpolate the fields on a single grid. For that purpose select a projection object of type 'plane' with projection mode 'interp_lin', or 'interp_tps' to get spatial derivative. Since the different views have their own calibration, it is important to use the option 'phys' (menu menu_coord), and to create the grid in phys coordinates.
     720
     721=== 10.8 Other functions Action... ===
     722With the option '''more...' ''in !!ActionName, a browsers pops up to choose an Action function. Some examples of  functions are in the subdirectory ''{/series}'' of the folder containing '''''umat'''''.
    739723
    740724 * ''sub_background.m'': used to removed a mean background to the images. This is useful before CIV processing when some fiked features are visible in the background (when the laser sheet is close to the bottom).
    741  * ''ima_levels.m''
     725 * ''ima_levels.m'': provides images with modified grey scale intensity to avoid blinking effects on particles.''''
    742726 * ''ima2vol.m'' produce volume images for 3D3C PIV.
    743  * ''turb_stat.m'': produces turbulent statistics (reynolds stress tensor)
    744 
    745 To update (**): -uvprofile: calculate the mean velocity profile and Reynolds stress u'v' along a band, averaged over the series of fields. -view_ima3D: provides a perspective view of a 3D image defined by a series of slice 2D images. The isosurfaces of the scalar field are represented. -part_stat: count particles and provides their density and luminosity histogramm Peaklocking errors:(to update **)
    746 
    747 By selecting the press button 'peaklocking' on the 'plotgraph' interface, you smooth the current velocity histograms while preserving its integral over each unity (in pixels). This appears in red. Then an estimate of the peaklocking error is obtained by comparing the initial histogram to the smooth one.
     727 * ''turb_stat.m'': produces turbulent statistics (Reynolds stress tensor)
     728
     729These can be used as template to create other functions. The general input of these functions in Matlab structure 'Param' which contains all the input parameters as given by the GUI series (see comments in the function for details). For batch operations, as needed for the cluster, this input is replaced by the name of an xml file which contains these parameters (this is the file produced in the floder '''/0_XM'L'' under the result directrory Output Subdir ). The first part of the function must give some options for the requested input information and may interactively introduce specific parameters needed for the function. The second part of the function, where the processing itself takes place, is then free from any input (so the operation can be easily dispatched to a remote computer).
     730
     731To update (**): LIF_series: do LIF analysis, Stereo_PIV: combine two velicity series to yield the 3 components, part_stat: count particles and provides their density and luminosity histogramm, Peaklocking errors: estimate errors in PIV . By selecting the press button 'peaklocking' on the 'plotgraph' interface, you smooth the current velocity histograms while preserving its integral over each unity (in pixels). This appears in red. Then an estimate of the peaklocking error is obtained by comparing the initial histogram to the smooth one.
    748732
    749733----
     
    752736PIV 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').
    753737
    754 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:
    755 
    756  * '''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):
    757    * ''pair j1-j2:'' selects a given j index pair (sometimes denoted by letter index) for the whole time series. This is the most common case for PIV. Pair selection is performed in the menu '''[ListPairCiv1]''' and '''[ListPairCiv2]''' for the second iteration Civ2, see below. If timing from an xml file [#a3.5Imagedocumentationfiles.xml <!ImaDoc>] has been detected, this is indicated in the edit box '''[ImaDoc]''' and the corresponding time intervals are indicated (in ms). For some applications, this time interval may evolve in time, so that reference indices ref_i and ref_j are chosen for the display.
    758    * series (Di): selects a given  index interval for the i index, around a set of reference i indices. The intervals are denoted Di=0|1, -1|1, -1|2, -2|2 ... , corresponding to the index pairs i|i+1, i-1|i+1, i-1|i+2, i-2|i+2 ...around each reference index i. Pair selection is then performed in the menu '''[ListPairCiv1]''' and '''[ListPairCiv2]''' like for 'pair j1-j2'.
     738An 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
     740 * '''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):
     741   * ''pair j1-j2:'' selects a given j index pair (sometimes denoted by letter index) for the whole time series. This is the most common case for PIV. Pair selection is performed in the menu '''[!ListPairCiv1]''' and '''[!ListPairCiv2]''' for the second iteration Civ2, see below. If timing from an xml file [#a3.5Imagedocumentationfiles.xml <!ImaDoc>] has been detected, this is indicated in the edit box '''[!ImaDoc]''' and the corresponding time intervals are indicated (in ms). For some applications, this time interval may evolve in time, so that reference indices ref_i and ref_j are chosen for the display.
     742   * series (Di): selects a given  index interval for the i index, around a set of reference i indices. The intervals are denoted Di=0|1, -1|1, -1|2, -2|2 ... , corresponding to the index pairs i|i+1, i-1|i+1, i-1|i+2, i-2|i+2 ...around each reference index i. Pair selection is then performed in the menu '''[!ListPairCiv1]''' and '''[!ListPairCiv2]''' like for 'pair j1-j2'.
    759743   * series (Dj): same as series (Di) but with the j index.
    760744 * '''displacement''': compare the current image to a fixed reference frame, as needed to measure the displacement with respect to this reference. The reference index (i index) is set by an edit box '''[num_OriginIndex]'''.