function plot_powerspectrum_ff,PowerFileName,SOARPowerFileNames,PlotStyle,$ DeltaX,PhaseDim,ApDim,ApNum,Ro, ParamStr,$ PostScriptDir white='FFFFFF'x black='000000'x red='FF0000'x If plotstyle eq 0 then set_plot,'x' Dates=['10','11','12'] ;*****************************************************SIMULATION ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ readcol,PowerFileName,$ XPower,YPower,XPhasePower,$ YPhasePower,FrameELow,FrameEHigh,$ format='f,f,f,f,f,f' NumDataVals=N_Elements(XPower) DataXPower = Fltarr(NumDataVals,3) DataYPower = Fltarr(NumDataVals,3) DataEllipHigh = Fltarr(NumDataVals,3) DataEllipLow = Fltarr(NumDataVals,3) TotalLength=PhaseDim*DeltaX ;Total Length of Screen in meters ScreenStr=0.1517*(TotalLength/ro)^(5./6)*.5e-6/(2*!pi) KMax=floor(float(PhaseDim)/2) common func_power_spec, KVals, PhaseXpower, PhaseYpower PhaseXPower=XPhasePower PhaseYPower=YPhasePower FreqSpacing=1./((PhaseDim)*ApNum*DeltaX) KVals=FreqSpacing*(findgen(PhaseDim/2)+1) rs=findgen(2) rs=amoeba(1.0e-24,scale=[40,.05],p0=[ScreenStr^2,-11./3],$ function_value=fval,$ function_name='fit_power_spectrum_func',ncalls=tries,$ nmax=10000) plot,KVals,PhaseXPower,title='Simulation',$ psym=2,xrange=[0,max(kvals)],$ color=black,background=white,/normal,$ symsize=2,/ylog oplot,KVals,PhaseYPower,psym=1,color=black,symsize=2 if rs(0) ne -1 then oplot,KVals,rs(0)*kvals^rs(1),color=black,linestyle=3 if rs(0) ne -1 then itemsC=['X Phase Power','Y Phase Power', 'Fit with Power='+strtrim(rs(1),2)] psymC=[2,1,0] colorsC=[0,0,0] legend,itemsC,psym=psymC,colors=colorsC,pos=[0.7,0.7],/norm if PlotStyle eq 1 then begin jpgimg=tvrd() tvlct,reds,greens,blues,/get write_png,PostScriptDir+ParamStr+'PhasePowerSpectrum.png',$ jpgimg,reds,greens,blues erase endif if PlotStyle eq 0 then stop KMax=floor(float(ApDim)/2) common func_power_spec, Kvals, XSlopePower, YSlopePower XSlopePower=XPower YSlopePower=YPower FreqSpacing=1./((ApDim)*ApNum*DeltaX) KVals=FreqSpacing*(findgen(ApDim/2)+1) rs=findgen(2) tries=8000 rs=amoeba(1.0e-3,scale=[0.4,.3],p0=[ScreenStr^2,-5./3],function_value=fval,$ function_name='fit_power_spectrum_func',ncalls=tries,$ nmax=10000) plot,KVals,YPower,$ psym=2,xrange=[0,max(kvals)],$ color=black,background=white,/normal,$ symsize=2,/ylog oplot,KVals,Xpower,psym=1,color=black,symsize=2 ;oplot,KVals,rs(0)*kvals^rs(1),color=black,linestyle=3 oplot,KVals,0.08*kvals^(-5./3),color=black,linestyle=3 oplot,kvals,ScreenStr*(kvals)^(-5./3), color=black itemsC=['X Slopes Power','Y Slopes Power', 'Fit with Power='+strtrim(-1.66,2)] psymC=[2,1,0] colorsC=[0,0,0] legend,itemsC,psym=psymC,colors=colorsC,pos=[0.7,0.7],/norm if PlotStyle eq 1 then begin jpgimg=tvrd() tvlct,reds,greens,blues,/get write_png,PostScriptDir+ParamStr+'SlopePowerSpectrum.png',$ jpgimg,reds,greens,blues erase endif if PlotStyle eq 0 then stop ;Plot Power Spectrum With all on if PlotStyle eq 3 or PlotStyle eq 1 then begin plot,KVals,YPower,$ psym=2,xrange=[0,max(kvals)],$ color=black,background=white,/normal,$ xtickname=[replicate(' ',13)],$ symsize=2,position=[.15,.75,.95,.975],/ylog oplot,KVals,Xpower,psym=1,color=black,symsize=2 oplot,KVals,rs(0)*kvals^rs(1),color=black,linestyle=3 oplot,kvals,ScreenStr*(kvals)^(-5./3), color =black xyouts,.9,.925,'(a)',color=black,/normal !p.noerase=1 endif if PlotStyle eq 0 then stop ;*********************************************************DATA for Datei =0, 2 do begin readcol,SOARPowerFileNames(Datei),$ XPower,YPower,FrameELow,FrameEHigh,$ format='f,f,f,f' DataXPower(*,Datei)=XPower DataYPower(*,Datei)=YPower DataEllipHigh(*,Datei)=FrameEHigh DataEllipLow(*,Datei)=FrameELow KMax=floor(float(ApDim)/2) common func_power_spec, Kvals, XSlopePower, YSlopePower XSlopePower=XPower YSlopePower=YPower FreqSpacing=1./((ApDim)*ApNum*DeltaX) KVals=FreqSpacing*(findgen(ApDim/2)+1) rs=findgen(2) tries=8000 rs=amoeba(1.0e-5,scale=[2,.05],p0=[ScreenStr^2,-5./3],function_value=fval,$ function_name='fit_power_spectrum_func',ncalls=tries,$ nmax=10000) If PlotStyle eq 3 or PlotStyle eq 1 then begin if Datei eq 0 then begin plot,KVals,YPower,$ psym=2,yrange=[1e-5,1e-1],xrange=[0,max(kvals)],$ color=black,background=white,position=[.15,.525,.95,.75],/normal,$ xtickname=[replicate(' ',13)],$ ytickname=['10!u-5!N','10!u-4!N','10!u-3!N','10!u-2!N',' '],$ symsize=2,/ylog oplot,KVals,XPower,psym=1,color=black,symsize=2 oplot,KVals,Rs(0)*KVals^Rs(1),color=black xyouts,.9,.7,'(b)',color=black,/normal endif else if Datei eq 1 then begin plot,KVals,YPower,ytitle='Power',$ psym=2,yrange=[1e-5,1e-1],xrange=[0,max(kvals)],$ color=black,background=white,position=[.15,.3,.95,.525],/normal,$ xtickname=[replicate(' ',13)],$ ytickname=['10!u-5!N','10!u-4!N','10!u-3!N','10!u-2!N',' '],$ symsize=2,/ylog oplot,KVals,XPower,psym=1,color=black,symsize=2 oplot,KVals,Rs(0)*Kvals^Rs(1),color=black xyouts,.9,.475,'(c)',color=black,/normal endif else begin plot,KVals,YPower,xtitle='f',$ psym=2,yrange=[1e-5,1e-1],$ color=black,background=white,position=[.15,.075,.95,.3],/normal,$ ytickname=['10!u-5!N','10!u-4!N','10!u-3!N','10!u-2!N',' '],$ symsize=2,/ylog oplot,KVals,XPower,psym=1,color=black,symsize=2 oplot,KVals,Rs(0)*Kvals^Rs(1),color=black xyouts,.9,.25,'(d)',color=black,/normal endelse endif else if PlotStyle eq 2 then begin plot,KVals,YPower,$ psym=1,title='Night of May '+Dates(Datei),xrange=[0,max(kvals)],$ color=black,background=white,/normal,$ symsize=2,/ylog oplot,KVals,Xpower,psym=2,color=black,symsize=2 oplot,KVals,rs(0)*kvals^rs(1),color=black,linestyle=3 oplot,kvals,ScreenStr*(kvals)^(-5./3),color=black itemsC=['X Slopes Power','Y Slopes Power', 'Fit with Power='+strtrim(rs(1),2)] psymC=[2,1,0] colorsC=[0,0,0] legend,itemsC,psym=psymC,colors=colorsC,pos=[0.7,0.7],/norm endif if PlotStyle eq 0 then stop endfor if PlotStyle eq 1 then begin jpgimg=tvrd() tvlct,reds,greens,blues,/get write_png,PostScriptDir+ParamStr+'AllPowerSpectrumText.png',$ jpgimg,reds,greens,blues erase endif !p.noerase=0 ;======================================================================== ;*******************************************************SIMULATION KVals=FreqSpacing*(findgen(ApDim/2)) readcol,PowerFileName,$ XPower,YPower,XPhasePower,$ YPhasePower,FrameELow,FrameEHigh,$ format='f,f,f,f,f,f' If PlotStyle eq 2 then begin plot,FrameELow,title='Simulation',Yrange=[0,1],psym=2,$ color=black,background=white,/normal,$ symsize=2 oplot,FrameEHigh,psym=1,symsize=2,color=black itemsC=['E Low Passed','E High Passed'] psymC=[1,2] colorsC=[0,0] legend,itemsC,psym=psymC,colors=colorsC,pos=[0.7,0.7],/norm endif else if PlotStyle eq 3 or PlotStyle eq 1 then begin plot,KVals,FrameELow,Yrange=[0,0.6],psym=1,$ color=black,background=white,/normal,$ symsize=2,position=[.15,.75,.95,.975],$ ytickname=['0.0 ','0.2','0.4','0.6'],xtickname=[replicate(' ',13)] oplot,KVals,FrameEHigh,psym=2,symsize=2,color=black xyouts,.9,.925,'(a)',color=black,/normal !p.noerase=1 endif ;*******************************************************DATA for Datei =0, 2 do begin readcol,SOARPowerFileNames(Datei),$ XPower,YPower,FrameELow,FrameEHigh,$ format='f,f,f,f' If PlotStyle eq 2 then begin plot,FrameELow,$ title='Night of May '+Dates(Datei),Yrange=[0,0.6],psym=1,$ color=black,background=white,/normal,$ symsize=2 oplot,FrameEHigh,psym=2,symsize=2, color = black psymC=[2,1] colorsC=[0,0] legend,itemsC,psym=psymC,colors=colorsC,pos=[0.7,0.7],/norm endif else if PlotStyle eq 3 or PlotStyle eq 1 then begin if Datei eq 0 then begin plot,KVals,FrameELow,psym=1,yrange=[0,.6],$ color=black,background=white,position=[.15,.525,.95,.75],/normal,$ symsize=2,$ ytickname=['0.0 ','0.2','0.4',' '],xtickname=[replicate(' ',13)] oplot,KVals,FrameEHigh,psym=2,symsize=2, color =black xyouts,.9,.7,'(b)',color=black,/normal endif else if Datei eq 1 then begin plot,KVals,FrameELow,ytitle='E',$ psym=1,yrange=[0,.6],$ color=black,background=white,position=[.15,.3,.95,.525],/normal,$ symsize=2,$ ytickname=['0.0 ','0.2','0.4',' '],xtickname=[replicate(' ',13)] oplot,KVals,FrameEHigh,psym=2,symsize=2, color =black xyouts,.9,.475,'(c)',color=black,/normal endif else begin plot,Kvals,FrameELow,xtitle='f',$ psym=1,yrange=[0,.6],$ color=black,background=white,position=[.15,.075,.95,.3],/normal,$ symsize=2,$ ytickname=['0.0 ','0.2','0.4',' '] oplot,KVals,FrameEHigh,psym=2,symsize=2, color=black xyouts,.9,.25,'(d)',color=black,/normal endelse endif if PlotStyle eq 0 then stop endfor if PlotStyle eq 1 then begin jpgimg=tvrd() tvlct,reds,greens,blues,/get write_png,PostScriptDir+ParamStr+'EllipticitySeparateNights.png',$ jpgimg,reds,greens,blues erase endif ;********************************************************************** ;DO PLOT WITH ONLY ONE PLOT FOR SIMULATION AND ONE FOR DATA AvgDataEllipHigh=Avg(DataEllipHigh,1) AvgDataEllipLow=Avg(DataEllipLow,1) AvgXPower=Avg(DataXPower,1) AvgYPower=Avg(DataYPower,1) !p.noerase=0 KVals=FreqSpacing*(findgen(ApDim/2)) readcol,PowerFileName,$ XPower,YPower,XPhasePower,$ YPhasePower,FrameELow,FrameEHigh,$ format='f,f,f,f,f,f' If PlotStyle eq 2 then begin plot,FrameELow,title='Simulation',Yrange=[0,1],psym=2,$ color=black,background=white,/normal,$ symsize=2 oplot,FrameEHigh,psym=1,symsize=2, color =black itemsC=['E Low Passed','E High Passed'] psymC=[1,2] colorsC=[0,0] legend,itemsC,psym=psymC,colors=colorsC,pos=[0.7,0.7],/norm endif else if PlotStyle eq 3 or PlotStyle eq 1 then begin !p.noerase=0 plot,KVals,AvgDataEllipLow,Yrange=[0,0.6],psym=1,$ color=black,background=white,/normal,$ symsize=2,position=[.15,.55,.95,.975],$ ytickname=[' ','0.2','0.4','0.6'],xtickname=[replicate(' ',13)] oplot,KVals,AvgDataEllipHigh,psym=2,symsize=2, color=black xyouts,.9,.925,'(a)',color=black,/normal !p.noerase=1 plot,KVals,FrameELow,Yrange=[0,0.6],psym=1,$ color=black,background=white,/normal,$ symsize=2,position=[.15,.125,.95,.55],$ ytickname=['0.0 ','0.2','0.4','0.6'] oplot,KVals,FrameEHigh,psym=2,symsize=2, color=black xyouts,.9,.5,'(b)',color=black,/normal !p.charsize=4 xyouts,0.52,0.0175,'f (m!u-1!N)',color=black,/normal xyouts,0.0675,0.525,'e',color=black,/normal,orientation=90 !p.charsize=3 endif if PlotStyle eq 1 then begin jpgimg=tvrd() tvlct,reds,greens,blues,/get write_png,PostScriptDir+ParamStr+'EllipticityNightlyAveragePlusSim.png',$ jpgimg,reds,greens,blues erase endif ;!p.charsize=1 !p.noerase=0 KMax=floor(float(ApDim)/2) common func_power_spec, Kvals, XAvgSlopePower, YAvgSlopePower XAvgSlopePower=DataXPower YAvgSlopePower=DataYPower FreqSpacing=1./((ApDim)*ApNum*DeltaX) KVals=FreqSpacing*(findgen(ApDim/2)+1) rs=findgen(2) tries=8000 rs=amoeba(1.0e-5,scale=[2,.05],p0=[ScreenStr^2,-5./3],function_value=fval,$ function_name='fit_power_spectrum_func',ncalls=tries,$ nmax=10000) print,rs plot,KVals,DataYPower,$ psym=2,xrange=[0,max(kvals)],$ color=black,background=white,/normal,$ xtickname=[replicate(' ',13)],$ symsize=2,position=[.15,.55,.95,.975],/ylog,$ ytickname=['10!u-4!N','10!u-3!N','10!u-2!N','10!u-1!N'] oplot,KVals,DataXpower,psym=1,color=black,symsize=2 oplot,KVals,rs(0)*kvals^rs(1),color=black,linestyle=3 xyouts,.9,.925,'(a)',color=black,/normal common func_power_spec, Kvals, XSimSlopePower, YSimSlopePower XSimSlopePower=XPower YSimSlopePower=YPower !p.noerase=1 FreqSpacing=1./((ApDim)*ApNum*DeltaX) KVals=FreqSpacing*(findgen(ApDim/2)+1) rs=findgen(2) tries=8000 rs=amoeba(1.0e-3,scale=[0.4,.3],p0=[ScreenStr^2,-5./3],function_value=fval,$ function_name='fit_power_spectrum_func',ncalls=tries,$ nmax=10000) print,rs plot,KVals,YPower,$ psym=2,xrange=[0,max(kvals)],$ color=black,background=white,/normal,$ symsize=2,/ylog,position=[.15,.125,.95,.55],$ ytickname=['10!u-4!N','10!u-3!N','10!u-2!N',' '] oplot,KVals,Xpower,psym=1,color=black,symsize=2 oplot,KVals,rs(0)*kvals^(-1.78),color=black,linestyle=3 xyouts,.9,.5,'(b)',color=black,/normal !p.charsize=4 xyouts,0.52,0.0175,'f (m!u-1!N)',color=black,/normal xyouts,0.0675,0.525,'Power',color=black,/normal,orientation=90 !p.charsize=3 if PlotStyle eq 1 then begin jpgimg=tvrd() tvlct,reds,greens,blues,/get write_png,PostScriptDir+ParamStr+'SlopeAverageNightsPowerSpectrumNoText.png',$ jpgimg,reds,greens,blues erase endif if PlotStyle eq 0 then stop if PlotStyle eq 3 then !p.noerase=0 ;****************************************************MULTIPLE return,1 end