source: trunk/src/uvmat_doc/FUNCTIONS_DOC/read_civxdata.html @ 37

Last change on this file since 37 was 37, checked in by sommeria, 14 years ago

create_grid.fig ,
uvmat_doc and all the included files added

File size: 27.4 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of read_civxdata</title>
6  <meta name="keywords" content="read_civxdata">
7  <meta name="description" content="'read_civxdata': reads civx data from netcdf files">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../index.html">Home</a> &gt;  <a href="index.html">.</a> &gt; read_civxdata.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for .&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>read_civxdata
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
24<div class="box"><strong>'read_civxdata': reads civx data from netcdf files</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
27<div class="box"><strong>function [Field,VelTypeOut]=read_civxdata(filename,FieldNames,VelType) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
30<div class="fragment"><pre class="comment">'read_civxdata': reads civx data from netcdf files
31------------------------------------------------------------------
32 COMBINE ET REMPLACE read_ncfield, read_vel et read_scalar_new
33------------------------------------------------------------------
34 OUTPUT:
35 nb_coord,nb_dim,
36 Civ: =0 or 1, indicates whether the data is civ (A SUPPRIMER ?)
37 CivStage: =0, ??? A UTILISER POUR REMPLACER civ
38           =1, civ1 has been performed only
39           =2, fix1 has been performed
40           =3, pacth1 has been performed
41           =4, civ2 has been performed
42           =5, fix2 has been performed
43           =6, pacth2 has been performed
44 time: absolute time
45 Field
46            .Txt: (char string) error message if any
47            .NbDim: number of dimensions (=0 by default)
48            .NbCoord: number of vector components
49            .CoordType: expresses the type of coordinate ('px' for image, 'sig' for instruments, or 'phys')
50            .dt: time interval for the corresponding image pair
51            .CivStage: =0, ??? A UTILISER POUR REMPLACER civ
52           =1, civ1 has been performed only
53           =2, fix1 has been performed
54           =3, pacth1 has been performed
55           =4, civ2 has been performed
56           =5, fix2 has been performed
57           =6, pacth2 has been performed
58            .X, .Y, .Z: set of vector coordinates
59            .U,.V,.W: corresponding set of vector components
60            .F: warning flags
61            .FF: false flag, =0 for good vectors
62            .C: scalar associated with velocity (used for vector colors)
63            .CoordType
64            .DijU; matrix of spatial derivatives (DijU(1,1,:)=DUDX,
65            DijU(1,2,:)=DUDY, Dij(2,1,:)=DVDX, DijU(2,2,:)=DVDY
66            .A, .AX, .AY: additional scalar
67 dt:time interval of the image pair red from a single file, or vector with</pre></div>
68
69<!-- crossreference -->
70<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
71This function calls:
72<ul style="list-style-image:url(../matlabicon.gif)">
73<li><a href="nc2struct.html" class="code" title="function [Data,var_detect,ichoice]=nc2struct(nc,ListVarName)">nc2struct</a>    'nc2struct': transform a netcdf file in a corresponding matlab structure</li></ul>
74This function is called by:
75<ul style="list-style-image:url(../matlabicon.gif)">
76<li><a href="RUN_FIX.html" class="code" title="function error=RUN_FIX(filename,field,flagindex,iter,thresh_vecC,flag_mask,maskname,thresh_vel,inf_sup,fileref,fieldref)">RUN_FIX</a>    'RUN_FIX': function for fixing velocity fields:</li><li><a href="RUN_STLIN.html" class="code" title="function RUN_STLIN(file_A,file_B,vel_type,file_st,nx_patch,ny_patch,thresh_patch,fileAxml,fileBxml)">RUN_STLIN</a> 'RUN_STLIN': combine velocity fields for stereo PIV</li><li><a href="series.html" class="code" title="function varargout = series(varargin)">series</a> 'series': master function associated to the GUI series.m for analysis field series</li><li><a href="uvmat.html" class="code" title="function varargout = uvmat(varargin)">uvmat</a>     'uvmat': function associated with the GUI 'uvmat.fig' for images and data field visualization</li></ul>
77<!-- crossreference -->
78
79<h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
80<ul style="list-style-image:url(../matlabicon.gif)">
81<li><a href="#_sub1" class="code">function [var,role,units,vel_type_out]=varcivx_generator(FieldNames,vel_type)</a></li><li><a href="#_sub2" class="code">function varin=varname1(vel_type,FieldNames)</a></li></ul>
82<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
83<div class="fragment"><pre>0001 <span class="comment">%'read_civxdata': reads civx data from netcdf files</span>
840002 <span class="comment">%------------------------------------------------------------------</span>
850003 <span class="comment">% COMBINE ET REMPLACE read_ncfield, read_vel et read_scalar_new</span>
860004 <span class="comment">%------------------------------------------------------------------</span>
870005 <span class="comment">% OUTPUT:</span>
880006 <span class="comment">% nb_coord,nb_dim,</span>
890007 <span class="comment">% Civ: =0 or 1, indicates whether the data is civ (A SUPPRIMER ?)</span>
900008 <span class="comment">% CivStage: =0, ??? A UTILISER POUR REMPLACER civ</span>
910009 <span class="comment">%           =1, civ1 has been performed only</span>
920010 <span class="comment">%           =2, fix1 has been performed</span>
930011 <span class="comment">%           =3, pacth1 has been performed</span>
940012 <span class="comment">%           =4, civ2 has been performed</span>
950013 <span class="comment">%           =5, fix2 has been performed</span>
960014 <span class="comment">%           =6, pacth2 has been performed</span>
970015 <span class="comment">% time: absolute time</span>
980016 <span class="comment">% Field</span>
990017 <span class="comment">%            .Txt: (char string) error message if any</span>
1000018 <span class="comment">%            .NbDim: number of dimensions (=0 by default)</span>
1010019 <span class="comment">%            .NbCoord: number of vector components</span>
1020020 <span class="comment">%            .CoordType: expresses the type of coordinate ('px' for image, 'sig' for instruments, or 'phys')</span>
1030021 <span class="comment">%            .dt: time interval for the corresponding image pair</span>
1040022 <span class="comment">%            .CivStage: =0, ??? A UTILISER POUR REMPLACER civ</span>
1050023         <span class="comment">%           =1, civ1 has been performed only</span>
1060024         <span class="comment">%           =2, fix1 has been performed</span>
1070025         <span class="comment">%           =3, pacth1 has been performed</span>
1080026         <span class="comment">%           =4, civ2 has been performed</span>
1090027         <span class="comment">%           =5, fix2 has been performed</span>
1100028         <span class="comment">%           =6, pacth2 has been performed</span>
1110029 <span class="comment">%            .X, .Y, .Z: set of vector coordinates</span>
1120030 <span class="comment">%            .U,.V,.W: corresponding set of vector components</span>
1130031 <span class="comment">%            .F: warning flags</span>
1140032 <span class="comment">%            .FF: false flag, =0 for good vectors</span>
1150033 <span class="comment">%            .C: scalar associated with velocity (used for vector colors)</span>
1160034 <span class="comment">%            .CoordType</span>
1170035 <span class="comment">%            .DijU; matrix of spatial derivatives (DijU(1,1,:)=DUDX,</span>
1180036 <span class="comment">%            DijU(1,2,:)=DUDY, Dij(2,1,:)=DVDX, DijU(2,2,:)=DVDY</span>
1190037 <span class="comment">%            .A, .AX, .AY: additional scalar</span>
1200038 <span class="comment">% dt:time interval of the image pair red from a single file, or vector with</span>
1210039 
1220040 <span class="comment">% pixcmx,pixcmy: scaling factors (from the first file)</span>
1230041 <span class="comment">% vel_type_out: string representing the selected velocity type (civ1,civ2,filter1...)</span>
1240042 <span class="comment">%</span>
1250043 <span class="comment">% INPUT:</span>
1260044 <span class="comment">% filename: file name (string).</span>
1270045 <span class="comment">% FieldNames =cell of field names to get, which can contain the strings:</span>
1280046 <span class="comment">%             'ima_cor': image correlation, vec_c or vec2_C</span>
1290047 <span class="comment">%             'vort','div','strain': requires velocity derivatives DUDX...</span>
1300048 <span class="comment">%             'error': error estimate (vec_E or vec2_E)</span>
1310049 <span class="comment">%</span>
1320050 <span class="comment">% VelType : character string indicating the types of velocity fields to read ('civ1','civ2'...)</span>
1330051 <span class="comment">%            if vel_type=[] or'*', a  priority choice, given by vel_type_out{1,2}, is done depending</span>
1340052 <span class="comment">%            if vel_type='filter'; a structured field is sought (filter2 in priority, then filter1)</span>
1350053
1360054
1370055 <span class="comment">% FUNCTIONS called:</span>
1380056 <span class="comment">% 'varcivx_generator':, sets the names of vaiables to read in the netcdf file</span>
1390057 <span class="comment">% 'nc2struct': reads a netcdf file</span>
1400058
1410059 <a name="_sub0" href="#_subfunctions" class="code">function [Field,VelTypeOut]=read_civxdata(filename,FieldNames,VelType)</a>
1420060
1430061 <span class="keyword">if</span> ~exist(<span class="string">'VelType'</span>,<span class="string">'var'</span>)
1440062     VelType=[];
1450063 <span class="keyword">end</span>
1460064 <span class="keyword">if</span> isequal(VelType,<span class="string">'*'</span>)
1470065     VelType=[];
1480066 <span class="keyword">end</span>
1490067 <span class="keyword">if</span> ~exist(<span class="string">'FieldNames'</span>,<span class="string">'var'</span>)
1500068     FieldNames=[]; <span class="comment">%default</span>
1510069 <span class="keyword">end</span>
1520070
1530071 VelTypeOut=VelType;<span class="comment">%default</span>
1540072 [var,role,units,vel_type_out_cell]=<a href="#_sub1" class="code" title="subfunction [var,role,units,vel_type_out]=varcivx_generator(FieldNames,vel_type)">varcivx_generator</a>(FieldNames,VelType);<span class="comment">%determine the names of constants and variables to read</span>
1550073 [Field,vardetect,ichoice]=<a href="nc2struct.html" class="code" title="function [Data,var_detect,ichoice]=nc2struct(nc,ListVarName)">nc2struct</a>(filename,var);
1560074 <span class="keyword">if</span> isfield(Field,<span class="string">'Txt'</span>)
1570075     <span class="keyword">return</span> <span class="comment">% error in file reading</span>
1580076 <span class="keyword">end</span>
1590077 <span class="keyword">if</span> isequal(vardetect,0)
1600078      Field.Txt=[FieldNames <span class="string">' not accessible in '</span> filename <span class="string">'/'</span> VelType];
1610079      <span class="keyword">return</span>
1620080 <span class="keyword">end</span>
1630081 var_ind=find(vardetect);
1640082 <span class="keyword">for</span> ivar=1:length(var_ind)
1650083     Field.VarAttribute{ivar}.Role=role{var_ind(ivar)};
1660084 <span class="comment">%     Field.VarAttribute{ivar}.units=units{var_ind(ivar)};% not necessary: set with calc_field</span>
1670085 <span class="keyword">end</span>
1680086 VelTypeOut=VelType;
1690087 <span class="keyword">if</span> ~isempty(ichoice)
1700088     VelTypeOut=vel_type_out_cell{ichoice};
1710089 <span class="keyword">end</span>
1720090
1730091 <span class="comment">%adjust for Djui:</span>
1740092 <span class="keyword">if</span> isfield(Field,<span class="string">'DjUi'</span>)
1750093     Field.ListVarName(end-2:end)=[];
1760094     Field.ListVarName{end}=<span class="string">'DjUi'</span>;
1770095     Field.VarDimIndex(end-2:end)=[];
1780096     Field.VarAttribute(end-2:end)=[];
1790097 <span class="keyword">end</span>
1800098
1810099 <span class="comment">%determine the appropriate constant for time and dt for the PIV pair</span>
1820100 test_civ1=isequal(VelTypeOut,<span class="string">'civ1'</span>)||isequal(VelTypeOut,<span class="string">'interp1'</span>)||isequal(VelTypeOut,<span class="string">'filter1'</span>);
1830101 test_civ2=isequal(VelTypeOut,<span class="string">'civ2'</span>)||isequal(VelTypeOut,<span class="string">'interp2'</span>)||isequal(VelTypeOut,<span class="string">'filter2'</span>);
1840102 <span class="keyword">if</span> test_civ1
1850103     Field.Time=Field.absolut_time_T0;
1860104 <span class="keyword">elseif</span> test_civ2
1870105     Field.Time=Field.absolut_time_T0_2;
1880106     Field.dt=Field.dt2;
1890107 <span class="keyword">else</span>
1900108     Field.Txt=<span class="string">'the input file is not civx'</span>;
1910109     display(Field.Txt)
1920110 <span class="keyword">end</span>
1930111
1940112 <span class="comment">% CivStage</span>
1950113 <span class="keyword">if</span> isfield(Field,<span class="string">'patch2'</span>)&amp;&amp; isequal(Field.patch2,1)
1960114     Field.CivStage=6;
1970115 <span class="keyword">elseif</span> isfield(Field,<span class="string">'fix2'</span>)&amp;&amp; isequal(Field.fix2,1)
1980116     Field.CivStage=5;
1990117 <span class="keyword">elseif</span> isfield(Field,<span class="string">'civ2'</span>)&amp;&amp; isequal(Field.civ2,1)
2000118     Field.CivStage=4;
2010119 <span class="keyword">elseif</span> isfield(Field,<span class="string">'patch'</span>)&amp;&amp; isequal(Field.patch,1)
2020120     Field.CivStage=3;
2030121 <span class="keyword">elseif</span> isfield(Field,<span class="string">'fix'</span>)&amp;&amp; isequal(Field.fix,1)
2040122     Field.CivStage=2;
2050123 <span class="keyword">else</span>
2060124     Field.CivStage=1;
2070125 <span class="keyword">end</span> 
2080126
2090127 <span class="comment">%update list of global attributes</span>
2100128 List=Field.ListGlobalAttribute;
2110129 ind_remove=[];
2120130 <span class="keyword">for</span> ilist=1:length(List)
2130131     <span class="keyword">switch</span>(List{ilist})
2140132         <span class="keyword">case</span> {<span class="string">'patch2'</span>,<span class="string">'fix2'</span>,<span class="string">'civ2'</span>,<span class="string">'patch'</span>,<span class="string">'fix'</span>,<span class="string">'dt2'</span>,<span class="string">'absolut_time_T0'</span>,<span class="string">'absolut_time_T0_2'</span>}
2150133             ind_remove=[ind_remove ilist];
2160134             Field=rmfield(Field,List{ilist});
2170135     <span class="keyword">end</span>
2180136 <span class="keyword">end</span>
2190137 List(ind_remove)=[];
2200138 Field.ListGlobalAttribute=[List {<span class="string">'Time'</span>,<span class="string">'CivStage'</span>,<span class="string">'CoordUnit'</span>}];
2210139
2220140 <span class="comment">% rescale to pixel coordiantes</span>
2230141 Field.U=Field.U*Field.pixcmx;
2240142 Field.V=Field.V*Field.pixcmy;
2250143 Field.X=Field.X*Field.pixcmx;
2260144 Field.Y=Field.Y*Field.pixcmy;
2270145 <span class="keyword">if</span> ~isequal(Field.dt,0)
2280146     Field.U=Field.U*Field.dt;<span class="comment">%translate in px displacement</span>
2290147     Field.V=Field.V*Field.dt;
2300148     <span class="keyword">if</span> isfield(Field,<span class="string">'DjUi'</span>)
2310149        Field.DjUi(:,1,1)=Field.dt*Field.DjUi(:,1,1);
2320150        Field.DjUi(:,2,2)=Field.dt*Field.DjUi(:,2,2);
2330151        Field.DjUi(:,1,2)=(Field.pixcmy/Field.pixcmx)*Field.dt*Field.DjUi(:,1,2);
2340152        Field.DjUi(:,2,1)=(Field.pixcmx/Field.pixcmy)*Field.dt*Field.DjUi(:,2,1);
2350153     <span class="keyword">end</span>
2360154 <span class="keyword">end</span>
2370155 Field.CoordType=<span class="string">'px'</span>;<span class="comment">% TODO: abandon, use COORdUnit instead ? (to adapt 'px' and 'phys')</span>
2380156 Field.CoordUnit=<span class="string">'pixel'</span>;
2390157
2400158
2410159 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
2420160 <span class="comment">% [var,role,units,vel_type_out]=varcivx_generator(FieldNames,vel_type)</span>
2430161 <span class="comment">%INPUT:</span>
2440162 <span class="comment">% FieldNames =cell of field names to get, which can contain the strings:</span>
2450163 <span class="comment">%             'ima_cor': image correlation, vec_c or vec2_C</span>
2460164 <span class="comment">%             'vort','div','strain': requires velocity derivatives DUDX...</span>
2470165 <span class="comment">%             'error': error estimate (vec_E or vec2_E)</span>
2480166 <span class="comment">%</span>
2490167 <span class="comment">% vel_type: character string indicating the types of velocity fields to read ('civ1','civ2'...)</span>
2500168 <span class="comment">%            if vel_type=[] or'*', a  priority choice, given by vel_type_out{1,2}, is done depending</span>
2510169 <span class="comment">%            if vel_type='filter'; a structured field is sought (filter2 in priority, then filter1)</span>
2520170
2530171 <a name="_sub1" href="#_subfunctions" class="code">function [var,role,units,vel_type_out]=varcivx_generator(FieldNames,vel_type) </a>
2540172
2550173 <span class="comment">%default input values</span>
2560174 <span class="keyword">if</span> ~exist(<span class="string">'vel_type'</span>,<span class="string">'var'</span>),vel_type=[];<span class="keyword">end</span>;
2570175 <span class="keyword">if</span> iscell(vel_type),vel_type=vel_type{1}; <span class="keyword">end</span>;<span class="comment">%transform cell to string if needed</span>
2580176 <span class="comment">% if ~exist('display','var'),display=[];end;</span>
2590177 <span class="keyword">if</span> ~exist(<span class="string">'FieldNames'</span>,<span class="string">'var'</span>),FieldNames={<span class="string">'ima_cor'</span>};<span class="keyword">end</span>;<span class="comment">%default scalar</span>
2600178 <span class="keyword">if</span> ischar(FieldNames), FieldNames={FieldNames}; <span class="keyword">end</span>;
2610179
2620180 <span class="comment">%select the priority order for automatic vel_type selection</span>
2630181 testder=0;
2640182 <span class="keyword">for</span> ilist=1:length(FieldNames)
2650183     <span class="keyword">if</span> ~isempty(FieldNames{ilist})
2660184     <span class="keyword">switch</span> FieldNames{ilist}
2670185         <span class="keyword">case</span> {<span class="string">'vort'</span>,<span class="string">'div'</span>,<span class="string">'strain'</span>}
2680186             testder=1;
2690187     <span class="keyword">end</span>
2700188     <span class="keyword">end</span>
2710189 <span class="keyword">end</span>     
2720190 <span class="keyword">if</span> isempty(vel_type) || isequal(vel_type,<span class="string">'*'</span>) <span class="comment">%undefined velocity type (civ1,civ2...)</span>
2730191     <span class="keyword">if</span> testder
2740192          vel_type_out{1}=<span class="string">'filter2'</span>; <span class="comment">%priority to filter2 for scalar reading, filter1 as second</span>
2750193         vel_type_out{2}=<span class="string">'filter1'</span>;
2760194     <span class="keyword">else</span>
2770195         vel_type_out{1}=<span class="string">'civ2'</span>; <span class="comment">%priority to civ2 for vector reading, civ1 as second priority</span>
2780196         vel_type_out{2}=<span class="string">'civ1'</span>;
2790197     <span class="keyword">end</span>
2800198 <span class="keyword">elseif</span> isequal(vel_type,<span class="string">'filter'</span>)
2810199         vel_type_out{1}=<span class="string">'filter2'</span>; <span class="comment">%priority to filter2 for scalar reading, filter1 as second</span>
2820200         vel_type_out{2}=<span class="string">'filter1'</span>;
2830201         <span class="keyword">if</span> ~testder
2840202             vel_type_out{3}=<span class="string">'civ1'</span>;<span class="comment">%civ1 as third priority if derivatives are not needed</span>
2850203         <span class="keyword">end</span>
2860204 <span class="keyword">elseif</span> testder
2870205     test_civ1=isequal(vel_type,<span class="string">'civ1'</span>)||isequal(vel_type,<span class="string">'interp1'</span>)||isequal(vel_type,<span class="string">'filter1'</span>);
2880206     <span class="keyword">if</span> test_civ1
2890207         vel_type_out{1}=<span class="string">'filter1'</span>; <span class="comment">%switch to filter for reading spatial derivatives</span>
2900208     <span class="keyword">else</span>
2910209         vel_type_out{1}=<span class="string">'filter2'</span>;
2920210     <span class="keyword">end</span>
2930211 <span class="keyword">else</span>   
2940212     vel_type_out{1}=vel_type;<span class="comment">%imposed velocity field</span>
2950213 <span class="keyword">end</span>
2960214 vel_type_out=vel_type_out';
2970215
2980216 <span class="comment">%determine names of netcdf variables to read</span>
2990217 var={<span class="string">'X'</span>,<span class="string">'Y'</span>,<span class="string">'Z'</span>,<span class="string">'U'</span>,<span class="string">'V'</span>,<span class="string">'W'</span>,<span class="string">'C'</span>,<span class="string">'F'</span>,<span class="string">'FF'</span>};
3000218 role={<span class="string">'coord_x'</span>,<span class="string">'coord_y'</span>,<span class="string">'coord_z'</span>,<span class="string">'vector_x'</span>,<span class="string">'vector_y'</span>,<span class="string">'vector_z'</span>,<span class="string">'ancillary'</span>,<span class="string">'warnflag'</span>,<span class="string">'errorflag'</span>};
3010219 units={<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,[],[],[]};
3020220 <span class="keyword">if</span> testder
3030221     var=[var {<span class="string">'DjUi(:,1,1)'</span>,<span class="string">'DjUi(:,1,2)'</span>,<span class="string">'DjUi(:,2,1)'</span>,<span class="string">'DjUi(:,2,2)'</span>}];
3040222     role=[role {<span class="string">'tensor'</span>,<span class="string">'tensor'</span>,<span class="string">'tensor'</span>,<span class="string">'tensor'</span>}];
3050223     units=[units {<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,<span class="string">'pixel'</span>,<span class="string">'pixel'</span>}];
3060224 <span class="keyword">end</span>
3070225 <span class="keyword">for</span> ilist=1:length(vel_type_out)
3080226     var=[var;<a href="#_sub2" class="code" title="subfunction varin=varname1(vel_type,FieldNames)">varname1</a>(vel_type_out{ilist},FieldNames)];
3090227 <span class="keyword">end</span>
3100228
3110229   
3120230 <span class="comment">%-------------------------</span>
3130231 <span class="comment">%determine  var names to read</span>
3140232 <span class="comment">%--------------------------------------</span>
3150233 <a name="_sub2" href="#_subfunctions" class="code">function varin=varname1(vel_type,FieldNames)</a>
3160234
3170235 testder=0;
3180236 C1=<span class="string">''</span>;
3190237 C2=<span class="string">''</span>;
3200238 <span class="keyword">for</span> ilist=1:length(FieldNames)
3210239     <span class="keyword">if</span> ~isempty(FieldNames{ilist})
3220240     <span class="keyword">switch</span> FieldNames{ilist}
3230241         <span class="keyword">case</span> <span class="string">'ima_cor'</span> <span class="comment">%image correlation corresponding to a vel vector</span>
3240242             C1=<span class="string">'vec_C'</span>;
3250243             C2=<span class="string">'vec2_C'</span>;
3260244         <span class="keyword">case</span> <span class="string">'error'</span>
3270245             C1=<span class="string">'vec_E'</span>;
3280246             C2=<span class="string">'vec2_E'</span>;
3290247         <span class="keyword">case</span> {<span class="string">'vort'</span>,<span class="string">'div'</span>,<span class="string">'strain'</span>}
3300248             testder=1;
3310249     <span class="keyword">end</span>
3320250     <span class="keyword">end</span>
3330251 <span class="keyword">end</span>     
3340252 <span class="keyword">switch</span> vel_type
3350253     <span class="keyword">case</span> <span class="string">'civ1'</span>
3360254         varin={<span class="string">'vec_X'</span>,<span class="string">'vec_Y'</span>,<span class="string">'vec_Z'</span>,<span class="string">'vec_U'</span>,<span class="string">'vec_V'</span>,<span class="string">'vec_W'</span>,C1,<span class="string">'vec_F'</span>,<span class="string">'vec_FixFlag'</span>};
3370255     <span class="keyword">case</span> <span class="string">'interp1'</span>
3380256         varin={<span class="string">'vec_patch_X'</span>,<span class="string">'vec_patch_Y'</span>,<span class="string">''</span>,<span class="string">'vec_patch0_U'</span>,<span class="string">'vec_patch0_V'</span>,<span class="string">''</span>,<span class="string">''</span>,<span class="string">''</span>,<span class="string">''</span>};
3390257     <span class="keyword">case</span> <span class="string">'filter1'</span>
3400258         varin={<span class="string">'vec_patch_X'</span>,<span class="string">'vec_patch_Y'</span>,<span class="string">''</span>,<span class="string">'vec_patch_U'</span>,<span class="string">'vec_patch_V'</span>,<span class="string">''</span>,<span class="string">''</span>,<span class="string">''</span>,<span class="string">''</span>};
3410259     <span class="keyword">case</span> <span class="string">'civ2'</span>
3420260         varin={<span class="string">'vec2_X'</span>,<span class="string">'vec2_Y'</span>,<span class="string">'vec2_Z'</span>,<span class="string">'vec2_U'</span>,<span class="string">'vec2_V'</span>,<span class="string">'vec2_W'</span>,C2,<span class="string">'vec2_F'</span>,<span class="string">'vec2_FixFlag'</span>};
3430261     <span class="keyword">case</span> <span class="string">'interp2'</span>
3440262         varin={<span class="string">'vec2_patch_X'</span>,<span class="string">'vec2_patch_Y'</span>,<span class="string">'vec2_patch_Z'</span>,<span class="string">'vec2_patch0_U'</span>,<span class="string">'vec2_patch0_V'</span>,<span class="string">'vec2_patch0_W'</span>,<span class="string">''</span>,<span class="string">''</span>,<span class="string">''</span>};
3450263     <span class="keyword">case</span> <span class="string">'filter2'</span>
3460264         varin={<span class="string">'vec2_patch_X'</span>,<span class="string">'vec2_patch_Y'</span>,<span class="string">'vec2_patch_Z'</span>,<span class="string">'vec2_patch_U'</span>,<span class="string">'vec2_patch_V'</span>,<span class="string">'vec2_patch0_W'</span>,<span class="string">''</span>,<span class="string">''</span>,<span class="string">''</span>};
3470265 <span class="keyword">end</span>
3480266 <span class="keyword">if</span> testder
3490267      <span class="keyword">switch</span> vel_type
3500268         <span class="keyword">case</span> <span class="string">'filter1'</span>
3510269             varin=[varin {<span class="string">'vec_patch_DUDX'</span>,<span class="string">'vec_patch_DVDX'</span>,<span class="string">'vec_patch_DUDY'</span>,<span class="string">'vec_patch_DVDY'</span>}];
3520270         <span class="keyword">case</span> <span class="string">'filter2'</span>
3530271             varin=[varin {<span class="string">'vec2_patch_DUDX'</span>,<span class="string">'vec2_patch_DVDX'</span>,<span class="string">'vec2_patch_DUDY'</span>,<span class="string">'vec2_patch_DVDY'</span>}];
3540272     <span class="keyword">end</span>   
3550273 <span class="keyword">end</span></pre></div>
356<hr><address>Generated on Fri 13-Nov-2009 11:17:03 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
357</body>
358</html>
Note: See TracBrowser for help on using the repository browser.