-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreateDataSetStatus_FunctionFigures.m
164 lines (147 loc) · 5.74 KB
/
createDataSetStatus_FunctionFigures.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
function [FileOutA,FileOutAz,FileOutB,FileOutC]=createDataSetStatus_FunctionFigures(WMO,GlobalDS)
if nargin==1
GlobalDS.Regionnombre{1}='GLOB';
GlobalDS.RegionnombreLargo{1}='Global';
GlobalDS.RegionmaxAT(1)=28;
GlobalDS.RegionminAT(1)=2;
GlobalDS.RegionmaxAS(1)=38.8;
GlobalDS.RegionminAS(1)=34;
GlobalDS.RegionmaxAO(1)=400;
GlobalDS.RegionminAO(1)=50;
GlobalDS.RegionmaxAP(1)=2000;
GlobalDS.RegionLonLimits{1}=[0 0 360 0];
GlobalDS.RegionLatLimits{1}=[90 -90 -90 90];
GlobalDS.POSBorder=2;
GlobalDS.Visible=1;
GlobalDS.DirOutGraph='./html/floats';
GlobalDS.DirArgoData='/Users/pvb/Dropbox/Oceanografia/Data/Argo';
end
%load data
fileFloat=fullfile(GlobalDS.DirArgoData,'Floats',num2str(WMO));
FloatData=load(fileFloat);
OneFloatData.julds=FloatData.HIDf.julds;
OneFloatData.lons=FloatData.HIDf.lons;
OneFloatData.lats=FloatData.HIDf.lats;
OneFloatData.pres=FloatData.HIDf.pres;
OneFloatData.tems=FloatData.HIDf.tems;
OneFloatData.sals=FloatData.HIDf.sals;
OneFloatData.ptms=FloatData.HIDf.ptems;
if isfield(FloatData.HIDf,'oxys') == 1
if ~isempty(FloatData.HIDf.oxys)
OneFloatData.oxys=FloatData.HIDf.oxys;
end
end
%load CTD data if exist
fileCTD0=fullfile(GlobalDS.DirArgoData,'Floats','CTD',strcat(num2str(WMO),'CTD0.mat'));
if exist(fileCTD0,'file')==2
fprintf('load CTD file, ')
OneFloatData.CTD0=load(fileCTD0);
end
%Geographical limits
Limits.lat_min=nanmin(OneFloatData.lats); Limits.lat_max=nanmax(OneFloatData.lats);
Limits.lon_min=nanmin(OneFloatData.lons); Limits.lon_max=nanmax(OneFloatData.lons);
%Region
iRegion=1;
for ii=size(GlobalDS.Regionnombre,2)
if inpolygon(Limits.lon_min,Limits.lat_min,GlobalDS.RegionLonLimits{ii},GlobalDS.RegionLatLimits{ii}) == 1 && inpolygon(Limits.lon_max,Limits.lat_max,GlobalDS.RegionLonLimits{ii},GlobalDS.RegionLatLimits{ii}) == 1
iRegion=ii;
end
end
Limits.lat_min=nanmin(OneFloatData.lats)-GlobalDS.POSBorder; Limits.lat_max=nanmax(OneFloatData.lats)+GlobalDS.POSBorder;
Limits.lon_min=nanmin(OneFloatData.lons)-GlobalDS.POSBorder; Limits.lon_max=nanmax(OneFloatData.lons)+GlobalDS.POSBorder;
%JulD
Limits.maxJ=nanmax(OneFloatData.julds(:))+5;
Limits.minJ=nanmin(OneFloatData.julds(:))-5;
%Pressure
Limits.maxP=ceil(nanmax(OneFloatData.pres(:))+.5);
if Limits.maxP>GlobalDS.RegionmaxAP(iRegion) || isnan(Limits.maxP) == 1 || Limits.maxP<1000
Limits.maxP=GlobalDS.RegionmaxAP(iRegion);
end
if FloatData.WMOf==6901246 || FloatData.WMOf==6901248 || FloatData.WMOf==3902126
%Deep Argo
Limits.maxP=4000;
end
if FloatData.WMOf==4902321 || FloatData.WMOf==4902322 || FloatData.WMOf==4902323 || FloatData.WMOf==4902324 || FloatData.WMOf==4902325 || FloatData.WMOf==4902326
%Deep Argo
Limits.maxP=6000;
end
%Limites en presion de las secciones
Limits.UpperPL=[-300 0];
Limits.DeepPL=[-Limits.maxP Limits.UpperPL(1)-1];
if iRegion == 3
Limits.UpperPL=[-150 0];
Limits.DeepPL=[-700 Limits.UpperPL(1)-1];
end
%Temperature
Limits.maxT=nanmax(OneFloatData.tems(:))+.5;
if Limits.maxT>GlobalDS.RegionmaxAT(iRegion) || isnan(Limits.maxT) == 1
Limits.maxT=GlobalDS.RegionmaxAT(iRegion);
end
Limits.minT=nanmin(OneFloatData.tems(:))-.5;
if Limits.minT<GlobalDS.RegionminAT(iRegion) || isnan(Limits.minT) == 1
Limits. minT=GlobalDS.RegionminAT(iRegion);
end
%Salinity
Limits.maxS=nanmax(OneFloatData.sals(:))+0.1;
if Limits.maxS>GlobalDS.RegionmaxAS(iRegion) || isnan(Limits.maxS) == 1
Limits.maxS=GlobalDS.RegionmaxAS(iRegion);
end
Limits.minS=nanmin(OneFloatData.sals(:))-0.1;
if Limits.minS<GlobalDS.RegionminAS(iRegion) || isnan(Limits.minS) == 1
Limits.minS=GlobalDS.RegionminAS(iRegion);
if Limits.minS>GlobalDS.RegionmaxAS(iRegion)
Limits.minS=GlobalDS.RegionmaxAS(iRegion)-1;
end
end
%Oxygen
if isfield(FloatData.HIDf,'oxys') == 1
if ~isempty(FloatData.HIDf.oxys)
Limits.maxO=nanmax(OneFloatData.oxys(:))+10;
if Limits.maxO>GlobalDS.RegionmaxAO(iRegion) || isnan(Limits.maxO) == 1
Limits.maxO=GlobalDS.RegionmaxAO(iRegion);
end
Limits.minO=nanmin(OneFloatData.oxys(:))-10;
if Limits.minO<GlobalDS.RegionminAO(iRegion) || isnan( Limits.minO) == 1
Limits.minO=GlobalDS.RegionminAO(iRegion);
end
end
end
%% FigureA - Map of trajectories, TS Diagram, T, S and O perfiles
hTraPosition=[0.05 0.54 0.38 0.38];
hTSPosition=[0.50 0.54 0.42 0.42];
figureA=figure('visible','off','clipping','on');
if GlobalDS.Visible==1
set(gcf,'visible','on')
end
createDataSetStatus_FunctionTrajectory(OneFloatData,GlobalDS,Limits,hTraPosition);
createDataSetStatus_FunctionTS(OneFloatData,GlobalDS,Limits,hTSPosition);
createDataSetStatus_FunctionProfiles(OneFloatData,Limits);
FileOutA=sprintf('%s/%sA.png',GlobalDS.DirOutGraph,deblank(num2str(FloatData.WMOf)));
orient portrait;print(gcf,'-dpng',FileOutA)
%Map of trajectories_Zoom
figureA_Zoom=figure('visible','off','clipping','on');
if GlobalDS.Visible==1
set(gcf,'visible','on')
end
createDataSetStatus_FunctionTrajectoryZoom(OneFloatData,GlobalDS,Limits);
FileOutAz=sprintf('%s/%sA_Zoom.png',GlobalDS.DirOutGraph,deblank(num2str(FloatData.WMOf)));
orient portrait;print(gcf,'-dpng',FileOutAz)
%% FigureB - Vertical Sections
figureB=figure('visible','off');
if GlobalDS.Visible==1
set(gcf,'visible','on')
end
createDataSetStatus_FunctionSections(OneFloatData,Limits);
FileOutB=sprintf('%s/%sB.png',GlobalDS.DirOutGraph,deblank(num2str(FloatData.WMOf)));
orient portrait;print(gcf,'-dpng',FileOutB)
%% FigureC - Technical data
figure03=figure('visible','off');
if GlobalDS.Visible==1
set(gcf,'visible','on')
end
createDataSetStatus_FunctionTechnicalData
FileOutC=sprintf('%s/%sC.png',GlobalDS.DirOutGraph,deblank(num2str(FloatData.WMOf)));
orient portrait;print(gcf,'-dpng',FileOutC)
if GlobalDS.Visible==0
close all
end