From bfdea95f447fdea7257d68863192c12b03396653 Mon Sep 17 00:00:00 2001 From: L_DelOff <51275636+LDelOff@users.noreply.github.com> Date: Sat, 12 Jun 2021 23:29:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B9=20=D1=81=D0=BA=D1=80?= =?UTF-8?q?=D0=B8=D0=BF=D1=82=20=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.m | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 Program.m diff --git a/Program.m b/Program.m new file mode 100644 index 0000000..7643013 --- /dev/null +++ b/Program.m @@ -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 \ No newline at end of file