Merge branch 'fixf'
[wrf-fire-matlab.git] / detect_ignition / new_likelihood / test5.m
blobd36c34622a486592d9253338e28d321a5d7a5abb
1 function rs = test5(test,like_spline)
3 %test5
4 close all
5 cone_slope = 10;
6 fire_cone = @(x,y) cone_slope*sqrt(( x.^2 + y.^2));
8 % if ~exist('like_spline')
9 %     load spline_data.mat;
10 %     [ls,fit1] = createFit(t,log_like);
11 % end
12 g = 100;
13 grid_size =2*g+1;
14 position = linspace(-10,10,grid_size);
15 [x,y]= meshgrid(position,position);
17 z = fire_cone(x,y);
19 fire_top = z > 100;
20 z(fire_top) = 100;
21 mesh(x,y,z);
22 hold on
25 xlabel('x');
28 slice_time = [47 49 51];
29 fires = zeros(size(x));
33 %test #1
34 if test == 1
35     fire_z = 49;
36     fire_y = 0;
37     fire_x = fire_z/10;
38     b = -10*(g+1)/g;
39     x_dex = (fire_z-b)/cone_slope;
40     scatter3(fire_x,fire_y,fire_z,'r*');
41     
42     fires(171,g) = 9;
43     fires(30:40,30:40) = 5;
44     tot = 0;
45     for i = 1:3
46         tot = 0;
47         input_time = slice_time(i) - z;
48         temp = like_spline(input_time(fires > 7));
49         tot = tot + sum(temp);
50         t1 = like_spline(input_time(fires < 1));
51         temp = log(1 - exp(1).^t1);
52         tot = tot + sum(temp)
53     end
54 end %test 1
57 % test 2
58 % move fire pixel across
59 if test == 2
60     input_time = slice_time(2) - z;
61     tots = zeros(1,grid_size);
62     for i = 1:grid_size
63         scatter3(x(g,i),y(g,i),slice_time(2),'r*');
64         t_mask = fires;
65         t_mask(g,i) = 9;
66         temp = like_spline(input_time(t_mask > 7));
67         tots(i) = tots(i) + sum(temp);
68         t1 = like_spline(input_time(t_mask < 1));
69         temp = log(1 - exp(1).^t1);
70         tots(i) = tots(i) + sum(temp);
71     end
72     hold off
73     figure,plot(x(g,:),tots);
74 end %test 2
76 if test == 3
77     contour3(x,y,z,[49 49],'k')
78     fires = 5*ones(size(x));
79     num_pts = 1000;
80     x_coords = 1+round(2*g*rand(1,num_pts));
81     y_coords = 1+round(2*g*rand(1,num_pts));
82     %figure,scatter(x_coords,y_coords);
83     %make fire mask
84     hold on
85     radius = slice_time(2)/10;
86     angle = linspace(0,2*pi);
87     perim = zeros(length(angle),2);
88     perim(:,1) = radius*cos(angle)';
89     perim(:,2) = radius*sin(angle)';
90     plot(perim(:,1),perim(:,2),'k')
91     
92     for i = 1:num_pts
93         u = x(x_coords(i),y_coords(i));
94         v = y(x_coords(i),y_coords(i));
95         zt = norm([u v]);
96         if abs(zt - radius) < 2 && zt < radius%49
97             fires(x_coords(i),y_coords(i)) = 9;
98             scatter(u,v,'r*');
99         else
100             if rand < 0.98
101                 fires(x_coords(i),y_coords(i)) = 0;
102                 scatter(u,v,'b');
103             else
104                 fires(x_coords(i),y_coords(i)) = 9;
105                 scatter(u,v,'r*');
106             end
107             
108         end
109     end
110     
111     num_slices = 41;
112     %times = linspace(min(z(:))+1,max(z(:))-1,num_slices);
113     times = linspace(20,70,num_slices);
114     tots = zeros(size(times));
115     for i = 1:num_slices
116         input_time = times(i) - z;
117         t_mask = fires;
118         temp = like_spline(input_time(t_mask > 7));
119         tots(i) = tots(i) + sum(temp);
120         t1 = like_spline(input_time(t_mask < 1));
121         temp = log(1 - exp(1).^t1);
122         tots(i) = tots(i) + sum(temp);
123     end
124     hold off
125     figure,plot(times,tots)
126     
127 end % test 3
130