;+ ; NAME: ; oc_star2ev_assafin2010p ; ; PURPOSE: (one line) ; returns a event structure ; ; DESCRIPTION: ; Returns a fully-populated event structure for each ; star from Assafin 2010, prediction tables ; ; CATEGORY: ; Star catalogs ; ; CALLING SEQUENCE: ; evs = oc_star2ev_assafin2010p(stars, /VERBOSE]) ; ; INPUTS: ; stars : lines from the prediction files of Assafin et al. 2010 ; e.g, pluto.dat ; ; KEYWORD INPUT PARAMETERS: ; VERBOSE -- Print messages about incorrect/missing ID's to screen if set. ; ; OUTPUTS: ; Structures of type 'ev' with fields filled in. ; ;- function oc_star2ev_assafin2010p, stars, nev, target=target_in, NSTARS=nstars, VERBOSE=VERBOSE deg = !pi/180. arcsec = deg / 3600. au = 149597870.691 ; km naif = {targetcode:999} eph = {naif:naif} ev1 = {et:0., fgh:[0.d,0.d,0.d], fgherr:[0.d,0.d,0.d], sep:0., star:stars[0], eph:eph } nev = n_elements(stars) ev = replicate(ev1, nev) for i = 0, nev-1 do begin s = stars[i] ev[i].star = s et = s.et sep = s.assafin2010p.sep pa = s.assafin2010p.pa delta = s.assafin2010p.dist et = s.et h = delta * au f = (sep * arcsec) * sin(pa * deg) * h g = (sep * arcsec) * cos(pa * deg) * h fgh = [f,g,h] fgherr = [s.raerr, s.decerr, 0.] * h case strmid(s.id,0,1) of 'P': target = 999 'C': target = 901 'N': target = 902 'H': target = 903 endcase case target of 999: err = 600. 901: err = 600. 902: err = 1500. 903: err = 1500. endcase fgherr = sqrt(fgherr^2 + [err,err,0]^2) eph.naif.targetcode = target ; ev[i] = {et:et, fgh:[f,g,h], fgherr:[0.d,0.d,0.d], sep:sep *arcsec, star:s, eph:eph } ev[i].et = et & ev[i].fgh=fgh & ev.fgherr = fgherr & ev.sep=sep & ev.star = s & ev.eph = eph if keyword_set(verbose) then begin print, et2utc(et) print, fgh print, sep endif endfor return, ev end