source: trunk/src/get_file_type.m @ 446

Last change on this file since 446 was 446, checked in by sommeria, 12 years ago

series rationalized. TO BE TESTED.

File size: 3.5 KB
RevLine 
[380]1%'get_file_type': determine info about a file (image, multimage, civdata,...) .
[376]2%------------------------------------------------------------------------
[380]3% [FileType,FileInfo,Object]=get_file_type(fileinput)
[376]4%
5% OUTPUT:
6% FileType: type of file
7% FileInfo: structure containing info on the file (case of images)
8% Object: in case of video
9%
10% INPUT:
11% fileinput: name, including path, of the file to analyse
[397]12function [FileType,FileInfo,VideoObject]=get_file_type(fileinput)
[376]13FileType='';
14FileInfo=[];
[397]15VideoObject=[];
[376]16[tild,tild,FileExt]=fileparts(fileinput);
17
18switch FileExt
19    case {'.civ','.log','.cmx','.cmx2','.txt','.bat'}
20        FileType='txt';
21    case '.fig'
22        FileType='figure';
23    case '.xml'
24        FileType='xml';
25    case '.xls'
26        FileType='xls';
27    otherwise
28        if ~isempty(FileExt)&& ~isempty(imformats(FileExt(2:end)))
29            try
30                FileType='image';
31                imainfo=imfinfo(fileinput);
32                if length(imainfo) >1 %case of image with multiple frames
33                    FileType='multimage';
[446]34                    FileInfo=imainfo{1};%take info from the first frame
[376]35                    FileInfo.NbFrame=length(imainfo);
[446]36                else
37                    FileInfo=imainfo;
[376]38                end
39            end
40        else
[386]41            error_nc=0;
[376]42            try
43                Data=nc2struct(fileinput,'ListGlobalAttribute','absolut_time_T0','Conventions',...
44                    'CivStage','patch2','fix2','civ2','patch','fix');
[387]45                if isfield(Data,'Txt') && ~isempty(Data.Txt)
[386]46                    error_nc=1;
47                else
48                    if ~isempty(Data.absolut_time_T0')
49                        FileType='civx'; % test for civx velocity fields
50                        if ~isempty(Data.patch2) && isequal(Data.patch2,1)
51                            FileInfo.CivStage=6;
52                        elseif ~isempty(Data.fix2) && isequal(Data.fix2,1)
53                            FileInfo.CivStage=5;
54                        elseif ~isempty(Data.civ2) && isequal(Data.civ2,1);
55                            FileInfo.CivStage=4;
56                        elseif ~isempty(Data.patch) && isequal(Data.patch,1);
57                            FileInfo.CivStage=3;
58                        elseif ~isempty(Data.fix) && isequal(Data.fix,1);
59                            FileInfo.CivStage=2;
60                        elseif ~isempty(Data.absolut_time_T0) && ~isempty(Data.hart)
61                            FileInfo.CivStage=1;
62                        end
63                    elseif strcmp(Data.Conventions,'uvmat/civdata')
64                        FileType='civdata'; % test for civx velocity fields
65                        FileInfo.CivStage=Data.CivStage;
66                    else
67                        FileType='netcdf';
[376]68                    end
69                end
[386]70            catch ME
71                error_nc=1;
[376]72            end
[386]73            if error_nc
[387]74                try
[397]75                    if exist('VideoReader.m','file')%recent version of Matlab
76                        VideoObject=VideoReader(fileinput);
77                        FileInfo.NumberOfFrames=get(VideoObject,'NumberOfFrames');
78                        FileType='video';
[435]79                    elseif exist('mmreader.m','file')% Matlab 2009a
80                        VideoObject=mmreader(fileinput);
81                        FileInfo.NumberOfFrames=get(VideoObject,'NumberOfFrames');
82                        FileType='mmreader';
[397]83                    end             
[387]84                end
[376]85            end
86        end
87end
Note: See TracBrowser for help on using the repository browser.