• Non ci sono risultati.

98 Di seguito viene riportato il listato del programma in IDL: Appendice

N/A
N/A
Protected

Academic year: 2021

Condividi "98 Di seguito viene riportato il listato del programma in IDL: Appendice"

Copied!
9
0
0

Testo completo

(1)

Appendice

Di seguito viene riportato il listato del programma in IDL:

pro prodottonew ;prodotto tra immagine e pattern di campo common varia, x,y,z,a,tr

M0=double(1.26E-6) k=M0/(4.0*!dpi)

READ, 'inserisci il raggio delle spire, in millimetri ',input a=float(input)/1000.

print,'a=',a

READ, 'inserisci il valore della corrente, in Ampere ',input I=input

print,'I=',I

READ, 'inserisci la coordinata z, in millimetri ',input z=float(input)/1000 print,'z=',z Bvett=dblarr(256,256) xvett=dblarr(256) yvett=dblarr(256) tr=0.5 for w=1,255 do begin x=(1./256.)*w xvett[w]=100*x for p=1,255 do begin y=(1./256.)*p yvett[p]=100*y Bx1=k*I*(QSIMP('ICS1',0.0,!DPI/2,eps=1.E-3,/double)+QSIMP('ICS1',!DPI/2,!DPI,eps=1.E-3,/double)+$ QSIMP('ICS1',!DPI,(3./2)*!DPI,eps=1.E-3,/double)+QSIMP('ICS1',(3./2)*!DPI,2.*!DPI,eps=1.E-3,/double)) By1=k*I*(QSIMP('IPSILON1',0.0,!DPI/2,eps=1.E-3,/double)+QSIMP('IPSILON1',!DPI/2,!DPI,eps=1.E-3,/double)+$ QSIMP('IPSILON1',!DPI,(3./2)*!DPI,eps=1.E-3,/double)+QSIMP('IPSILON1',(3./2)*!DPI,2.*!DPI,eps=1.E-3,/double)) Bz1=k*I*(QSIMP('ZETA1',0.0,!DPI/2,eps=1.E-3,/double)+QSIMP('ZETA1',!DPI/2,!DPI,eps=1.E-3,/double)+$ QSIMP('ZETA1',!DPI,(3./2)*!DPI,eps=1.E-3,/double)+QSIMP('ZETA1',(3./2)*!DPI,2.*!DPI,eps=1.E-3,/double))

(2)

Bx=Bx1 By=By1 Bz=Bz1 Bvett[p,w]=SQRT(Bx^2+By^2+Bz^2) endfor endfor ;Bvett=Bvett[28:100,28:100] Bvett=Bvett/max(Bvett) aa=dblarr(256,256) ;fantoccio aa(1:254,1:254)=0 aa(20:234,20:234)=250 aa(70:184,70:184)=180 aa(120:136,120:136)=230 window,1 tv,aa Bvett=congrid(Bvett,512,512) ;campo Bvett1=Bvett(0:255,0:255) Bvett2=Bvett(0:255,256:511) Bvett3=Bvett(256:511,256:511) Bvett4=Bvett(256:511,0:255)

a1=aa*Bvett1 ;prodotto fantoccio campo1 a1=a1*255/max(a1)

window,2 pippo1=fix(a1)

tvscl,congrid(pippo1,256,256)

a2=aa*Bvett2 ;prodotto fantoccio campo2 a2=a2*255/max(a2)

window,3 pippo2=fix(a2)

tvscl,congrid(pippo2,256,256)

a3=aa*Bvett3 ;prodotto fantoccio campo3 a3=a3*255/max(a3)

window,4 pippo3=fix(a3)

tvscl,congrid(pippo3,256,256)

a4=aa*Bvett4 ;prodotto fantoccio campo4 a4=a4*255/max(a4)

window,5 pippo4=fix(a4)

(3)

window,6 contour,1.0E4*Bvett1,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett1,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot window,7 contour,1.0E4*Bvett2,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett2,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot window,8 contour,1.0E4*Bvett3,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett3,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot window,9 contour,1.0E4*Bvett4,xvett,yvett,nlevels=20,isotropic=1,/fill,xtitle='x(cm)',y title='y(cm)' contour,1.0E4*Bvett4,xvett,yvett,nlevels=20,isotropic=1,/follow,/overplot white=!p.color window,10 plot,xvett,a1[*,128],background=white,color=0,xtitle='dimensione immagine (pixel)',ytitle='intensità di segnale' noised=40*abs(randomn(seed,256,256))

