Автоматический скрипт подготовки данных

master
L_DelOff 2021-06-12 23:29:12 +03:00
parent db195a3307
commit bfdea95f44
1 changed files with 141 additions and 0 deletions

141
Program.m Normal file
View File

@ -0,0 +1,141 @@
%% By L_DelOff
% скрипт обеспечивает:
% 1. Закачку данных
% 2. Построение графиков
% 3. Дополнительный анализ
%% Начало
% Дано
param.k=1.2; % коэффициент для расчёта доверительного интервала
%% Подгрузка сведений об катаклизме
% N = 1 - Япония [11,3,2011]
% N = 2 - Чили [16,9,2015]
N = 1;
prev=10;
next=5;
load katalog
param.M=katalog(N).M; % магнитуда
% расположение эпицентра
param.fiA=katalog(N).fi; % широта
param.LA=katalog(N).L; % долгота
param.sattelite_available=katalog(N).sattelite; % доступные спутники
dd=katalog(N).day;
mm=katalog(N).month;
yyyy=katalog(N).year;
param.dates=day_array(dd,mm,yyyy,prev,next);
param.day_x=dd;
param.filename_report=[katalog(N).Location,'_', myformat(katalog(N).day,2)...
, myformat(katalog(N).month,2), myformat(katalog(N).year,4),'.mat'];
param.type_sensor='ssies';
for i=param.sattelite_available
for j=[10^(0.43*param.M) 1000]
param.sattelite_range=i;%15:18; % Выбор с какого спутника требуются данные
param.R_quake=j; % радиус действия относительно магнитуды,км (еще тыщу ставил)
param=analysis(param);
grafik(param,katalog(N))
end
end
function grafik(param,katalog)
win1=figure;
win1.Name=[katalog.Location,...
', ',myformat(katalog.day,2)...
,'.', myformat(katalog.month,2)...
,'.', myformat(katalog.year,4)...
,' [',num2str(katalog.fi),';',num2str(katalog.L),']',...
' M=',num2str(param.M),...
' R=',num2str(fix(param.R_quake)), 'км Sat: F-',num2str(param.sattelite_range)];
win1.Units='normalized';
win1.OuterPosition = [0 0 1 1];
t1=uicontrol(win1,'Style','text');
t1.Units='Normalized';
t1.Position = [0.1 0.98 0.8 0.02];
t1.String = win1.Name;
t1.FontSize = 12;
t1.BackgroundColor=[1 1 1];
XLim=[param.dates(1).day param.dates(end).day];
N_sat=findNsat(param.report,param.sattelite_range,param.R_quake);
ax1=subplot(2,2,1,'Parent',win1);
y=param.report.data(N_sat).RPA_HHeden;
explot(ax1,y,XLim,param)
title('H-He');
ax2=subplot(2,2,2,'Parent',win1);
y=param.report.data(N_sat).EP_Etemp;
explot(ax2,y,XLim,param)
title('E_{temp}');
ax3=subplot(2,2,3,'Parent',win1);
y=param.report.data(N_sat).RPA_O2den;
explot(ax3,y,XLim,param)
title('O_2');
ax4=subplot(2,2,4,'Parent',win1);
y=param.report.data(N_sat).EP_Eden;
explot(ax4,y,XLim,param)
title('E');
saveas(win1,[katalog.Location,...
'_', myformat(katalog.day,2)...
, myformat(katalog.month,2)...
, myformat(katalog.year,4)...
,'_R=', num2str(fix(param.R_quake)), '_F-', num2str(param.sattelite_range)],'bmp');
end
function N_sat=findNsat(report,f,R)
[~,b]=size(report.data);
N_sat=[];
for i=1:b
if report.data(i).N_sat==f
if report.data(i).R==R
N_sat=i;
end
end
end
end
function explot(ax,y,setXLim,param)
x=[];
for i=1:length(param.dates)
x(i)=param.dates(i).day;
end
plot(ax,x,y,'Color','k','Marker','o');
xticks(x)
N_sat=findNsat(param.report,param.sattelite_range,param.R_quake);
xtlabels={param.report.data(N_sat).date};
xticklabels(xtlabels{1})
xtickangle(45)
grid on
hold on
Q1=quantile(y,0.25);
Q2=quantile(y,0.5);
Q3=quantile(y,0.75);
L1=Q2-param.k*(Q3-Q1);
L2=Q2+param.k*(Q3-Q1);
XLim=ax.XLim;
plot(ax,XLim,[L1 L1],'Color','b','LineStyle','--');
plot(ax,XLim,[L2 L2],'Color','b','LineStyle','--');
plot(ax,XLim,[Q2 Q2],'Color','m','LineStyle','--');
YLim=ax.YLim;
plot(ax,[param.day_x param.day_x],YLim,'Color','r');
ax.XLim=setXLim;
end