; Load in the files
;goto, BAD
; goto, SBS
; goto, REPAIR
;goto, COMP
;goto, DUST
;  goto, MOVIE
; goto, PNG

msu_xrt_cat, '02-oct-2024 16:25', '02-oct-2024 16:50',cat,ofiles
;wdef,0,800,800 
;plot, cat.xcen, cat.ycen, psym=1

ss_s=where(cat.prog_no eq 17  and cat.subr_no eq 2 and $
    cat.seqn_no eq 66 and cat.seqn_pos eq 1)
files_s=ofiles(ss_s)
mreadfits,files_s,index0_s,data0_s

ss_l=where(cat.prog_no eq 17  and cat.subr_no eq 2 and $
    cat.seqn_no eq 66 and cat.seqn_pos eq 2)
files_l=ofiles(ss_l)
mreadfits,files_l,index0_l,data0_l

BAD:
;***remove bad frame***
ndata0=n_elements(ss_s)
ss_rm=[20,21,24,26,30]
ss_ok=delind(indgen(ndata0),ss_rm)
index_s=index0_s(ss_ok)
index_l=index0_l(ss_ok) 
data_s=data0_s(*,*,ss_ok)
data_l=data0_l(*,*,ss_ok)

;*** Watch images side by side***

; Note, use IDL SHIFT to move short exposure images from earlier over to
; reduce exposure. Experiment on which images will be better since the Moon
; appears quickly. 

SBS:

data_l(*,*,34)=data_l(*,*,33)
data_s(*,*,39)=data_s(*,*,40)
data_s(*,*,40)=data_s(*,*,41)
data_s(*,*,41)=data_s(*,*,42)
data_s(*,*,42)=data_s(*,*,43)
data_s(*,*,43)=data_s(*,*,44)
data_s(*,*,44)=data_s(*,*,45)
data_s(*,*,45)=data_s(*,*,46)
data_s(*,*,46)=data_s(*,*,47)
data_s(*,*,47)=data_s(*,*,48)
data_s(*,*,48)=data_s(*,*,49)
data_s(*,*,49)=data_s(*,*,50)
data_s(*,*,50)=data_s(*,*,51)
data_s(*,*,51)=data_s(*,*,52)
data_s(*,*,52)=data_s(*,*,53)
data_s(*,*,53)=data_s(*,*,54)
data_s(*,*,54)=data_s(*,*,55)
data_s(*,*,55)=data_s(*,*,56)
data_s(*,*,56)=data_s(*,*,57)
data_s(*,*,57)=data_s(*,*,58)
data_s(*,*,58)=data_s(*,*,59)
data_s(*,*,59)=data_s(*,*,60)

set_plot,'z'
device,set_resolution=[1024,512]

loadct,3
gamma_ct,0.5
tvlct,rr,gg,bb,/get

ndata1=n_elements(index_l)

outmov=bytarr(1024,512,ndata1)

for i=0,ndata1-1 do begin
    tvscl,data_l(*,*,i),0,0,/dev
    tvscl,data_s(*,*,i),512,0,/dev
    snap=tvrd()
    outmov(*,*,i)=snap
endfor

device,/close & set_plot,'x'

window,0,xs=1024,ys=512
gamma_ct,0.25

; ec_s=index_s.date_obs
; ec_l=index_l.date_obs

; ;Need to fix from 40 to 55
; ec_l(40)=ec_l(39)
; ; ec_l(44)=ec_s(44)
; ; ec_l(45)=ec_s(44)
; ; ec_l(46)=ec_s(45)

; for i=20,60 do print,i,'  ',ec_s(i),'---',ec_l(i)

stepper,index_s,outmov

;stop

;***Make composite***
COMP:

; add the shortest exposure for the first 38 images

index_m=index_s
data_m=data_s

; i=30 & data=[[[data_m(*,*,i)]],[[fshift(data_m(*,*,65),-0.5,-2.8)]]]
; stepper,data