ns1=(a1+noised) ;somma del rumore1 window,16

tvscl,ns1 iimage,ns1

ns2=a2+1.5*noised ;somma del rumore2 window,17

tvscl,ns2 iimage,ns2

ns3=a3+2*noised ;somma del rumore3 window,18

tvscl,ns3 iimage,ns3

ns4=a4+2.5*noised ;somma del rumore4 window,19

tvscl,ns4 iimage,ns4

ss1=dblarr(256,256) ;calcolo SOS ss1=ns1*ns1

(4)

ss2=ns2*ns2 ss3=dblarr(256,256) ss3=ns3*ns3 ss4=dblarr(256,256) ss4=ns4*ns4 sq=dblarr(256,256) sq=ss1+ss2+ss3+ss4 sos=dblarr(256,256) sos=sqrt(sq) window,15 tvscl,sos iimage,sos

ns1q=dblarr(256,256) ;SOS equalizzata ns1q=ns1*ns1 ns2q=dblarr(256,256) ns2q=ns2*ns2 ns3q=dblarr(256,256) ns3q=ns3*ns3 ns4q=dblarr(256,256) ns4q=ns4*ns4 nnss=dblarr(256,256) nnss=(ns1q+0.45*ns2q)+0.26*ns3q+0.17*ns4q) sose=dblarr(256,256) sose=sqrt(nnss) window,20 tvscl,sose iimage,sose

diff=dblarr(256,256) ;differenza tra sos e sos equalizzata diff=sos-sose

window,21 tvscl,diff

sma=smooth(ns1,20) ;filtro di smoothing sulla prima immagine

smb=smooth(ns2,20) ;filtro di smoothing sulla seconda immagine

smc=smooth(ns3,20) ;filtro di smoothing sulla terza immagine

(5)

smd=smooth(ns4,20) ;filtro di smoothing sulla quarta immagine sma=float(sma) smb=float(smb) smc=float(smc) smd=float(smd) window,22 wset=22 tvscl,sma iimage,sma window,23 wset=23 tvscl,smb window,24 wset=24 tvscl,smc window,25 wset=25 tvscl,smd smaq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

smaq[i,j]=sma[i,j]*sma[i,j] ;quadrato dell'immagine a smoothata (campo di s1)

endfor endfor

smbq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

smbq[i,j]=smb[i,j]*smb[i,j] ;quadrato dell'immagine b smoothata (campo di s2)

endfor endfor

smcq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

smcq[i,j]=smc[i,j]*smc[i,j] ;quadrato dell'immagine a smoothata (campo di s3)

endfor endfor

(6)

for i=0,255 do begin for j=0,255 do begin

smdq[i,j]=smd[i,j]*smd[i,j] ;quadrato dell'immagine a smoothata (campo di s4) endfor endfor num1=dblarr(256,256) num1=sma*ns1+smb*ns2+smc*ns3+smd*ns4 den1=sqrt(smaq+smbq)+smcq+smdq) risu1=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

if (den1[i,j] gt 0.0) then begin

risu1[i,j]=num1[i,j]/den1[i,j] ;formula SoS super end else begin

; ;fina[i,j]=a[i,j] endelse endfor endfor window,26 wset=26 tvscl,risu1 numeq=dblarr(256,256) numeq=sma*ns1+smb*ns2*0.24+smc*ns3*0.11+smd*ns4*0.069 den1=sqrt(smaq+smbq)+smcq+smdq) risueq=dblarr(256,256) for i=0,255 do begin for j=0,255 do begin

if (den1[i,j] gt 0.0) then begin

risueq[i,j]=numeq[i,j]/den1[i,j] ;formula SoS super equalizzata end else begin

; ;fina[i,j]=a[i,j] endelse endfor endfor window,27 wset=27 tvscl,risueq diff1=dblarr(256,256) diff1=risueq-risu1 window,28 wset=28 tvscl,diff1

(7)

xxvett=dblarr(256) for m=0,255 do begin xxvett[m]=m endfor white=!p.color window,29 wset=29 plot,xxvett,risu1[*,128],background=white,color=0,xtitle='dimensione immagine (pixel)',ytitle='intensità di segnale'

