Merge branch 'fixf'
[wrf-fire-matlab.git] / detect_ignition / new_likelihood / detection_probability.m
blob6fe6ef0df046324c2045a98be38b7b1e9fcd9fdd
1 function [ detect_prob ] = detection_probability(tign)\r
2 %[ detect_prob ] = detection_probability(pixel_heat)\r
3 %returns the probability of detection based on logistic curve of validation\r
4 %   studies\r
5 %inputs\r
6 %   tign : time since fire arrival\r
7 %       \r
8 %outputs\r
9 %   detect_prob : proability of satellite detection at that pixel\r
10 detect_prob = zeros(size(tign));\r
12 % use exponential increase in heat\r
13 heat_up = 0;\r
15 %for new burn model, set to zero for old model\r
16 % length of time heat is maximum, constant\r
17 const_time = 10;\r
19 %needed for computing with time instead of heat\r
20 decay = 0.3;\r
21 heat = zeros(size(tign));\r
22 m1 = tign < 0;\r
23 m2 = tign >= 0;\r
24 m3 = tign >= const_time;\r
27 if heat_up == 1\r
28     heat(m1) = exp(100*decay*tign(m1));\r
29     heat(m2) = 1;\r
30     tign_shift = tign-const_time;\r
31     heat(m3) = exp(-decay*tign_shift(m3));\r
32 else \r
33     heat(m2) = exp(-decay*tign(m2));\r
34 end\r
36 %figure,mesh(heat)\r
39 % constants \r
40 %a = 100;  %controls shape of curve  20 for patch\r
41 %b = 2.2; %controls false positive rate  2.2 for patch\r
43 %can comput false pos rate as \r
44 false_rate = 0.1;\r
45 b = log(false_rate/(1-false_rate));\r
47 %can compute a as\r
48 p = 0.30; % percent detection prob at time t\r
49 t = 24; % hours since fire arrival\r
50 h_t = exp(-decay*t);\r
51 a = (log(p/(1-p))-b)/h_t;\r
55 if heat_up == 1\r
56     % for exponential heat-up...\r
57     detect_prob = 1./(1+exp(-a*heat-b));\r
58 else\r
59     %without exponential heat-up\r
60     m1 = tign < 0;\r
61     m2 = tign >= 0;\r
62     detect_prob(m1) = 1./(1 + exp(-b));\r
63     detect_prob(m2) = 1./(1 + exp(-a*heat(m2) - b));\r
64 end\r
69 end\r