index_s(0:38)=index_s(65)
for i=0,25 do data_s(*,*,i)=fshift(data_s(*,*,65),-1,-3)
for i=26,28 do data_s(*,*,i)=fshift(data_s(*,*,65),-1,-2.9)
for i=29,31 do data_s(*,*,i)=fshift(data_s(*,*,65),-0.5,-2.8)
data_s(*,*,32)=fshift(data_s(*,*,65),-0.5,-2.7)
data_s(*,*,33)=fshift(data_s(*,*,65),-0.5,-2.7)
data_s(*,*,34)=fshift(data_s(*,*,65),-0.5,-2.6)
data_s(*,*,35)=fshift(data_s(*,*,65),-0.5,-2.6)
data_s(*,*,36)=fshift(data_s(*,*,65),-0.5,-2.5)
data_s(*,*,37)=fshift(data_s(*,*,65),-0.5,-2.5)
data_s(*,*,38)=fshift(data_s(*,*,65),-0.5,-2.0)

data_cmp=fltarr(512,512,ndata1)

for i = 0,38 do begin
    mk_xrt_comp3, index_l[i], data_l[*,*,i], index_m[i], data_m[*,*,i], $
        index_s[i], data_s[*,*, i], ii_cmp, dd_cmp, despike=2, despot=1
    data_cmp(*,*,i)=median(dd_cmp,3) ; Supresses intensity gap in AR
endfor

for i = 39,n_elements(index_l)-1 do begin
    mk_xrt_composite, index_l[i], data_l[*,*,i], index_s[i], data_s[*,*, i], $
        ii_cmp, dd_cmp, despike=2, despot=1
    data_cmp(*,*,i)=median(dd_cmp,3) ; Supresses intensity gap in AR
endfor

loadct,3
gamma_ct,0.5
stepper,index_l, safe_log10(data_cmp>200)

stop

;***New dust map clean up***
DUST:

index1=index_l
ndata2=n_elements(index1)
data=data_cmp

;restore, 'SYNOP/dust24temp2.dat'
restore, 'dust24temp2.dat'
dust24b=dust

for i=0,ndata2-1 do begin
    eclipse24_spotcor,index1(i),data1(*,*,i),ii,dd,/all,dust=dust24b
    if i eq 0 then index = ii else index = str_concat(index,ii)
    data(*,*,i)=dd
endfor

stepper, index,safe_log10(data>200)

stop 

MOVIE:

; iout = index & data=bytscl(safe_log10(data)>1.0<6.0) ;same intensity scale
; ndata=n_elements(iout)

; eclipse images
ndata = n_elements(index)
movarr_al = bytarr(600,600,ndata)
numstr=string(indgen(ndata),format='(i4.4)') 

wdef,0,650,650

set_plot,'z'     ; Creates a virtual platform 
device,set_resolution=[600,600]
fovx = 1.03*2106.57/60.
fovy = 1.03*2106.57/60.

;load color tables
loadct, 3 
gamma_ct, 0.5 ; was 1 without xrt prep, 3 w/

;do loop to generate movie array
for i = 0, ndata-1 do begin
    index2map,index(i), data(*,*,i),xmap
    info2 = strmid(get_info(index(i),/nonint),5,20)
    plot_map,xmap,center=[xmap.xc,xmap.yc],fov=[fovx,fovy], $
        title='Hinode/XRT - Al-Poly/Open '+info2, /log, $
        position=[0.1,0.1,0.95,0.95],/normal
    snap = tvrd()
    movarr_al(*,*,i) = snap
endfor

;view generated .png
;exits the virtual platform
device, /close & set_plot,'x'

loadct,3
gamma_ct, 2.5 ; was 2.25 before xrt prep, 3 w/
tvlct,rr,gg,bb,/get

stepper,movarr_al

stop

PNG: 

movy_dir = '/home/rfleming/Movies/20241002_eclipse/'
numstr=string(indgen(ndata),format='(i4.4)')
flnm='eclipse_cmp1_'
outfiles = movy_dir+flnm+numstr+'.png'
for i=12,ndata1-1 do write_png,outfiles(i),movarr_al(*,*,i),rr,gg,bb

; ffmpeg -framerate 20 -pattern_type glob -i 'eclipse_cmp*.png' -vcodec libx264 -crf 20 -pix_fmt yuv420p ./eclipse_1002_cmp_new.mp4

end
