Subir archivos a "/"

MatLab code to calculate the Hurst exponent from a picture
This commit is contained in:
Nicolas G. 2024-10-04 17:05:38 +00:00
parent 10310d6489
commit 0f396d2090
1 changed files with 81 additions and 0 deletions

81
SaturnRingsHurst.m Normal file
View File

@ -0,0 +1,81 @@
% Exponente de Hurst en anillos de Saturno
% Programa para estudiar exponente de Hurst y dimensión fractal de la estructura de anillos
% Trabajo de Tesis - UNLP
% Horacio Daniel Salomone
% Start
%Image reading
AS1=imread('PIA22418.jpg');
%Correct to a circle
image(AS1), axis image;
%Shows the figure
subplot(2,2,1);
imshow(AS1),title('Imágen Original-Cassini - Anillos de Saturno 5');
%Cuts the figure and shows the cut
AS2=imcrop;
subplot(2,2,2);
imshow(AS2),title('Imagen Recortada-Anillos de Saturno 5');
%Loop to get the grayscale profiles
%image size AS2
sz=size(AS2);
n=sz(1,1);
%Intensity profile
Perfil='Vectores Perfil Intensidad.txt';
fid=fopen(Perfil,'a+');
formatSpec='%9.5f\r\n';
%Int vectors
for i=1:n
Int=improfile(AS2,[1 1018],[1 (0+i)]);
%Recorta ceros del vector Int
Int(isnan(Int))=0;
%Int(Int==0)=[];
l=1;
while Int(l)==0
l=l+1;
end
L=length(Int);
r=1;
while Int(L-r)==0
r=r+1;
end
Int(L-r+1:L)=[];
Int(1:l)=[];
end
%Hurst exponent calculation
for i=1:120
m=floor(L/(2*i));
for j=1:i
r=Int(1+(j-1)*m:j*m);
M=mean(r);
x=(r-M);
V=cumsum(x);
R(j)=max(V)-min(V);
S(j)=std(r);
end
tau(i)=m;
RS(i)=mean(R./S);
end
%Linear regression to obtain Hurst
subplot (2,2,3);
plot(log10(tau),log10(RS),'+')
xlabel('log(\tau)','FontSize',12)
ylabel('log(R/S)','FontSize',12)
hold on
q=polyfit(log10(tau),log10(RS),1);
t=0.5:0.1:3;
y=q(1)*t+(q(2));
plot(t,y,'r','LineWidth',2)
%text(1,2,['y =' num2str(q(1)),' x ' num2str(q(2))],'FontSize',12)
hold off