misc
[wrffire.git] / other / Matlab / detection / cycles.m
blob040272f70f783d16137e41d09a8fb67b93dfd72f
1 base=datenum('2013-08-11 00:00:00');
2 num_cycles=5;
3 spinup_time=0.5*ones(1,num_cycles);
4 spinup_time(1)=23/24;
5 heads={'Observations from              ',...
6        'Observations to                ',...
7        'Next cycle restart at          ',...
8        'Next cycle replay until        ',...
9        'Next cycle end time            '};
10 start_cycle=input_num('starting cycle',1)
11 for i=start_cycle:num_cycles
12     start=base+i-1;
13     restart=start+1-spinup_time(i);
14     time_bounds(i,:)=[start,start+1-4e-6,restart,start+1,start+3];
15     for j=1:5,
16         fprintf('Cycle %i %s %s\n',i,heads{j},datestr(time_bounds(i,j),'dd-mmm-yyyy HH:MM:SS'))
17     end
18     wrfout{i}=['wrfout_d01_',datestr(start+2,'yyyy-mm-dd_HH:MM:SS')];
19     wrfrst{i}=['wrfrst_d01_',datestr(restart,'yyyy-mm-dd_HH:MM:SS')];
20     perimeter_time(i)=(time_bounds(i,4)-base)*24*3600;
21     fprintf('perimeter_time=%10.3f\n',perimeter_time(i))
22 end
23 for i=start_cycle:num_cycles
24     %savefile(wrfout{i})
25     w=read_wrfout_tign(wrfout{i});
26     % start, end observations; restart time, perimeter time
27     fprintf('%s %s\n','Reading fire arrival time from ',wrfout{i})
28     fprintf('%s %s\n','Writing modified time into     ',wrfrst{i})
29     for j=1:4,
30         fprintf('Cycle %i %s %s\n',i,heads{j},datestr(time_bounds(i,j),'dd-mmm-yyyy HH:MM:SS'))
31     end
32     fprintf('perimeter_time=%10.3f\n',perimeter_time(i))
33     p=detect_fit_level2(1,time_bounds(i,:),w)
34     %savefile(wrfrst{i})
35     for j=3:5,
36         fprintf('Cycle %i %s %s\n',i,heads{j},datestr(time_bounds(i,j),'dd-mmm-yyyy HH:MM:SS'))
37     end
38     fprintf('perimeter_time=%10.3f\n',perimeter_time(i))
39     command=sprintf('rm -f namelist.input; ln -s namelist.input_%i namelist.input',i);
40     q=sprintf('replace TIGN_G in %s and run\n %s 0/1',wrfrst{i},command);
41     y=input_num(q,1);
42     if y
43         ncreplace(wrfrst{i},'TIGN_G',p.spinup)
44         if system(command),
45             warning('command failed')
46         end
47     end
48     input('Run WRF-SFIRE and continue when done\n')
49 end