Skip to content

Commit

Permalink
v1.3.0 (Agregado ResultadoGRAF - Avanzado)
Browse files Browse the repository at this point in the history
  • Loading branch information
nestor-ld93 committed Sep 22, 2020
1 parent 733abd1 commit a4e88d7
Show file tree
Hide file tree
Showing 6 changed files with 2,838 additions and 1,310 deletions.
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@ Las salidas generadas por **SpectralSOURCE** son las siguientes:

## IMÁGENES PRINCIPALES (en KDE Plasma 5.19)

![app menu](https://lh3.googleusercontent.com/-4ctEGX_p5W0/XwpEfPhPx5I/AAAAAAAABHs/lvDD_9D9Cr8oDl-0zveYcZ_ye_ln67CfgCLcBGAsYHQ/h809/SpectralSOURCE_PyQt5_01.png "Interfaz gráfica en PyQt5 de SpectralSOURCE: Spectral")
![app menu](https://lh3.googleusercontent.com/-dCcVLp9dDVw/Xv5H499in4I/AAAAAAAABGI/oIu94dGon2otdcmMXlXjJBBMnfVjVFQ7ACLcBGAsYHQ/h809/SpectralSOURCE_PyQt5_02.png "Interfaz gráfica en PyQt5 de SpectralSOURCE: SOURCE")
![app menu](https://lh3.googleusercontent.com/-eHlAFbOYRu8/X2k_mpOUxzI/AAAAAAAABLs/xOujU6437BsNiurVKM9BHNZBjh03EohwQCLcBGAsYHQ/h809/SpectralSOURCE_PyQt5_01.png "Interfaz gráfica en PyQt5 de SpectralSOURCE: Spectral")
![app menu](https://lh3.googleusercontent.com/-fgcGzpxn1jE/X2k_msP1_8I/AAAAAAAABLw/h2Gz70N1cGsjIN9Po9DN5ljTuuM-bfEkQCLcBGAsYHQ/h809/SpectralSOURCE_PyQt5_02.png "Interfaz gráfica en PyQt5 de SpectralSOURCE: SOURCE")
![app menu](https://lh3.googleusercontent.com/-knDSFv9BLo0/X2k_mfiaPXI/AAAAAAAABLo/HB4L1ikK0VYjmnaKSitKG-54jYMbU8SmACLcBGAsYHQ/h809/SpectralSOURCE_PyQt5_03.png "Interfaz gráfica en PyQt5 de SpectralSOURCE: ResultadoGRAF - Avanzado")
![app menu](https://lh3.googleusercontent.com/-djVoGL9b4Ec/XyH71kGMjOI/AAAAAAAABIU/ATulrltTFwobK3YjrNVyZCFN4Mma0p_lQCLcBGAsYHQ/h864/Figura-2.png "Principales espectros de desplazamiento para el sismo de Arequipa del 23 de junio del 2001 - Perú")

## RECOMENDACIONES
- Utilizar registros en formato SEED (IRIS hasta el 2019). Si no es posible, utilizar archivos SAC más archivos de polos y zeros (IRIS desde el 2020).
- Utilizar registros de estaciones de banda ancha en la componente vertical (BHZ) de la red internacional IRIS a una distancia epicentral de 30°-90°.
- Utilizar señales con 1 min antes del primer arribo de la onda P y 5 min después de S.
- Utilizar una distribución de GNU/Linux con escritorio KDE Plasma 5.12 o superior.

## REQUISITOS MÍNIMOS
- rdseed 5.3.1 o superior (https://github.com/iris-edu-legacy/rdseed)
Expand All @@ -27,7 +29,7 @@ Las salidas generadas por **SpectralSOURCE** son las siguientes:
- MATLAB 8.5 (2015a)
- python3
- python3-pyqt5
- GNU Linux (Kernel 4.15) 64-bit [Se recomienda una distribución con KDE Plasma 5.12 o superior]
- GNU Linux (Kernel 4.15) 64-bit

## ¿CÓMO DESCARGAR?
- Para obtener la última versión estable, descargue desde la pestaña [[Releases](https://github.com/nestor-ld93/SpectralSOURCE/releases)].
Expand Down Expand Up @@ -72,3 +74,6 @@ Las salidas generadas por **SpectralSOURCE** son las siguientes:
- (v1.2.1) [29/07/2020] Los gráficos finales incluyen el valor del Azimuth para cada estación.
- (v1.2.1) [29/07/2020] Agregado Distancia epicentral (°) y Azimuth (°) en **[SALIDA_ESTACIONES].txt**.
- (v1.2.1) [29/07/2020] Si IRIS no proporciona un valor de magnitud (archivos SAC) será reemplazado por NaN.
- (v1.3.0) [29/09/2020] Mejora en el renderizado vectorial.
- (v1.3.0) [29/09/2020] 'ResultadoGRAF.m' es más personalizable.
- (v1.3.0) [29/09/2020] Añadida nueva pestaña: 'ResultadoGRAF - Avanzado'. Ahora es posible personalizar algunas opciones de los gráficos finales.
84 changes: 68 additions & 16 deletions SOURCE/ResultadoGRAF.m
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
%clear all, close all, clc
% ResultadoGRAF (v1.0)
% clear all, close all, clc
% ResultadoGRAF (v1.2)
% Grafica las imgs finales en PNG o EPS

%==========================================================================
%
%"+======================================================================+"
%"| SpectralSOURCE v1.0.0 |"
%"| SpectralSOURCE v1.3.0 |"
%"+======================================================================+"
%"| -Parte 2: SOURCE |"
%"| -Subparte 4: ResultadoGRAF.m |"
%"| -Ultima actualizacion: 20/03/2020 |"
%"| -Ultima actualizacion: 21/09/2020 |"
%"+----------------------------------------------------------------------+"
%"| -Copyright (C) 2020 Nestor Luna Diaz |"
%"+----------------------------------------------------------------------+"
Expand All @@ -32,13 +32,60 @@
%==========================================================================

%%%%%%%%%%%%%%%%%%Generar imagenes finales PNG o EPS%%%%%%%%%%%%%%%%%
n_plot = nx*ny; %Cantidad de graficos en una figura.
font_size = [titulo_size contenido_size ejes_size]; % Titulo, contenido, ejes.
linea_width = [grosor_fft grosor_curva]; % Pyy, ajuste.
nombre_ejes = {label_x, label_y};

%gen_graf = 1; %1 para generar archivos, 0 para no generar.
%tipo_graf = 'eps'; %eps o png.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%paper_size_W = 29.70; % cm.
%paper_size_L = 42.00; % cm.
%nx = 12; ny = 6;
%n_plot = nx*ny; %Cantidad de graficos en una figura.

%nombre_ejes = {'Frequency (Hz)', 'Amplitude (m/Hz)'};
%tipo_ejes = 2; % 1=subetiquetas, 2=general.
%font_size = [9.0 7.9 12]; % Titulo, contenido, ejes.
%grilla = 0; % 1=activar, 0=desactivar.
%resultados_num = 1; % 1=activar, 0=desactivar.
%show_fc = 0; % 1=activar, 0=desactivar.
%linea_width = [1.5 1.5]; % Pyy, ajuste.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%paper_size_W = 25.65; % cm.
%paper_size_L = 25.70; % cm.
%nx = 6; ny = 6; n_plot = nx*ny; %Cantidad de graficos en una figura.

%nombre_ejes = {'Frequency (Hz)', 'Amplitude (m/Hz)'};
%tipo_ejes = 2; % 1=subetiquetas, 2=general.
%font_size = [8.5 7.9 12]; % Titulo, contenido, ejes.
%grilla = 0; % 1=activar, 0=desactivar.
%resultados_num = 1; % 1=activar, 0=desactivar.
%show_fc = 0; % 1=activar, 0=desactivar.
%linea_width = [1.5 1.5]; % Pyy, ajuste.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%paper_size_W = 22.86; % cm.
%paper_size_L = 20.32; % cm.
%nx = 2; ny = 3; n_plot = nx*ny; %Cantidad de graficos en una figura.

%nombre_ejes = {'Frecuencia (Hz)', 'Amplitud (m/Hz)'};
%tipo_ejes = 1; % 1=subetiquetas, 2=general.
%font_size = [11 10 15]; % Titulo, contenido, ejes.
%grilla = 1; % 1=activar, 0=desactivar.
%resultados_num = 1; % 1=activar, 0=desactivar.
%show_fc = 0; % 1=activar, 0=desactivar.
%linea_width = [1.5 1.5]; % Pyy, ajuste.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % n=12x6; WxL=29.70x42.00; } Experimental
% % n= 2x3; WxL=22.86x20.32; } Equivalente en cm.

%%%%%%%%%%%%%%%%%%%%%Archivos de entrada y salida%%%%%%%%%%%%%%%%%%%%
fileID1 = fopen('[SALIDA_ESTACIONES].txt');
A = textscan(fileID1,'%f %s %s %s %f %f %f %f','headerlines',1);
fclose(fileID1);

datos = cell2mat(A(:,5:8));
M0 = datos(:,1);
fc = datos(:,2);
Expand All @@ -48,9 +95,8 @@
Delta_gr = Hipo(:,1); %Distancia epicentral en grados.
Azim_gr = Hipo(:,2); %Azimuth de estacion en grados.

i_fig = 1; %Contador de numero de figuras.
i_fig = 1; %Contador de numero de figuras.
i_plot = 1; %Contador de graficos en una figura (nx*ny como max).
nx = 2; ny = 3; n_plot = nx*ny; %Cantidad de graficos en una figura.
figure
for i=1:n_archivos
B = load(Lista_xy{i});
Expand All @@ -60,28 +106,33 @@
Pyy1 = Pyy.*q; %Correccion por atenuacion.
if i_plot <= n_plot
subGraficar1fcfinal(red{i},est{i},comp{i},f,Pyy1,M0(i),fc(i),...
Delta_gr(i),Azim_gr(i),i_plot,nx,ny)
Delta_gr(i),Azim_gr(i),i_plot,nx,ny,...
nombre_ejes,tipo_ejes,font_size,grilla,...
resultados_num,show_fc,linea_width)
else
if gen_graf == 1
if tipo_graf == 'png'
%%saveas(gcf,[Lista_xy,'.png'],'png')
fig = gcf;
fig.PaperUnits = 'inches';
fig.PaperPosition = [0 0 9 8];
set(fig, 'PaperUnits', 'centimeters');
set(fig, 'PaperPosition', [0 0 paper_size_W paper_size_L]);
print(['Figura-',num2str(i_fig),'.png'],'-dpng','-r0')
elseif tipo_graf == 'eps'
%%saveas(gcf,[Lista_xy,'.png'],'png')
fig = gcf;
fig.PaperUnits = 'inches';
fig.PaperPosition = [0 0 9 8];
set(fig,'renderer','painters');
set(fig, 'PaperUnits', 'centimeters');
set(fig, 'PaperPosition', [0 0 paper_size_W paper_size_L]);
print(['Figura-',num2str(i_fig),'.eps'],'-depsc2','-r0')
end
end

i_plot = 1;
figure
subGraficar1fcfinal(red{i},est{i},comp{i},f,Pyy1,M0(i),fc(i),...
Delta_gr(i),Azim_gr(i),i_plot,nx,ny)
Delta_gr(i),Azim_gr(i),i_plot,nx,ny,...
nombre_ejes,tipo_ejes,font_size,grilla,...
resultados_num,show_fc,linea_width)
i_fig = i_fig+1;
end
i_plot = i_plot+1;
Expand All @@ -92,14 +143,15 @@
if tipo_graf == 'png'
%%saveas(gcf,[Lista_xy,'.png'],'png')
fig = gcf;
fig.PaperUnits = 'inches';
fig.PaperPosition = [0 0 9 8];
set(fig, 'PaperUnits', 'centimeters');
set(fig, 'PaperPosition', [0 0 paper_size_W paper_size_L]);
print(['Figura-',num2str(i_fig),'.png'],'-dpng','-r0')
elseif tipo_graf == 'eps'
%%saveas(gcf,[Lista_xy,'.png'],'png')
fig = gcf;
fig.PaperUnits = 'inches';
fig.PaperPosition = [0 0 9 8];
set(fig,'renderer','painters');
set(fig, 'PaperUnits', 'centimeters');
set(fig, 'PaperPosition', [0 0 paper_size_W paper_size_L]);
print(['Figura-',num2str(i_fig),'.eps'],'-depsc2','-r0')
end
end
52 changes: 39 additions & 13 deletions SOURCE/subGraficar1fcfinal.m
Original file line number Diff line number Diff line change
@@ -1,32 +1,58 @@
function subGraficar1fcfinal(red,est,comp,f,Pyy1,M0,fc,Delta_gr,Azim_gr,n,nx,ny)
function subGraficar1fcfinal(red,est,comp,f,Pyy1,M0,fc,Delta_gr,Azim_gr,n,nx,ny,...
nombre_ejes,tipo_ejes,font_size,grilla,resultados_num,show_fc,linea_width)
% Graficador FFT final (1 fc) de ResultadoGRAF
% Plotea 06 graficos en una ventana.
%%%%% Creado por: Nestor Luna Diaz - 20 de febrero de 2019 %%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%Graficando%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%figure('Name',num2mstr(6))
txt = {strcat('M0=',' ',sprintf('%.2E',M0),' N.m'),...
strcat('fc=',' ',sprintf('%.2f',fc),' Hz'),...
strcat('Dist=',' ',sprintf('%.2f',Delta_gr),'°'),...
strcat('Azim=',' ',sprintf('%.2f',Azim_gr),'°')};
subplot(nx,ny,n), loglog(f,Pyy1,'r'), grid on
text(min(f)+1.5E-03,min(Pyy1)+1.0E-15,txt)
title({strcat(red,'.',est,'.',comp,' - P')})
ylabel ('Amplitud (m/Hz)'); xlabel('Frecuencia (Hz)')
subplot(nx,ny,n), loglog(f,Pyy1,'r','linewidth',linea_width(1))
if resultados_num == 1
if show_fc == 0
txt = {strcat('Dist=',' ',sprintf('%.2f',Delta_gr),'°'),...
strcat('Azim=',' ',sprintf('%.2f',Azim_gr),'°'),...
strcat('M0=',' ',sprintf('%.2E',M0),' N.m')};
end
if show_fc == 1
txt = {strcat('Dist=',' ',sprintf('%.2f',Delta_gr),'°'),...
strcat('Azim=',' ',sprintf('%.2f',Azim_gr),'°'),...
strcat('fc=',' ',sprintf('%.2f',fc),' Hz'),...
strcat('M0=',' ',sprintf('%.2E',M0),' N.m')};
end
text(min(f)+1.5E-03,min(Pyy1)+1.0E-15,txt,'fontsize',font_size(2))
end
title({strcat(red,'.',est,'.',comp,' - P')},'fontsize',font_size(1))
xlim([1.0E-03 5])
set(gca,'xtick',[1.0E-03,1.0E-02,1.0E-01,1.0])
if tipo_ejes == 1
ylabel (nombre_ejes(2)); xlabel(nombre_ejes(1))
end
if grilla == 1
grid on
end

%%%%%%%%%%%%%%%%%%Graficando rectas del modelo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Df = f(2)-f(1); %Intervalo de frecuencia.
nfc = floor(fc/Df)+1; %Ubicacion de la fc.
U0 = mean(Pyy1(1:nfc)); %Valor promedio de la parte plana del espectro.
text(fc,U0,'<--fc')
if resultados_num == 1
if show_fc == 1
text(fc,U0,'<--fc')
end
end

nlim = 512; %Ubicacion limite de f a considerar para graficar.
maxlimPyy1 = max(Pyy1(nlim-5:nlim)); %Amplitud max de 5 muestras antes.
hold on
loglog([f(2), fc],[U0, U0],'--','color','b','linewidth',1.2) %Graficando la recta promedio.
loglog([fc, f(nlim)],[U0, maxlimPyy1],'--','color','b','linewidth',1.2) %Graficando caida f^-2.
loglog([f(2), fc],[U0, U0],'--','color','b','linewidth',linea_width(2)) %Graficando la recta promedio.
loglog([fc, f(nlim)],[U0, maxlimPyy1],'--','color','b','linewidth',linea_width(2)) %Graficando caida f^-2.
hold off


if tipo_ejes == 2
han=axes('visible','off');
han.XLabel.Visible='on';
han.YLabel.Visible='on';
ylabel(han,{nombre_ejes{2};''},'fontsize',font_size(3));
xlabel(han,{'';nombre_ejes{1}},'fontsize',font_size(3));
end
end
Loading

0 comments on commit a4e88d7

Please sign in to comment.