Merge branch 'femwind' of github.com:janmandel/wrf-fire-matlab into femwind
[wrf-fire-matlab.git] / detection / read_fire_kml.m
blobb8857cc5e1452935afe16ffc3c89d69ca9799914
1 function v=read_fire_kml(filename)
2 % v=read_fire_kml(filename)
3 % Read fire detection kml file from FireMapper
5 % Input:  filename    first gunzip the kmz file to get kml
6 %        
7 % Output:
8 %         v.lon       longitude
9 %         v.lat       latitude
10 %         v.tim       detection time (days, use datestr to convert to a string)
11 %         v.res       resolution
13 disp(['reading fire KML file ',filename])
14 fid=fopen(filename);
15 if fid < 0
16     error(['could not find file ',filename])
17 end
18 k=0;
19 s=10000;
20 v.lat=zeros(s,1);
21 v.lon=zeros(s,1);
22 v.tim=zeros(s,1);
23 v.res=zeros(s,1);
24 while 1
25     fline = fgetl(fid);
26     if ~ischar(fline),
27         fclose(fid);
28         break
29     end % end of file
30     f=strfind(fline,'Fire Detection Centroid ');
31     
32     if ~isempty(f)
33         dline = fgetl(fid);
34         if ~ischar(dline),
35             error('missing next line'),
36         end % end of file
37          k=k+1;
38         flat=parse(dline,'<b>Latitude: </b>','<br/>');
39         flon=parse(dline,'<b>Longitude: </b>','<br/>');
40         fdate=parse(dline,'<b>Detection Date: </b>','<br/>');
41         ftime=parse(dline,'<b>Detection Time: </b>','<br/>');
42         sensor=parse(dline,'<b>Sensor: </b>','<br/>');
43         v.lat(k)=str2num(flat);
44         v.lon(k)=str2num(flon);
45         timestr=[fdate,' ',ftime];
46         v.time(k,:)=timestr;
47         v.tim(k)=datenum(timestr,'dd mmm yyyy HH:MM');
48         switch sensor
49             case 'NPP VIIRS'
50                 v.res(k)= 750;
51             case {'Terra MODIS','Aqua MODIS'}
52                 v.res(k)= 1000;
53             otherwise
54                 error(['unknown sensor ',sensor])
55         end
56     end
57 end
58 v.lat=v.lat(1:k);
59 v.lon=v.lon(1:k);
60 v.tim=v.tim(1:k);
61 end