;label, iso, long, lat ;calib image ; 13165 ; 2022-03-09T20:37:37 ; 77.941986 ; 1.099998 ;-sci frame ; 15117 ; 2022-06-16T20:26:05 ; 173.387755 ; 16.748467 ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; getSB = 0 ;--I.1-- Directories ------------------------------------------------------------------------- spawn, 'hostname', host case strTrim(host) of 'hyperion': dirEuclid = '/data/euclid/' 'endymion': dirEuclid = '/home/bcarry/work/data/euclid/' else: stop endcase dirFilter = dirEuclid+'filters/' dirTaxo = dirEuclid+'taxonomy/' dirImg = dirEuclid+'/images/' ;--I.2-- Imaging DIT & Delays ---------------------------------------------------------------- filt= ['VIS','Y','J','H'] ecCol = ['Black', 'Orange', 'Cornflower blue', 'Firebrick'] DIT = [565., 121, 116, 81] pre = [10.,40,20,20] jit = 75. fov = sqrt(0.57) /2. ;-degree radius nbBlock = 4 nbFilter = 4 ;--I.3-- Targeted FOV ------------------------------------------------------------------------ t1 = '2022-06-16T20:26:05' t2 = '2022-06-16T21:36:05' eLon = 173.387755 eLat = 16.748467 id = 15117 ;in RS raDec = framecoord_ec2eq( eLon, eLat ) ra = raDec[0] dec= raDec[1] jd1 = date_conv( t1, 'JULIAN') vis = 0.1 ;- "/pix nisp = 0.3 ;- "/pix ;--I.4-- Look 'n' Feek ------------------------------------------------------------------------- lineThick = 10 sel = '2016 CK158' ;stop ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- II -- SkyBot Requests -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; if getSB eq 1 then begin ;--II.1-- First epoch ---------------------------------------------------------------------- ; sso1 = voSkybot_coneSearch( ra, dec, fov*1.5, t1, dump=dirImg+'skybot-'+t1+'.xml', mime='votable') sso1 = voSkybot_coneSearch( ra, dec, fov*1.5, t1, dump=dirImg+'skybot-'+t1+'.txt', mime='text' ) n1 = n_elements(sso1) ;--II.2-- Last epoch ----------------------------------------------------------------------- ; sso2 = voSkybot_coneSearch( ra, dec, fov*1.5, t2, dump=dirImg+'skybot-'+t2+'.xml', mime='votable' ) sso2 = voSkybot_coneSearch( ra, dec, fov*1.5, t2, dump=dirImg+'skybot-'+t2+'.txt', mime='text' ) n2 = n_elements(sso2) ;--II.3-- All times ------------------------------------------------------------------------ for kC=0, nbBlock-1 do begin for kF=0, nbFilter-1 do begin if kF eq 0 then begin before = kC*(jit+total(pre+DIT)) + pre[0] after = kC*(jit+total(pre+DIT)) + pre[0] + DIT[0] endif else begin before = kC*(jit+total(pre+DIT)) + total(pre[0:kF]) + total(DIT[0:kF-1]) after = kC*(jit+total(pre+DIT)) + total(pre[0:kF]) + total(DIT[0:kF]) endelse jdB = jd1 + before/(3600.*24.d) jdE = jd1 + after /(3600.*24.d) isoB = date_conv(jdB, 'FITS') isoE = date_conv(jdE, 'FITS') print, kC,filt[kF], DIT[kF], pre[kF] ,before, $ format='(I1,1x,A-4,1x,I3,2x,I3,4x,I5)' ssoB = voSkybot_coneSearch( ra, dec, fov*1.5, jdB, dump=dirImg+'skybot-'+isoB+'.txt', mime='text' ) ssoE = voSkybot_coneSearch( ra, dec, fov*1.5, jdE, dump=dirImg+'skybot-'+isoE+'.txt', mime='text' ) endfor endfor endif else begin sso1 = voSkybot_read( dirImg+'skybot-'+t1+'.txt', mime='text' ) n1 = n_elements(sso1) sso2 = voSkybot_read( dirImg+'skybot-'+t2+'.txt', mime='text' ) n2 = n_elements(sso2) endelse ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--- TAG --- III -- Graphic -----------------------; ;-----------------------------------------------------------------------------------------------; ;-----------------------------------------------------------------------------------------------; ;--II.1-- Set up EPS ------------------------------------------------------------------------- name = 'Euclid-Sky-'+strTrim(string(id),2)+'-.eps' cgPS_open, Filename=dirImg+name, /metric, /decomposed, /encapsulated, $ xSize=35, ySize=35, language_level=2, /quiet, /color xRang = ra + [-1,1]*fov yRang = dec + [-1,1]*fov cgPlot, 0,0, /NoData, /Normal, $ xStyle=1, xRange=xRang, $ yStyle=1, yRange=yRang, $ xTitle = 'Right Ascencion (!Uo!N)', $ yTitle = 'Declination (!Uo!N)', $ ; xTickInt = 0.1, $ ; yTickInt = 0.1, $ position=[0.09,0.09,0.99,0.99] ;--II.2-- Plot all streaks ------------------------------------------------------------------- for k=0, n1-1 do begin ; for k=0, 20, 2 do begin ;--Current object name1 = sso1[k].name ;-- for each filter, draw the 4 blocks for kF=0, nbFilter-1 do begin for kC=0, nbBlock-1 do begin if kF eq 0 then begin before = kC*(jit+total(pre+DIT)) + pre[0] after = kC*(jit+total(pre+DIT)) + pre[0] + DIT[0] endif else begin before = kC*(jit+total(pre+DIT)) + total(pre[0:kF]) + total(DIT[0:kF-1]) after = kC*(jit+total(pre+DIT)) + total(pre[0:kF]) + total(DIT[0:kF]) endelse jdB = jd1 + before/(3600.*24.d) jdE = jd1 + after /(3600.*24.d) isoB = date_conv(jdB, 'FITS') isoE = date_conv(jdE, 'FITS') ssoB = voSkybot_read( dirImg+'skybot-'+isoB+'.txt', mime='text' ) ssoE = voSkybot_read( dirImg+'skybot-'+isoE+'.txt', mime='text' ) posB = where( strCmp(ssoB.name,name1) ) posE = where( strCmp(ssoE.name,name1) ) if posB[0] ne -1 and posE[0] ne -1 then begin raVec = [ ssoB[posB].ra.dec, ssoE[posE].ra.dec ] decVec = [ ssoB[posB].dec.dec, ssoE[posE].dec.dec ] cgPlot, /OverPlot, raVec, decVec, color=ecCol[kF], thick=lineThick print, k, n1, kC, kF, name1, $ ssoB[posB].ra.dec - ssoE[posE].ra.dec, $ ssoB[posB].dec.dec - ssoE[posE].dec.dec, $ format='(I3,1x,I3,3x,I1,1x,I1,4x,A-30,5x,F8.5,1x,F8.5)' endif endfor endfor endfor ;--II.3-- Key -------------------------------------------------------------------------------- xKey = 166.87 yKey = 12.47 xLen = 0.05 yShi = 0.035 for kF=0, nbFilter-1 do begin cgPlot, /OverPlot, xKey+[0,xLen], [yKey,yKey]+kF*yShi, color=ecCol[kF], thick=5*lineThick cgText, xKey+xLen*1.3, yKey+kF*yShi-0.006, filt[kF] endfor ;--II.4-- Zoom ------------------------------------------------------------------------------- theta = 2*!PI*findgen(361)/360 rad1 = 0.01 pos1 = where( strCmp(sso1.name,sel) ) pos2 = where( strCmp(sso2.name,sel) ) if pos1[0] ne -1 and pos2[0] ne -1 then begin raVec = [ sso1[pos1].ra.dec, sso2[pos2].ra.dec ] decVec = [ sso1[pos1].dec.dec, sso2[pos2].dec.dec ] raLen = sso2[pos2].ra.dec - sso1[pos1].ra.dec decLen = sso2[pos2].dec.dec - sso1[pos1].dec.dec maxLen = max( [raLen,decLen] ) ra = mean( raVec) dec = mean(decVec) cgPlot, /overplot, ra + rad1 * cos(theta), dec+ rad1 * sin(theta) pos = [167.2, 12.86] rad2=0.12 cgPlot, /overplot, pos[0] + rad2 * cos(theta), pos[1]+ rad2 * sin(theta) cgPlot, /overplot, [pos[0] + rad2, ra], [pos[1],dec-rad1] cgPlot, /overplot, [pos[0], ra-rad1], [pos[1]+rad2,dec] cgText, 166.87, 13.075, 't!D0!N = '+t1 ; cgText, pos[0], pos[1]+0.8*rad, align=0.5, 'Zoom', /Data ; cgText, pos[0], pos[1]+0.65*rad, align=0.5, sel, /Data ; cgText, pos[0], pos[1]+0.8*rad, align=0.5, sel, /Data cgPlot, raVec, decVec, /NoErase, /NoData, $ xStyle=1+4, xRange=[-1.1,1.1]*maxLen/2. + ra, $ yStyle=1+4, yRange=[-1.1,1.1]*maxLen/2. + dec, $ position=[0.39,0.56,0.65,0.82] ; position=[0.39,0.6,0.65,0.86] cgText, ra, dec-0.001, align=0.5, sel, /Data, orient=270 - atan(raLen/decLen)/!DTOR for kF=0, nbFilter-1 do begin for kC=0, nbBlock-1 do begin if kF eq 0 then begin before = kC*(jit+total(pre+DIT)) + pre[0] after = kC*(jit+total(pre+DIT)) + pre[0] + DIT[0] endif else begin before = kC*(jit+total(pre+DIT)) + total(pre[0:kF]) + total(DIT[0:kF-1]) after = kC*(jit+total(pre+DIT)) + total(pre[0:kF]) + total(DIT[0:kF]) endelse jdB = jd1 + before/(3600.*24.d) jdE = jd1 + after /(3600.*24.d) isoB = date_conv(jdB, 'FITS') isoE = date_conv(jdE, 'FITS') ssoB = voSkybot_read( dirImg+'skybot-'+isoB+'.txt', mime='text' ) ssoE = voSkybot_read( dirImg+'skybot-'+isoE+'.txt', mime='text' ) posB = where( strCmp(ssoB.name,sel) ) posE = where( strCmp(ssoE.name,sel) ) if posB[0] ne -1 and posE[0] ne -1 then begin raVec = [ ssoB[posB].ra.dec, ssoE[posE].ra.dec ] decVec = [ ssoB[posB].dec.dec, ssoE[posE].dec.dec ] cgPlot, /OverPlot, raVec, decVec, color=ecCol[kF], thick=lineThick endif if kF eq 0 then begin cgText, ssoB[posB].ra.dec+0.00025, ssoB[posB].dec.dec+0.00025, $ 't!D0!N+'+strtrim(string(before,format='(I5)'),2)+'s' endif endfor endfor xKey = ra cgErrPlot, /Horizontal, dec-0.9*maxLen/2., xKey-1.5/3600., xKey+1.5/3600., thick=4, width=0.025 cgText, xKey, dec-0.85*maxLen/2., '3"', /Data, align=0.5 endif cgPS_close, /png, Delete_PS=0 end