SET_PLOT,'PS' DEVICE, FILENAME='trajplot2010.ps',/landscape DEVICE, SET_FONT='Helvetica Bold', /TT_FONT SET_CHARACTER_SIZE=[70,90] ;device,decomposed=0 device,/color loadct,13 ; ****************************************************** nmf2=fltarr(73,36,216) nmf215=fltarr(73,36,216) nmf2q=fltarr(73,36) nmf2x=fltarr(73,36,432) lonx=fltarr(73,36) latx=fltarr(73,36) un=fltarr(73,36) vn=fltarr(73,36) scal=fltarr(5,36) xscal=fltarr(5,36) yscal=fltarr(5,36) labels=strarr(5) outbound=fltarr(24) inbound=fltarr(24) alata=fltarr(121) alona=fltarr(121) xlt=fltarr(121) alata2=fltarr(121) alona2=fltarr(121) xlt2=fltarr(121) alata3=fltarr(121) alona3=fltarr(121) xlt3=fltarr(121) alata4=fltarr(121) alona4=fltarr(121) xlt4=fltarr(121) spv=-999999.9 dum=fltarr(73,36) ;openr,8,'../out/solmax1/nmf2.dat' ;readf,8,'$(10E11.4)',nmf2 ;close,8 ;openr,8,'../out/solmax2/nmf2.dat' ;readf,8,'$(10E11.4)',nmf215 ;close,8 ;openr,8,'fluxout.dat' openr,8,'chrenout.dat' readf,8,'$(10E11.4)',nmf2q close,8 openr,8,'outbound.dat' readf,8,'$(10E11.4)',outbound close,8 openr,8,'inbound.dat' readf,8,'$(10E11.4)',inbound close,8 openr,8,'traj1lat.dat' readf,8,'$(10E11.4)',alata close,8 openr,8,'traj1lon.dat' readf,8,'$(10E11.4)',alona close,8 openr,8,'traj1xlt.dat' readf,8,'$(10E11.4)',xlt close,8 openr,8,'traj2lat.dat' readf,8,'$(10E11.4)',alata2 close,8 openr,8,'traj2lon.dat' readf,8,'$(10E11.4)',alona2 close,8 openr,8,'traj2xlt.dat' readf,8,'$(10E11.4)',xlt2 close,8 openr,8,'traj3lat.dat' readf,8,'$(10E11.4)',alata3 close,8 openr,8,'traj3lon.dat' readf,8,'$(10E11.4)',alona3 close,8 openr,8,'traj3xlt.dat' readf,8,'$(10E11.4)',xlt3 close,8 openr,8,'traj4lat.dat' readf,8,'$(10E11.4)',alata4 close,8 openr,8,'traj4lon.dat' readf,8,'$(10E11.4)',alona4 close,8 openr,8,'traj4xlt.dat' readf,8,'$(10E11.4)',xlt4 close,8 ; ****************************************************** ; fill lat and long arrays ; ****************************************************** for j = 0,35,1 do begin for i = 0,72,1 do begin lonx(i,j) = -180. + i*5. latx(i,j) = -87.5 + j*5. endfor endfor ; ****************************************************** ; set a zero longitude to be plotted ; ****************************************************** zlon=0. day = 14 ; ****************************************************** ; ****************************************************** ;loop top ;for nnn = 0,431,1 do begin nnn=108 ; ****************************************************** ; ****************************************************** ; set a time to be plotted (0 -> 141) from 6 0 10 to 6 23 40 ; ****************************************************** hour = nnn/3 day = hour/24 + 1 if hour gt 23 then begin hour = hour - 24 endif if hour gt 23 then begin hour = hour - 24 endif if hour gt 23 then begin hour = hour - 24 endif if hour gt 23 then begin hour = hour - 24 endif if hour gt 23 then begin hour = hour - 24 endif print,'day hour ',day,hour minute = (nnn - nnn/3*3)*20. itime = hour*6 + minute/20 jtime = hour nnnq = hour*3 + minute/20 rottime= float(hour) + float(minute)/60. ; ****************************************************** ; ****************************************************** ; set a rotation to be plotted ; ****************************************************** rot=-rottime*15. ;rot=0. print,rot,hour,minute ;stop ; if this does not work try -rot plat=1. tlon= rot + zlon if plat ge 0 then tlon = tlon+180. if tlon gt 180. then tlon = tlon-360. if tlon lt -180. then tlon = tlon+360. xlon = rot + zlon if xlon gt 180. then xlon = xlon-360. if xlon lt -180. then xlon = xlon+360. ; ; ****************************************************** ; NmF2 ; ****************************************************** ; for j = 0,35,1 do begin for i = 0,72,1 do begin if nnn lt 216 then nmf2x(i,j,nnn) = nmf2(i,j,nnn) if nnn gt 215 then begin inn = nnn - 216 nmf2x(i,j,inn) = nmf215(i,j,inn) endif endfor endfor for j = 0,35,1 do begin for i = 0,72,1 do begin if nnn lt 216 then begin dum(i,j) = nmf2q(i,j) endif if nnn gt 215 then begin inn = nnn - 216 dum(i,j) = (nmf2x(i,j,inn) - nmf2q(i,j))/nmf2q(i,j)*100. endif endfor endfor ; ; ****************************************************** ; find or set a maximum and minimum ; ****************************************************** ; ; max=1. ; min=1. xmax=-99999999999.9 xmin=99999999999.9 for j = 0,35,1 do begin for i = 0,72,1 do begin if dum(i,j) gt xmax then xmax=dum(i,j) if dum(i,j) lt xmin then xmin=dum(i,j) endfor endfor max=xmax min=xmin max=5. ; max=3.e8 min=0. print,'xmax xmin',xmax,xmin for j = 0,35,1 do begin for i = 0,72,1 do begin if dum(i,j) gt max then dum(i,j)=max if dum(i,j) lt min then dum(i,j)=min endfor endfor !p.position=[0.1,0.1,0.80,0.80] ;map_set,0.,0.,0.,/mollweide,/isotropic,/noborder,/horizon, $ ;color=255*8/10,mlinestyle=0 map_set,90.,zlon,rot,/orthographic,/isotropic, $ limit=[20,-180,90,180],/noborder,color=255.*6./10.,mlinestyle=0 ;contour,dum,lonx,latx,/overplot,/cell_fill $ ;,max_val=max,min_val=min,levels=min+findgen(30)*(max-min)/30. ;map_grid,/label,color=255 map_continents,color=6./10.*255 for i=1,360,1 do begin plots,[-180.+i,-180.+i+ 1.],[20.,20.],thick=2.,color=255.*6./10. endfor for i=0,22,1 do begin plots,[-180.+i*15.,-180.+i*15.+ 15.],[outbound(i),outbound(i+1)], $ thick=2.,color=255.*6./10. endfor plots,[-180.+23*15.,-180.+0.*15.],[outbound(23),outbound(0)], $ thick=2.,color=255.*6./10. for i=0,22,1 do begin plots,[-180.+i*15.,-180.+i*15.+ 15.],[inbound(i),inbound(i+1)], $ thick=2.,color=255.*6./10. endfor plots,[-180.+23*15.,-180.+0.*15.],[inbound(23),inbound(0)], $ thick=2.,color=255.*6./10. for i=0,119,1 do begin g=(xlt(i)+12.)*15. gz=(xlt(i+1)+12.)*15. if g gt 180. then g =g-360. if gz gt 180. then gz =gz-360. print,g,gz plots,[g,gz],[alata(i),alata(i+1)], $ thick=2.,color=255.*2./10. endfor ;xyouts,(xlt(0)+12.)*15.,alata(0),'12',charsize=1.4,font=1,color=255.*6./10. g=(xlt(0)+12.)*15. ;xyouts,(xlt(120)+12.)*15.,alata(120),'10',charsize=1.4,font=1,color=255.*6./10. g=(xlt(0)+12.)*15. if g gt 180. then g =g-360. plots,g,alata(0),psym=4,symsize=1.8,color=255.*2./10.,thick=3 xyouts,g,alata(0),'1',charsize=1.6,color=255.*2./10.,font=1 g=(xlt(29)+12.)*15. if g gt 180. then g =g-360. plots,g,alata(29),psym=4,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt(59)+12.)*15. if g gt 180. then g =g-360. plots,g,alata(59),psym=4,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt(89)+12.)*15. if g gt 180. then g =g-360. plots,g,alata(89),psym=4,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt(119)+12.)*15. if g gt 180. then g =g-360. plots,g,alata(119),psym=4,symsize=1.8,color=255.*2./10.,thick=3 ;************************************************************* ;second trajectory for i=0,119,1 do begin g=(xlt2(i)+12.)*15. gz=(xlt2(i+1)+12.)*15. if g gt 180. then g =g-360. if gz gt 180. then gz =gz-360. print,g,gz plots,[g,gz],[alata2(i),alata2(i+1)], $ thick=4.,color=255.*2./10. endfor ;xyouts,(xlt2(0)+12.)*15.,alata2(0),'12',charsize=1.4,font=1,color=255.*6./10. g=(xlt2(0)+12.)*15. ;xyouts,(xlt2(120)+12.)*15.,alata2(120),'10',charsize=1.4,font=1,color=255.*6./10. g=(xlt2(0)+12.)*15. if g gt 180. then g =g-360. plots,g,alata2(0),psym=5,symsize=1.8,color=255.*2./10.,thick=3 xyouts,g-5.,alata2(0),'2',charsize=1.6,color=255.*2./10.,font=1 g=(xlt2(29)+12.)*15. if g gt 180. then g =g-360. plots,g,alata2(29),psym=5,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt2(59)+12.)*15. if g gt 180. then g =g-360. plots,g,alata2(59),psym=5,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt2(89)+12.)*15. if g gt 180. then g =g-360. plots,g,alata2(89),psym=5,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt2(119)+12.)*15. if g gt 180. then g =g-360. plots,g,alata2(119),psym=5,symsize=1.8,color=255.*2./10.,thick=3 ;************************************************************* ;third trajectory for i=0,119,1 do begin g=(xlt3(i)+12.)*15. gz=(xlt3(i+1)+12.)*15. if g gt 180. then g =g-360. if gz gt 180. then gz =gz-360. print,g,gz plots,[g,gz],[alata3(i),alata3(i+1)], $ thick=4.,color=255.*2./10. endfor ;xyouts,(xlt3(0)+12.)*15.,alata3(0),'12',charsize=1.4,font=1,color=255.*6./10. g=(xlt3(0)+12.)*15. ;xyouts,(xlt3(120)+12.)*15.,alata3(120),'10',charsize=1.4,font=1,color=255.*6./10. g=(xlt3(0)+12.)*15. if g gt 180. then g =g-360. plots,g,alata3(0),psym=6,symsize=1.8,color=255.*2./10.,thick=3 xyouts,g,alata3(0)-3.,'3',charsize=1.6,color=255.*2./10.,font=1 g=(xlt3(29)+12.)*15. if g gt 180. then g =g-360. plots,g,alata3(29),psym=6,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt3(59)+12.)*15. if g gt 180. then g =g-360. plots,g,alata3(59),psym=6,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt3(89)+12.)*15. if g gt 180. then g =g-360. plots,g,alata3(89),psym=6,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt3(119)+12.)*15. if g gt 180. then g =g-360. plots,g,alata3(119),psym=6,symsize=1.8,color=255.*2./10.,thick=3 ;************************************************************* ;fourth trajectory for i=0,119,1 do begin g=(xlt4(i)+12.)*15. gz=(xlt4(i+1)+12.)*15. if g gt 180. then g =g-360. if gz gt 180. then gz =gz-360. print,g,gz plots,[g,gz],[alata4(i),alata4(i+1)], $ thick=4.,color=255.*2./10. endfor ;xyouts,(xlt4(0)+12.)*15.,alata4(0),'12',charsize=1.4,font=1,color=255.*6./10. g=(xlt4(0)+12.)*15. ;xyouts,(xlt4(120)+12.)*15.,alata4(120),'10',charsize=1.4,font=1,color=255.*6./10. g=(xlt4(0)+12.)*15. if g gt 180. then g =g-360. plots,g,alata4(0),psym=2,symsize=1.8,color=255.*2./10.,thick=3 xyouts,g,alata4(0)-5.,'4',charsize=1.6,color=255.*2./10.,font=1 g=(xlt4(29)+12.)*15. if g gt 180. then g =g-360. plots,g,alata4(29),psym=2,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt4(59)+12.)*15. if g gt 180. then g =g-360. plots,g,alata4(59),psym=2,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt4(89)+12.)*15. if g gt 180. then g =g-360. plots,g,alata4(89),psym=2,symsize=1.8,color=255.*2./10.,thick=3 g=(xlt4(119)+12.)*15. if g gt 180. then g =g-360. plots,g,alata4(119),psym=2,symsize=1.8,color=255.*2./10.,thick=3 ; ****************************************************** ; label graph ; ****************************************************** xval1=-180.-rottime*15. if xval1 lt -180. then xval1=xval1+360. xval2=0.-rottime*15. if xval2 lt -180. then xval2=xval2+360. xval3=90.-rottime*15. if xval3 lt -180. then xval3=xval3+360. xval4=-90.-rottime*15. if xval4 lt -180. then xval4=xval4+360. ;print,xval1,xval2 xyouts,0.45 ,0.81,'12.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1, $ /normal ;xyouts, xval1,20.,'12.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1 xyouts, 0.45,0.07,'0.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1, $ /normal ;xyouts, xval2,20.,'0.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1 xyouts, 0.17,0.45,'18.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1, $ /normal ;xyouts, xval4,20.,'18.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1 xyouts, 0.73,0.45,'6.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1, $ /normal ;xyouts, xval3,20.,'6.',charsize=1.75,alignment=.5,color=255.*6./10.,font=1 toplabel='Trajectories UT ' + string(hour,format='(i2)') $ + ':' + string(minute,format='(i2)') + $ ' May 1997 ' + ' Day ' + string(day,format='(i2)') toplabel2=strtrim(toplabel,2) ;xyouts,xval1, 8., toplabel2,alignment=.5,charsize=1.4,color=0 xyouts,0.45,0.85, toplabel2,alignment=.5,charsize=1.9,color=255*6./10, $ /normal,font=1 ; ****************************************************** ; Draw label bar ; ****************************************************** ; bw is bar width in normalized coordinates (nc), bh is bar height (nc) ; xo, yo are the origin points in nc,labels is an array of character strings ; labcolor 0-254 ; charsize leave as default ; lableft put0 ;labtop 0 ;laboffset=0.02 ;labcolor0-254, try 0,1,254,255 bw=0.05 bh=0.8 xo=0.825 yo=0.1 botcolor=1 topcolor=254 lableft=0 labtop=0 laboffset=0.0 labcolor=255*8/10 charsize=1.25 labels(0)=string(min,format='(E10.2)') labels(1)=string(min+1./4.*(max-min),format='(E10.2)') labels(2)=string(min + 1./2.*(max-min),format='(E10.2)') labels(3)=string(min + 3./4.*(max-min),format='(E10.2)') labels(4)=string(max,format='(E10.2)') !p.color=0 ;clrbarg,bw,bh,xo,yo,labels,BOTCOLOR=botcolor,TOPCOLOR=topcolor,$ ; LABCOLOR=labcolor,CHARSIZE=charsize,LABLEFT=lableft,LABTOP=labtop,$ ; LABOFFSET=laboffset ; ****************************************************** ;filename='plots/trajs' + $ ;strcompress(string(nnn,format="(i3)"),/remove_all) + '.jpg' ;dump=tvrd(true=3) ;write_jpeg,filename,dump,true=3,quality=100 ; ****************************************************** ; ****************************************************** ;end do loop ;endfor ; ****************************************************** ; ****************************************************** DEVICE,/CLOSE stop end ; ******************************************************