; ; WRITTEN: 12APR2006 Xuepu ; MODIFIED: 15JUN2007 Xuepu for DRC ; MODIFIED: 02July2009 Xuepu for replacing time_crncl0.pro by time_crncl0_ctimes.pro pro drcmsc_updmsc20090806,updmsc0,updmscR,updmscL,drcmsc,longi,xticscb,xticsct,xticsfb,xticsft,SNOG=snog,PEVT=pevt,DISP=disp,SDT=sdt,CRND=crnd,CLOG=clog if n_params( ) lt 1 then begin print,'drcmsc_updmsc20090806,updmsc0,updmscR,updmscL,drcmsc,longi,' print,' /snog(/pevt),/left,/disp,crnd=,clog=' return end mx=100 xz=360 & yz=180 & hxz=xz/4 ; get doy0 and hh0 for scrncl0. Here crn can be any CR# located in the ; middle of a year so that all doys are in the same year crn=1922 scrn0=strtrim(crn,2) scl0='180' cl0=180 ; Set the reference time doy0 & hh0 for getting dt scrncl0=scrn0+':'+scl0 ; time_crncl0,scrncl0,symd_hms0 time_crncl0_ctimes,scrncl0,symd_hms0 year_sec_date,symd_hms0,yyyy0,mm0,dd0,hh0,mi0,ss0 dmy2doy,yyyy0,mm0,dd0,doy0 hh0=(hh0+mi0/60.+ss0/3600.)/24. dmy2doy,yyyy0,mm0,dd0,doy0 ; Get sphd, slar2 and slar4 for following calculations zgrid,xz,yz,phd,thd,lad,cth,sth sphd=strtrim(phd,2) slar2=fltarr(yz) & slar4=slar2 for jj=0,yz-1 do begin slarj=SIN(lad(jj)*!DTOR) slar2(jj)=slarj*slarj slar4(jj)=slarj^4. endfor ; Based on Pevtsov (2000) or Snofrass (1983) formulae and the CR rate ; (13.1988 deg/day) to get the latitude of sunspot used to obtain 27.2753 if keyword_set (pevt) then begin ; lat4carringtonrate,lat2,ind,lim,it,jt,aa,bb,cc,/pevt lat4carringtonrate,360,180,aa,bb,cc,lat2,ind,/pevt endif if keyword_set (snog) then begin ; lat4carringtonrate,lat2,ind,lim,it,jt,aa,bb,cc,/snog lat4carringtonrate,360,180,aa,bb,cc,lat2,ind,/snog end ind0=ind(0) & ind1=ind(1) sinl0=SIN(lad(ind0)*!DTOR) & sinl1=SIN(lad(ind1)*!DTOR) ; Get doyi,hhi and the time difference dt between scrnL and scrn0, and ; Find the starting point and get the longitude diferrence for MSCL longi=fltarr(1.5*xz,yz) field=longi scrnL=strtrim(crn+1,2) ; for ii=hxz,xz-1 do begin ; scrncli=scrnL+':'+sphd(ii) ; time_crncl0,scrncli,symd_hmsi ; yyyyi=FIX(strmid(symd_hmsi,0,4)) ; dmy2doy,yyyyi,FIX(strmid(symd_hmsi,5,2)),$ ; FIX(strmid(symd_hmsi,8,2)),doyi ; hhi=FIX(strmid(symd_hmsi,11,2))/24. ; dt=(doyi-doy0)+(hhi-hh0) ; dt > 0 in days for MSCL ; dlogCR=(aa + bb*slar2(ind0) + cc*slar4(ind0))*dt ; dlogij=(aa + bb*slar2(0) + cc*slar4(0))*dt - dlogCR ; < 0 ; longi_i179=(phd(ii)-360)-dlogij ; if longi_i179 ge 0 then goto,lbl ; endfor ;lbl: iils=ii & xs=phd(ii)-360 & phd0=phd(ii) is=0 & xs=270 ; for ii=iils,xz-1 do begin for ii=360-hxz,xz-1 do begin scrncli=scrnL+':'+sphd(ii) ; time_crncl0,scrncli,symd_hmsi time_crncl0_ctimes,scrncli,symd_hmsi year_sec_date,symd_hmsi,yyyyi,mmi,ddi,hhi,mii,ssi dmy2doy,yyyyi,mmi,ddi,doyi hhi=(hhi+mii/60.+ssi/3600.)/24. dt=(doyi-doy0)+(hhi-hh0) ; dt > 0 in days for MSCL for jj=0,yz-1 do begin ; dlogCR=(aa + bb*slar2(ind0) + cc*slar4(ind0))*dt dlogCR=13.1988*dt dlogij=(aa + bb*slar2(jj) + cc*slar4(jj))*dt - dlogCR longi(is,jj)=phd(ii)-dlogij-360 field(is,jj)=updmscL(ii,jj) endfor is=is+1 endfor xszl=is print,'xszl:',xszl ; get the longitude difference from MSC0 for ii=0,xz-1 do begin scrncli=scrn0+':'+sphd(ii) ; time_crncl0,scrncli,symd_hmsi time_crncl0_ctimes,scrncli,symd_hmsi year_sec_date,symd_hmsi,yyyyi,mmi,ddi,hhi,mii,ssi dmy2doy,yyyyi,mmi,ddi,doyi hhi=(hhi+mii/60.+ssi/3600.)/24. dt=(doyi-doy0)+(hhi-hh0) ; 0 > dt > 0 in days for jj=0,yz-1 do begin ; dlogCR=(aa + bb*slar2(ind(0)) + cc*slar4(ind(0)))*dt dlogCR=13.1988*dt dlogij=(aa + bb*slar2(jj) + cc*slar4(jj))*dt - dlogCR longi(is,jj)=phd(ii)-dlogij field(is,jj)=updmsc0(ii,jj) endfor is=is+1 endfor xsz0=is print,'xsz0:',xsz0 ; Find the ending point for MSCR and get the contribution from MSCR scrnR=strtrim(crn-1,2) ; dttR=fltarr(360) ; for ii=0,xz-1 do begin ; scrncli=scrnR+':'+sphd(ii) ; time_crncl0,scrncli,symd_hmsi ; yyyyi=FIX(strmid(symd_hmsi,0,4)) ; dmy2doy,yyyyi,FIX(strmid(symd_hmsi,5,2)),$ ; FIX(strmid(symd_hmsi,8,2)),doyi ; hhi=FIX(strmid(symd_hmsi,11,2))/24. ; dt=(doyi-doy0)+(hhi-hh0) ; dt < 0 in days ; dttR(ii)=dt ; dlogCR=(aa + bb*slar2(ind(1)) + cc*slar4(ind(1)))*dt ; dlogij=(aa + bb*slar2(yz-1) + cc*slar4(yz-1))*dt - dlogCR ; longi_i179=360+phd(ii)-dlogij ; if longi_i179 gt 360 then goto,lbr ; endfor ; lbr: iire=ii ; for ii=0,iire do begin for ii=0,hxz-1 do begin scrncli=scrnR+':'+sphd(ii) ; time_crncl0,scrncli,symd_hmsi time_crncl0_ctimes,scrncli,symd_hmsi yyyyi=FIX(strmid(symd_hmsi,0,4)) dmy2doy,yyyyi,FIX(strmid(symd_hmsi,5,2)),$ FIX(strmid(symd_hmsi,8,2)),doyi hhi=FIX(strmid(symd_hmsi,11,2))/24. dt=(doyi-doy0)+(hhi-hh0) ; dt < 0 in days for jj=0,yz-1 do begin ; dlogCR=(aa + bb*slar2(ind(0)) + cc*slar4(ind(0)))*dt dlogCR=13.1988*dt dlogij=(aa + bb*slar2(jj) + cc*slar4(jj))*dt - dlogCR longi(is,jj)=phd(ii)-dlogij+360 field(is,jj)=updmscR(ii,jj) endfor is=is+1 endfor xszr=is xe=360+phd(ii) & ie=is ; Get differential-rotation-corrected MSC, drcmsc drcmsc=fltarr(xz+1,yz) for j=0,yz-1 do begin longi_midj=longi(*,j) field_midj=field(*,j) for i=0,xz do begin ; indi=where(longi_midj ge i-0.5 AND longi_midj lt i+0.5,ci) indi=where(longi_midj ge i-1.0 AND longi_midj lt i+1.0,ci) if ci gt 0 then begin br=TOTAL(field_midj(indi))/ci drcmsc(i,j)=br endif else begin drcmsc(i,j)=!values.f_nan endelse endfor indii=where(FINITE(drcmsc(*,j)) eq 1,cii) ; indin=where(FINITE(drcmsc(*,j)) ne 1,cin) if cii lt 361 then print,'j,cii:',j,cii if cii lt 361 then begin ti=indgen(361) xi=indii yi=drcmsc(indii,j) zi=SPLINE(xi,yi,ti) drcmsc(*,j)=zi endif endfor drcmsc=drcmsc(1:xz,*) ; Display ; if keyword_set(disp) then begin ; tek_color ; outfile='drcmsc_'+sdt+'.new.ps' ; psout,041,outfile ; !p.multi=[0,1,4] ; ynon = REPLICATE(' ', 2) ; ytic = ; xnon = REPLICATE(' ', 2) ; xtic = ['1937:290',xnon,'1936:20',xnon,'1936:110',xnon,'1936:200',xnon,'1936:290',xnon,'1935:20',xnon,'1935:110'] ; xn=n_elements(xtic) ; xtn=xn-1 ; dx=360/xtn ;Instead of 540 see pscimg06.pro ; cxtv = FINDGEN(xn)*dx ; txnon= replicate(' ',xn) ; Panel 1: Updmscs ; org3msc=longi ; org3msc(0:89,*)=updmscL(270:359,*) ; org3msc(90:449,*)=updmsc0 ; org3msc(450:539,*)=updmscR(0:89,*) ; borg3msc=bytscl(org3msc,max=mx,min=-mx) ; pscimg06,borg3msc,'Wide MDI Synoptic Carrington Map Centered at CT 1636:200',px,py,sy='sla' ; AXIS,XAXIS=0,XTICKS=xtn,XTICKV=cxtv,XTICKN=xtic,xtit='Carrington (blue) Longitude',xcharsize=1 ; AXIS,XAXIS=1,XTICKS=xtn,XTICKV=cxtv,XTICKN=txnon ; coe=360./540 ; for i=0,539,10 do oplot,[i,i]*coe,[-1,1],color=4 ; ; oplot,[cl0,cl0],[-1,1],thick=5,color=2 ; oplot,[270,270]*coe,[-1,1],thick=5,color=2 ; i0=90 & i360=449 ; oplot,[i0,i0]*coe,[-1,1],thick=3 ; oplot,[i360,i360]*coe,[-1,1],thick=3 ; ; lad=SIN(lad*!DTOR) ; 12May2006 ; bbn0=fltarr(xszr,180) ; bbn=bbn0 ; bbn(xszl:xsz0-1,*)=drcmsc ; bdrcmsc=bytscl(bbn,max=mx,min=-mx) ;Panel 2 ; dx=540/xtn ;Instead of 540 see pscimg06.pro ; cxtv = FINDGEN(xn)*dx-90 ; txnon= replicate(' ',xn) ; plot,longi(0,*),lad,/nodata,psym=3,yrange=[-1,1],xstyle=5,$ ; ; ytitle='Heliolatitude',xrange=[0,540],ystyle=1,$ ; ytitle='Sine Heliolatitude',xrange=[-90,450],ystyle=1,$ ; ; xtitle='Hybrid (Carrington and Hleographic) longitude', $ ; title="Stretching of Carrington Longitudes (blue lines) to Heliographic Locations (Colored Curves)" ; AXIS,XAXIS=0,XTICKS=xtn,XTICKV=cxtv,XTICKN=xtic,xtit='Carrington (blue) Longitude',xcharsize=1 ; AXIS,XAXIS=1,XTICKS=xtn,XTICKV=cxtv,XTICKN=txnon ; for ii=0,xszl-1,10 do oplot,longi(ii,*),lad,psym=3,color=2 ; for ii=xszl-1,xsz0-1,10 do oplot,longi(ii,*),lad,psym=3 ; for ii=xsz0+9,xszr-1,10 do oplot,longi(ii,*),lad,psym=3,color=2 ; for i=-90,449,10 do oplot,[i,i],[-1,1],color=4 ; oplot,[-90,449],[sinl0,sinl0] ; oplot,[-90,449],[sinl1,sinl1] ; Panel 3 ; xtic = ['98.05.23:290',xnon,'98.05.23:20',xnon,'98.05.23:110',xnon,'98.05.23:200',xnon,'98.05.23:290',xnon,'98.05.23:20',xnon,'98.05.23:110'] ; dx=540/xtn ;Instead of 540 see pscimg06.pro ; cxtv = FINDGEN(xn)*dx-90 ; txnon= replicate(' ',xn) ; clong=fltarr(1.5*xz,yz) ; for ii=-90,449,10 do begin ; dhli=(ii-180) ; for jj=0,yz-1 do begin ; dt=dhli/(aa + bb*slar2(jj) + cc*slar4(jj)) ; dlogCR=13.1988*dt ; clong(ii+90,jj)=180+dlogCR ; endfor ; endfor ; plot,clong(0,*),lad,/nodata,psym=3,yrange=[-1,1],xstyle=5,$ ; ; ytitle='Heliolatitude',xrange=[0,540],ystyle=1,$ ; ytitle='Sine Heliolatitude',xrange=[-90,450],ystyle=1,$ ; xtitle='Hybrid (Carrington and Hleographic) longitude', $ ; title="Pulling from Carrington Locations (Blue Curves) to Heliographic Longitude (Black Vertical Lines)" ; AXIS,XAXIS=0,XTICKS=xtn,XTICKV=cxtv,XTICKN=xtic,xtit='Heliographic (black) Longitude',xcharsize=1 ; AXIS,XAXIS=1,XTICKS=xtn,XTICKV=cxtv,XTICKN=txnon ; for i=-90,449,10 do oplot,[i,i],[-1,1] ; ; for ii=0,xszl-1,10 do oplot,longi(ii,*),lad,psym=3,color=4 ; for ii=-90,449,10 do oplot,clong(ii+90,*),lad,psym=3,color=4 ; ; for ii=xsz0+9,xszr-1,10 do oplot,longi(ii,*),lad,psym=3,color=4 ; oplot,[-90,449],[sinl0,sinl0] ; oplot,[-90,449],[sinl1,sinl1] ; Panel 4 ; xtic = ['98.05.23:290',xnon,'98.05.23:20',xnon,'98.05.23:110',xnon,'98.05.23:200',xnon,'98.05.23:290',xnon,'98.05.23:20',xnon,'98.05.23:110'] ; dx=360/xtn ;Instead of 540 see pscimg06.pro ; cxtv = FINDGEN(xn)*dx ; txnon= replicate(' ',xn) ; bbn0=fltarr(xszr,180) ; bbn=bbn0 ; bbn(xszl:xsz0-1,*)=drcmsc ; bdrcmsc=bytscl(bbn,max=mx,min=-mx) ; pscimg06,bdrcmsc,'MDI Synchronic Map for 1998.05.23_16:03:30',$ ; px,py,sy='sla' ; AXIS,XAXIS=0,XTICKS=xtn,XTICKV=cxtv,XTICKN=xtic,xtit='Heliographic (black) Longitude',xcharsize=1 ; AXIS,XAXIS=1,XTICKS=xtn,XTICKV=cxtv,XTICKN=txnon ; oplot,[cl0,cl0],[-90,90],thick=3,color=2 ; for i=90,449,10 do oplot,[i,i]*coe,[-1,1] ; sc_annot,1,xtic=xtic,longi='heliographic',/norm ; sc_annot,1,longi='heliographic',/norm ; !p.multi=0 ; psdone ; print,outfile ; endif end