cleaning things and new interpolation to the original mesh
[JPSSData.git] / plot_svm.m
blob431e9f29d512326ff308c0b63f11d5c6c5211615
1 function plot_svm(varargin)
2 % Call:
3 % plot_results(svm_file)
4 % plot_results(svm_file,result_file)
5 % plot_results(svm_file,result_file,zoom)
7 % Description:
8 % Plots the results in the output file from Support Vector Machine
10 % Inputs:
11 %   svm_file     matlab output file from Support Vector Machine
12 %   result_file  matlab output file from preprocessing of satellite data
13 %   zoom         boolean if plot zoom or not (default false)
15 % Developed in Matlab 9.2.0.556344 (R2017a) on MACINTOSH.
16 % Angel Farguell (angel.farguell@gmail.com), 2019-03-21
17 %-------------------------------------------------------------------------
19 if nargin < 1 || nargin > 3
20    error('plot_svm(svm_file) or plot_svm(svm_file,result_file) or plot_svm(svm_file,result_file,zoom)');
21 end
22 svm_file = varargin{1};
23 r = load(svm_file);
24 uu = r.U;
25 uu(uu==max(uu(:))) = nan;
26 ll = r.L;
27 ll(ll==min(ll(:))) = nan;
28 low = false;
29 zoom = false;
30 if nargin == 2
31     result_file = varargin{2};
32     r2 = load(result_file);
33     tt = (r2.T==r2.time_scale_num(2)-r2.time_scale_num(1));
34     ll(tt) = nan;
35     low = true;
36     figure
37     scatter3(r.dxlon(~isnan(uu)), r.dxlat(~isnan(uu)), uu(~isnan(uu)), 'r.')
38     hold on
39     scatter3(r.dxlon(~isnan(ll)), r.dxlat(~isnan(ll)), ll(~isnan(ll)), 'g.')
40 end
41 if nargin == 3
42     zoom = varargin{3};
43 end
45 dd = .1;
46 bb = [min(r.dxlon(~isnan(uu)))-dd, max(r.dxlon(~isnan(uu)))+dd, min(r.dxlat(~isnan(uu)))-dd, max(r.dxlat(~isnan(uu)))+dd];
47 figure
48 S = repmat(5,sum(sum(~isnan(uu))),1);
49 C = repmat([1,0,0],sum(sum(~isnan(uu))),1);
50 h1 = scatter3(r.dxlon(~isnan(uu)), r.dxlat(~isnan(uu)), uu(~isnan(uu)), S, C, 'filled');
51 alpha = 0.7;
52 set(h1, 'MarkerEdgeAlpha', alpha, 'MarkerFaceAlpha', alpha)
53 hold on
54 if low
55     S = repmat(5,sum(sum(~isnan(ll))),1);
56     C = repmat([0.2,0.7,0.2],sum(sum(~isnan(ll))),1);
57     h2 = scatter3(r.dxlon(~isnan(ll)), r.dxlat(~isnan(ll)), ll(~isnan(ll)), S, C, 'filled');
58     alpha = 0.2;
59     set(h2, 'MarkerEdgeAlpha', alpha, 'MarkerFaceAlpha', alpha)
60     hold on
61 else
62     ml = logical((r.dxlon >= bb(1)).*(r.dxlon <= bb(2)).*(r.dxlat >= bb(3)).*(r.dxlat <= bb(4)));
63     S = repmat(5,sum(sum(ml)),1);
64     C = repmat([0.2,0.7,0.2],sum(sum(ml)),1);
65     h3 = scatter3(r.dxlon(ml), r.dxlat(ml), ll(ml), S, C, 'filled');
66     alpha = 0.2;
67     set(h3, 'MarkerEdgeAlpha', alpha, 'MarkerFaceAlpha', alpha)
68     hold on
69 end
70 contour3(r.fxlon,r.fxlat,r.Z,100)
71 xlim([bb(1),bb(2)])
72 ylim([bb(3),bb(4)])
73 title('Support-vector machine: Fire detections vs fire arrival time')
74 xlabel('Longitude')
75 ylabel('Latitude')
76 zlabel('Time (days)')
78 if zoom
79     kk = 10;
80     zz = [min(r.Z(:))-.5 min(r.Z(:))+1.5];
81     figure
82     scatter3(r.dxlon(~isnan(uu)), r.dxlat(~isnan(uu)), uu(~isnan(uu)), 'r.')
83     hold on
84     if low
85         scatter3(r.dxlon(~isnan(ll)), r.dxlat(~isnan(ll)), ll(~isnan(ll)), 'g.')
86         hold on
87     end
88     contour3(r.fxlon(1:kk:end,1:kk:end),r.fxlat(1:kk:end,1:kk:end),r.Z(1:kk:end,1:kk:end),500)
89     zlim(zz)
90     caxis(zz)
91     title('2 days envolving the ignition time')
92     xlabel('Longitude')
93     ylabel('Latitude')
94     zlabel('Time (days)')
95 end
97 figure
98 scatter3(r.dxlon(~isnan(uu)), r.dxlat(~isnan(uu)), uu(~isnan(uu)), 'r.')
99 hold on
100 contour3(r.fxlon,r.fxlat,r.Z,100)
101 title('Support-vector machine: Fire detections vs fire arrival time')
102 xlabel('Longitude')
103 ylabel('Latitude')
104 zlabel('Time (days)')