pro get_fk5_catalog, fk5_catalog ; ; Read the FK5 star catalog into an array of structures ; ; B. Knapp, 2001-06-19 ; ; Print usage? if n_params() eq 0 then begin print,' ' print,' The procedure get_fk5_catalog reads the Fifth Fundamental' print,' Catalog of Stars ("FK5") into an array of structures.' print,' ' print,' Usage: ' print,' get_fk5_catalog, fk5_catalog' print,' ' return endif ; ; Sexagesimal quantities sexagesimal_hours = {sgh, h:0.0, m:0.0, s:0.0} sexagesimal_degrees = {sgd, d:0.0, m:0.0, s:0.0} ; Define the structure: fk5_struct = {fk5_str, $ fk5_id: ' ', $ ;A4 ra: sexagesimal_hours, $ ;hours, minutes, seconds uncra: 0.0, $ ;0.001 seconds pmra: 0.0, $ ;seconds of time/century uncpmra: 0.0, $ ;0.001 seconds/century dec: sexagesimal_degrees, $ ;degrees, minutes, seconds uncdec: 0.0, $ ;0.01 arc seconds pmdec: 0.0, $ ;arc seconds/century uncpmdec: 0.0, $ ;0.01 arc seconds/century parallax: 0.0, $ ;arc seconds radial_vel: 0.0, $ ;km/sec phot_mag: ' ', $ ;A6 spectrum: ' ', $ ;A6 agk3r_id: ' ', $ ;A5 srs_id: ' ', $ ;A5 hd_id: ' ', $ ;A6 dm_id: ' ', $ ;A9 gc_id: ' '} ;A5 ; ; Create an array for the catalog ndata = 8192 fk5_catalog = replicate(fk5_struct,ndata) ; ; Define file variables fk5id = '' rah = 0 ram = 0 ras = 0.0 pmra_sgn = '' pmra = 0.0 decd_sgn = '' decd = 0 decm = 0 decs = 0.0 pmdec_sgn = '' pmdec = 0.0 uncra = 0.0 uncpmra = 0.0 uncdec = 0.0 uncpmdec = 0.0 mag = '' spectrum = '' parallax = 0.0 radial_v_sgn = '' radial_v = 0.0 agk3r = '' srs = '' hd = '' dm = '' gc = '' ; ; Open and read in the FK5 catalog file openr,lun,'$bgkroot/dat/astronomy/FK5_1_2.DAT',/get_lun record = '' n = -1L while not eof(lun) do begin readf,lun,record reads,record,fk5id,rah,ram,ras,pmra_sgn,pmra, $ decd_sgn,decd,decm,decs,pmdec_sgn,pmdec, $ uncra,uncpmra,uncdec,uncpmdec,mag,spectrum, $ parallax,radial_v_sgn,radial_v,agk3r,srs,hd,dm,gc, $ format = '(a4,2x,i2,i3,f7.3,2x,a1,f6.3,2x,' + $ 'a1,i2,i3,f6.2,2x,a1,f6.2,' + $ '53x,f5.1,f6.1,8x,f4.1,2x,f4.1,3x,a6,1x,a6,' + $ '1x,f6.4,3x,a1,f5.1,3x,a5,2x,a5,1x,a6,1x,a9,2x,a5)' if pmra_sgn eq '-' then pmra = -pmra if decd_sgn eq '-' then decd = -decd if pmdec_sgn eq '-' then pmdec = -pmdec if radial_v_sgn eq '-' then radial_v = -radial_v ra = {sgh,rah,ram,ras} dec = {sgd,decd,decm,decs} n = n+1 fk5_catalog[n] ={fk5_str,fk5id,ra,uncra,pmra,uncpmra, $ dec,uncdec,pmdec,uncpmdec,parallax,radial_v,mag,spectrum, $ agk3r,srs,hd,dm,gc} endwhile close,lun free_lun,lun ; fk5_catalog = fk5_catalog[0:n] return end