Changeset 1147
- Timestamp:
- May 29, 2024, 7:08:52 PM (5 months ago)
- Location:
- trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/series.m
r1144 r1147 495 495 set(handles.InputTable,'Data',InputTable) 496 496 browse_data(oldfile,'on','on'); % open the GUI browse_data to get select a campaign dir, experiment and device 497 % NbLines=numel(OutPut.Experiment)*numel(OutPut.DataSeries); 498 % icount=0; 499 % for iexp=1:numel(OutPut.Experiment) 500 % for idevice=1:numel(OutPut.DataSeries) 501 % icount=icount+1; 502 % InputTable{icount,1}=fullfile(OutPut.Campaign,OutPut.Experiment{iexp}); 503 % InputTable{icount,2}=OutPut.DataSeries{idevice}; 504 % if isempty(InputTable{icount,3}) 505 % if icount>1 506 % InputTable{icount,3}=InputTable{icount-1,3}; 507 % else 508 % InputTable{icount,3}=''; 509 % end 510 % end 511 % if isempty(InputTable{icount,4}) 512 % if icount>1 513 % InputTable{icount,4}=InputTable{icount-1,4}; 514 % else 515 % InputTable{icount,4}=''; 516 % end 517 % end 518 % if isempty(InputTable{icount,5}) 519 % if icount>1 520 % InputTable{icount,5}=InputTable{icount-1,5}; 521 % else 522 % InputTable{icount,5}=''; 523 % end 524 % end 525 % end 526 % end 527 % if size(InputTable,1)>icount 528 % InputTable(icount+1:size(InputTable,1),:)=[]; 529 % end 530 %REFRESH_Callback(hObject, eventdata, handles) 531 532 % -------------------------------------------------------------------- 533 % function MenuCampaign_Callback(hObject, eventdata, handles) 534 % % -------------------------------------------------------------------- 535 % 536 % OutPut=browse_data(get(hObject,'Label'),'on','on'); % open the GUI browse_data to get select a campaign dir, experiment and device 537 % if ~isfield(OutPut,'Campaign') 538 % return 539 % end 540 % NbLines=numel(OutPut.Experiment)*numel(OutPut.DataSeries); 541 % icount=0; 542 % InputTable=get(handles.InputTable,'Data'); 543 % for iexp=1:numel(OutPut.Experiment) 544 % for idevice=1:numel(OutPut.DataSeries) 545 % icount=icount+1; 546 % InputTable{icount,1}=fullfile(OutPut.Campaign,OutPut.Experiment{iexp}); 547 % InputTable{icount,2}=OutPut.DataSeries{idevice}; 548 % if isempty(InputTable{icount,3}) 549 % if icount>1 550 % InputTable{icount,3}=InputTable{icount-1,3}; 551 % else 552 % InputTable{icount,3}=''; 553 % end 554 % end 555 % if isempty(InputTable{icount,4}) 556 % if icount>1 557 % InputTable{icount,4}=InputTable{icount-1,4}; 558 % else 559 % InputTable{icount,4}=''; 560 % end 561 % end 562 % if isempty(InputTable{icount,5}) 563 % if icount>1 564 % InputTable{icount,5}=InputTable{icount-1,5}; 565 % else 566 % InputTable{icount,5}=''; 567 % end 568 % end 569 % end 570 % end 571 % if size(InputTable,1)>icount 572 % InputTable(icount+1:size(InputTable,1),:)=[]; 573 % end 574 % set(handles.InputTable,'Data',InputTable) 575 % REFRESH_Callback(hObject, eventdata, handles) 497 576 498 577 499 … … 3057 2979 set(handles.FieldName,'Value',2) % set menu to 'velocity 3058 2980 end 3059 % if ~strcmp(GetFieldData.FieldOption,'civdata...')3060 % TimeNameStr=GetFieldData.Time.SwitchVarIndexTime;3061 % switch TimeNameStr3062 % case 'file index'3063 % set(handles.TimeName,'String','');3064 % case 'attribute'3065 % set(handles.TimeName,'String',['att:' GetFieldData.Time.TimeName]);3066 % case 'variable'3067 % set(handles.TimeName,'String',['var:' GetFieldData.Time.TimeName])3068 % set(handles.NomType,'String','*')3069 % set(handles.RootFile,'String',[get(handles.RootFile,'String') get(handles.FileIndex,'String')])% A VERIFIER !!!!!!3070 % set(handles.FileIndex,'String','')3071 % ParamIn.TimeVarName=GetFieldData.Time.TimeName;3072 % case 'matrix_index'3073 % set(handles.TimeName,'String',['dim:' GetFieldData.Time.TimeName]);3074 % set(handles.NomType,'String','*')3075 % set(handles.RootFile,'String',[get(handles.RootFile,'String') get(handles.FileIndex,'String')])3076 % set(handles.FileIndex,'String','')3077 % ParamIn.TimeDimName=GetFieldData.Time.TimeName;3078 % end3079 % end3080 2981 set(handles.FieldName_1,'Value',1) 3081 2982 set(handles.FieldName_1,'String',[FieldList; {'add_field...'}]); … … 3264 3165 function CheckMask_Callback(hObject, eventdata, handles) 3265 3166 3167 3266 3168 if get(handles.CheckMask,'Value') 3267 InputTable=get(handles.InputTable,'Data'); 3268 nbview=size(InputTable,1); 3269 MaskTable=cell(nbview,1); % default 3270 ListMask=cell(nbview,1); % default 3271 MaskData=get(handles.MaskTable,'Data'); 3272 MaskData(size(MaskData,1):nbview,1)=cell(size(MaskData,1):nbview,1); % complement if undefined lines 3273 for iview=1:nbview 3274 ListMask{iview,1}=num2str(iview); 3275 RootPath=InputTable{iview,1}; 3276 if ~isempty(RootPath) 3277 if isempty(MaskData{iview}) 3278 SubDir=InputTable{iview,2}; 3279 MaskPath=fullfile(RootPath,[regexprep(SubDir,'\..*','') '.mask']); % take the root part of SubDir, before the first dot '.' 3280 if exist(MaskPath,'dir') 3281 ListStruct=dir(MaskPath); % look for a mask file 3282 ListCells=struct2cell(ListStruct); % transform dir struct to a cell arrray 3283 check_dir=cell2mat(ListCells(4,:)); % =1 for directories, =0 for files 3284 ListFiles=ListCells(1,:); % list of file and dri names 3285 ListFiles=ListFiles(~check_dir); % list of file names (excluding dir) 3286 mdetect=0; 3287 if ~isempty(ListFiles) 3288 for ifile=1:numel(ListFiles) 3289 [tild,tild,MaskFile{ifile},i1_series,i2_series,j1_series,j2_series,MaskNomType,MaskFileType]=find_file_series(MaskPath,ListFiles{ifile},0); 3290 if strcmp(MaskFileType,'image') && isempty(i2_series) && isempty(j2_series) 3291 mdetect=1; 3292 MaskName=ListFiles{ifile}; 3293 end 3294 if ~strcmp(MaskFile{ifile},MaskFile{1}) 3295 mdetect=0; % cancel detection test in case of multiple masks, use the brower for selection 3296 break 3297 end 3298 end 3299 end 3300 if mdetect==1 3301 MaskName=fullfile(MaskPath,'mask_1.png'); 3302 else 3303 MaskName=uigetfile_uvmat('select a mask file:',MaskPath,'image'); 3304 end 3305 else 3306 MaskName=uigetfile_uvmat('select a mask file:',RootPath,'image'); 3307 end 3308 MaskTable{iview,1}=MaskName ; 3309 ListMask{iview,1}=num2str(iview); 3310 end 3169 set(handles.DeleteMask,'Visible','on') 3170 Param=read_GUI_series(handles); % displayed parameters 3171 NbView=size(Param.InputTable,1); 3172 MaskTable=cell(NbView,2); 3173 3174 RootPath=Param.InputTable{1,1}; 3175 first_j=[];% note that the function will propose to cover the whole range of indices 3176 if isfield(Param.IndexRange,'first_j'); first_j=Param.IndexRange.first_j; end 3177 last_j=[]; 3178 if isfield(Param.IndexRange,'last_j'); last_j=Param.IndexRange.last_j; end 3179 PairString=''; 3180 if isfield(Param.IndexRange,'PairString'); PairString=Param.IndexRange.PairString; end 3181 [i1,i2,j1,j2] = get_file_index(Param.IndexRange.first_i,first_j,PairString); 3182 %checkmask=zeros(NbView,1); 3183 for iview=1:NbView 3184 checkmask=0; 3185 FirstFileName=fullfile_uvmat(Param.InputTable{iview,1},Param.InputTable{iview,2},Param.InputTable{iview,3},... 3186 Param.InputTable{iview,5},Param.InputTable{iview,4},i1,i2,j1,j2); 3187 Data=nc2struct(FirstFileName); 3188 if isfield(Data,'Civ2_Mask') 3189 MaskTable{iview,1}=Data.Civ2_Mask; 3190 checkmask=1; 3191 end 3192 if ~checkmask 3193 MaskTable{iview,1}=uigetfile_uvmat('select a mask file:',Param.InputTable{iview,1},'image'); 3194 end 3195 end 3196 for iview=1:NbView 3197 [Path,Name]=fileparts(MaskTable{iview,1}); 3198 Name=regexprep(Name,'_\d+',''); 3199 maskfiles=dir(fullfile(Path,[Name '_*.png']));%look for mask files 3200 if ~isempty(maskfiles) 3201 for ilist=1:numel(maskfiles) 3202 r=regexp(maskfiles(ilist).name,'_(?<num1>\d+)','names');%look for burst pairs 3203 index(ilist)=str2double(r.num1); 3204 end 3205 MaskTable{iview,2}=max(index); 3311 3206 end 3312 3207 end 3313 3208 set(handles.MaskTable,'Data',MaskTable) 3314 set(handles.MaskTable,'Visible','on') 3315 set(handles.MaskBrowse,'Visible','on') 3316 set(handles.ListMask,'Visible','on') 3317 set(handles.ListMask,'String',ListMask) 3318 set(handles.ListMask,'Value',1) 3319 else 3320 set(handles.MaskTable,'Visible','off') 3321 set(handles.MaskBrowse,'Visible','off') 3322 set(handles.ListMask,'Visible','off') 3323 end 3324 3325 %------------------------------------------------------------------------ 3326 % --- Executes on button press in MaskBrowse. 3327 %------------------------------------------------------------------------ 3328 function MaskBrowse_Callback(hObject, eventdata, handles) 3329 3330 InputTable=get(handles.InputTable,'Data'); 3331 iview=get(handles.ListMask,'Value'); 3332 RootPath=InputTable{iview,1}; 3333 MaskName=uigetfile_uvmat('select a mask file:',RootPath,'image'); 3334 if ~isempty(MaskName) 3335 MaskTable=get(handles.MaskTable,'Data'); 3336 MaskTable{iview,1}=MaskName ; 3337 set(handles.MaskTable,'Data',MaskTable) 3338 end 3209 set(handles.CheckMask,'Value',0) 3210 end 3211 % 3212 % if ~isempty(NewMask) 3213 % if isempty(MaskList) 3214 % MaskList={NewMask}; 3215 % else 3216 % MaskList={MaskList;NewMask}; 3217 % end 3218 % set(handles.Mask,'String',MaskList) 3219 % end 3220 % end 3221 % % MaskTable=cell(nbview,1); % default 3222 % % ListMask=cell(nbview,1); % default 3223 % % MaskData=get(handles.MaskTable,'Data'); 3224 % % MaskData(size(MaskData,1):nbview,1)=cell(size(MaskData,1):nbview,1); % complement if undefined lines 3225 % for iview=1:nbview 3226 % ListMask{iview,1}=num2str(iview); 3227 % RootPath=InputTable{iview,1}; 3228 % if ~isempty(RootPath) 3229 % if isempty(MaskData{iview}) 3230 % SubDir=InputTable{iview,2}; 3231 % MaskPath=fullfile(RootPath,[regexprep(SubDir,'\..*','') '.mask']); % take the root part of SubDir, before the first dot '.' 3232 % if exist(MaskPath,'dir') 3233 % ListStruct=dir(MaskPath); % look for a mask file 3234 % ListCells=struct2cell(ListStruct); % transform dir struct to a cell arrray 3235 % check_dir=cell2mat(ListCells(4,:)); % =1 for directories, =0 for files 3236 % ListFiles=ListCells(1,:); % list of file and dri names 3237 % ListFiles=ListFiles(~check_dir); % list of file names (excluding dir) 3238 % mdetect=0; 3239 % if ~isempty(ListFiles) 3240 % for ifile=1:numel(ListFiles) 3241 % [tild,tild,MaskFile{ifile},i1_series,i2_series,j1_series,j2_series,MaskNomType,MaskFileType]=find_file_series(MaskPath,ListFiles{ifile},0); 3242 % if strcmp(MaskFileType,'image') && isempty(i2_series) && isempty(j2_series) 3243 % mdetect=1; 3244 % MaskName=ListFiles{ifile}; 3245 % end 3246 % if ~strcmp(MaskFile{ifile},MaskFile{1}) 3247 % mdetect=0; % cancel detection test in case of multiple masks, use the brower for selection 3248 % break 3249 % end 3250 % end 3251 % end 3252 % if mdetect==1 3253 % MaskName=fullfile(MaskPath,'mask_1.png'); 3254 % else 3255 % MaskName=uigetfile_uvmat('select a mask file:',MaskPath,'image'); 3256 % end 3257 % else 3258 % MaskName=uigetfile_uvmat('select a mask file:',RootPath,'image'); 3259 % end 3260 % MaskTable{iview,1}=MaskName ; 3261 % ListMask{iview,1}=num2str(iview); 3262 % end 3263 % end 3264 % end 3265 % set(handles.MaskTable,'Data',MaskTable) 3266 % set(handles.MaskTable,'Visible','on') 3267 % set(handles.MaskBrowse,'Visible','on') 3268 % set(handles.ListMask,'Visible','on') 3269 % set(handles.ListMask,'String',ListMask) 3270 % set(handles.ListMask,'Value',1) 3271 3272 3339 3273 3340 3274 %------------------------------------------------------------------------ … … 3535 3469 ColumnWidth=num2cell(ColumnWidth); 3536 3470 set(handles.InputTable,'ColumnWidth',ColumnWidth) 3471 3472 %% MaskTable 3473 set(handles.MaskTable,'Unit','pixel') 3474 Pos=get(handles.MaskTable,'Position'); 3475 set(handles.MaskTable,'Unit','normalized') 3476 ColumnWidth=round([0.9 0.1]*(Pos(3)-52)); 3477 ColumnWidth=num2cell(ColumnWidth); 3478 set(handles.MaskTable,'ColumnWidth',ColumnWidth) 3537 3479 3538 3480 %% MinIndex_j and MaxIndex_i … … 4019 3961 4020 3962 4021 function Mask_Callback(hObject, eventdata, handles) 4022 % hObject handle to Mask (see GCBO) 4023 % eventdata reserved - to be defined in a future version of MATLAB 4024 % handles structure with handles and user data (see GUIDATA) 4025 4026 % Hints: get(hObject,'String') returns contents of Mask as text 4027 % str2double(get(hObject,'String')) returns contents of Mask as a double 3963 % --- Executes on button press in DeleteMask. 3964 function DeleteMask_Callback(hObject, eventdata, handles) 3965 set(handles.MaskTable,'Data',{}) -
trunk/src/series/civ_input.m
r1143 r1147 268 268 end 269 269 else %case of netcdf file opening, start with the stage read in the file if the input file is being refreshed 270 if isequal(get(hhseries.REFRESH,'BackgroundColor'),[1 1 0]) &&...271 ~(isfield(Param,'ActionInput') && isfield(Param.ActionInput,'ConfigSource'))270 % if isequal(get(hhseries.REFRESH,'BackgroundColor'),[1 1 0]) &&... 271 % ~(isfield(Param,'ActionInput') && isfield(Param.ActionInput,'ConfigSource')) 272 272 for index = 1:min(ind_opening,5) 273 273 set(handles.(ListOptions{index}),'value',0) 274 274 fill_civ_input(Data,handles); %fill civ_input with the parameters retrieved from an input Civ file 275 275 end 276 if isempty(FileInfo) 277 FileInfo.FileName=''; 278 end 276 279 set(handles.ConfigSource,'String',FileInfo.FileName); 277 280 set(handles.(ListOptions{min(ind_opening+1,6)}),'value',1) … … 280 283 end 281 284 checkrefresh=1; 282 end285 % end 283 286 if ind_opening>=3 284 287 set(handles.CheckCiv3,'Visible','on')% make visible the switch 'iterate/repet' for Civ2. -
trunk/src/series/civ_series.m
r1146 r1147 53 53 path_series=fileparts(which('series')); 54 54 addpath(fullfile(path_series,'series')) 55 56 55 57 Data=civ_input(Param);% introduce the civ parameters using the GUI civ_input 56 58 %Data=civ_input_App(Param);% introduce the civ parameters using the GUI civ_input -
trunk/src/series/merge_proj.m
r1137 r1147 232 232 end 233 233 234 %% mask (TODO: case of multilevels)235 MaskData=cell(NbView,1);236 if Param.CheckMask237 if ischar(Param.MaskTable)% case of a single mask (char chain)238 Param.MaskTable={Param.MaskTable};239 end240 for iview=1:numel(Param.MaskTable)241 if exist(Param.MaskTable{iview},'file')242 [MaskData{iview},tild,errormsg] = read_field(Param.MaskTable{iview},'image');243 if ~isempty(transform_fct) && nargin(transform_fct)>=2244 MaskData{iview}=transform_fct(MaskData{iview},XmlData{iview});245 end246 end247 end248 end249 234 250 235 %% Set field names and velocity types … … 319 304 %% transform the input field iview (e.g; phys) if requested (no transform involving two input fields at this stage) 320 305 if ~isempty(transform_fct)&& checksub==0 321 checksub=nargin(transform_fct);322 306 if nargin(transform_fct)>=2 323 307 Data{iview}=transform_fct(Data{iview},XmlData{iview}); … … 345 329 346 330 %% mask 347 if Param.CheckMask && ~isempty(MaskData{iview}) 348 [Data{iview},errormsg]=mask_proj(Data{iview},MaskData{iview}); 331 if Param.CheckMask % introduce multilevel mask like for civ 332 NbSlice=Param.MaskTable{iview,2}; 333 [RootPath_mask,SubDir_mask,RootFile_mask,i1_mask,i2_mask,j1_mask,j2_mask,Ext_mask]=fileparts_uvmat(Param.MaskTable{iview,1}); 334 i1_mask=mod(i1-1,NbSlice)+1; 335 maskname=fullfile_uvmat(RootPath_mask,SubDir_mask,RootFile_mask,Ext_mask,'_1',i1_mask); 336 if ~exist(maskname,'file') 337 maskname=Param.MaskTable{iview,1}; 338 end 339 [MaskData,~,errormsg] = read_field(maskname,'image'); 340 if ~isempty(transform_fct) && nargin(transform_fct)>=2 341 MaskData=transform_fct(MaskData,XmlData{iview}); 342 end 343 if ~isempty(MaskData) 344 [Data{iview},errormsg]=mask_proj(Data{iview},MaskData); 345 end 349 346 end 350 347 end
Note: See TracChangeset
for help on using the changeset viewer.