oplot,z[*,128],color=255 ;rossa oplot,risueq[*,128],color=255*255 ;celeste white=!p.color window,30 wset=30 p1=sma[45:211,128] p2=Bvett1[45:211,128] save,p1,p2 plot,xxvett,p1/max(p1),background=white,color=0,xtitle='dimensione immagine (pixel)',ytitle='intensità di segnale'

oplot,p2/max(p2),color=255*255 ;celeste

equ1=0.24 equ2=0.11

equ3=0.069 ;rapporto di equalizzazione lh=8 ;larghezza finestra di Hanning h=hanning(lh,lh,alpha=0.5) ;filtro di Hanning ns2=ns2*equ1

ns3=ns3*equ2

ns4=ns4*equ3 ;equalizzazione immagini ae=dblarr(256+lh,256+lh) be=dblarr(256+lh,256+lh) ce=dblarr(256+lh,256+lh) de=dblarr(256+lh,256+lh) ae[lh/2:255+lh/2,lh/2:255+lh/2]=ns1 ;zero-filling be[lh/2:255+lh/2,lh/2:255+lh/2]=ns2 ce[lh/2:255+lh/2,lh/2:255+lh/2]=ns3 de[lh/2:255+lh/2,lh/2:255+lh/2]=ns4 ahe=convol(ae,h) ;convoluzioni bhe=convol(be,h) che=convol(ce,h)

(8)

dhe=convol(de,h)

ah=ahe[lh/2:255+lh/2,lh/2:255+lh/2] ;immagini filtrate (campi delle bobine) window,27 tvscl,ah bh=bhe[lh/2:255+lh/2,lh/2:255+lh/2] window,28 tvscl,bh ch=che[lh/2:255+lh/2,lh/2:255+lh/2] window,29 tvscl,ch dh=dhe[lh/2:255+lh/2,lh/2:255+lh/2] window,30 tvscl,dh num2=dblarr(256,256) den2=dblarr(256,256) num2=ah*ns1+bh*ns2+ch*ns3+dh*ns4 den2=sqrt(ah*ah+bh*bh)+ch*ch+dh*dh) sup=dblarr(256,256)

for i=0,255 do begin for j=0,255 do begin

if (den2[i,j] gt 0.0) then begin

sup[i,j]=num2[i,j]/den2[i,j] ;formula SoS super equalizzata con Hanning endif endfor endfor window,31 tvscl,sup iimage,sup end function ICS1,T

common varia, x,y,z,a,tr

return, (a*z*cos(T))/((x-a*cos(T)-tr)^2+(y-a*sin(T)-tr)^2+z^2)^(3./2) end

function IPSILON1,T common varia, x,y,z,a,tr

return, (a*z*sin(T))/((x-a*cos(T)-tr)^2+(y-a*sin(T)-tr)^2+z^2)^(3./2) end

function ZETA1,T

(9)

return, (a^2-a*(y-tr)*sin(T)-a*(x-tr)*cos(T))/((x-a*cos(T)-tr)^2+(y-a*sin(T)-tr)^2+z^2)^(3./2)

Riferimenti

Documenti correlati

La rete fognaria delle acque bianca si integra alla rete fognante delle acque meteoriche della parte sud della bretella stradale che recapita le acque nella vasca di

In realtà, vi sono due categorie semantiche opposte a proposito di confine: la prima coppia è quella “frontiera-recinto” (aggressiva e conquistatrice); la seconda è

Available Open Access on Cadmus, European University Institute Research Repository.... ‘Teoriat hamekomot a merkazi’im vehageographia halsraelit: Merkhav, Shoah,

Sono presenti operatori con formazione sull’assistenza per ospiti disabili o con ridotta mobilità impegnati nel servizio in

[r]

lezione pratica in apiario presso Apiario Riserva Naturale Tevere-Farfa - ore 10:00-16:00 docenti: Emanuela Ferretti, Maria Cristina Corona, Antonella Chessa -

Si assuma l’ipotesi che la temperatura della parete vari solo in funzione del raggio r, pertanto si lavora nell’ipotesi di conduzione termica monodimensionale. A

Confermando in pieno la validità e l’applicazione, a regime, del modello di lavoro agile sperimentale previsto dall’accordo del 24 settembre 2020, alla luce