;+ ; NAME: ; oc_search_denis_single ; PURPOSE: (one line) ; Return array of star structures around a single position ; DESCRIPTION: ; Return array of star structures ; CATEGORY: ; occultation ; CALLING SEQUENCE: ; stars = oc_search_denis_single(ra, dec, radius, nstars, _extra=extra, ; verbose=verbose, method = method) ; INPUTS: ; ra - right ascension (radian) ; dec - declination (radian) ; radius - search radius (radian) ; OPTIONAL INPUT PARAMETERS: ; none ; KEYWORD INPUT PARAMETERS: ; verbose : set (1) to print out information ; method : 'scat' or 'vizier' ; KEYWORD OUTPUT PARAMETERS: ; none ; OUTPUTS: ; nstars : number of stars found (0 if none) ; returns array of star array (-1 is none found) ; COMMON BLOCKS: ; None ; SIDE EFFECTS: ; RESTRICTIONS: ; This version fills in only the minimum star ; PROCEDURE: ; MODIFICATION HISTORY: ; Written 2005 November, by Leslie Young, SwRI ;- function oc_search_denis_single, ra, dec, radius, nstars, $ verbose=verbose, method = method, $ _extra=extra cat = 'Denis' ; set up an empty USNO B10 star idcat = cat id = 'none' poscat = cat et = 0.d ; J2000 = 0 seconds (TDB) after J2000 epoch ra_ = -999.d dec_ = -999.d raerr = -999.d decerr = -999.d radot = -999.d decdot = -999.d radoterr = -999.d decdoterr = -999.d magcat = [ cat, cat, cat] magname = [ 'I', 'J', 'K'] mag = [-999.d, -999.d, -999.d] magerr = [-999.d, -999.d, -999.d] SpTcat = 'none' SpT = '' notecat = [cat] note = ['','',''] star = {idcat:idcat, id:id, $ poscat:poscat, et:et, ra:ra_, dec:dec_, $ raerr:raerr, decerr:decerr,$ radot:radot, decdot:decdot, $ radoterr:radoterr, decdoterr:decdoterr, $ magcat:magcat, magname:magname, mag:mag, magerr:magerr, $ sptcat:sptcat, spt:spt, notecat:notecat, note:note} ; switch on method defaultmethod = 'vizier' if keyword_set(method) then begin usemethod = strlowcase(method) endif else begin usemethod = defaultmethod endelse definedmethods = ['vizier'] imatch = where(usemethod eq definedmethods, nmatch) if nmatch eq 0 then begin if keyword_set(verbose) then begin print, 'oc_search_denis_single: method (', method, $ ') should be one of ', definedmethods, $ '. Defaulting to ', defaultmethod end usemethod = defaultmethod end if keyword_set(verbose) then begin print, 'oc_search_denis_single: using method ', usemethod end case usemethod of 'vizier': begin stars = -1 & nstars = 0 ;------------------------------------------ ; Construct the command line call to Vizier ;------------------------------------------ s='-order=I' rastr, ra, 4, rastr, carry, sepchar=':' decstr, dec, 3, decstr, sepchar=':' s=s+'&' + '-c=' + rastr + '%20' + decstr ; search position s=s+'&' + '-c.eq=J2000' ; epoch s=s+'&' + '-oc.form=sexa' ; sexadecimal s=s+'&' + '-out.max=9999' ; 9999 lines s=s+'&' + '-out.form=Tab-Separated-Values' ; output type rstr = strtrim(string(radius*180.d*3600.d/!dpi,for='(F11.3)'),2) s=s+'&' + '-c.r='+rstr ; search radius s=s+'&' + '-c.u=arcsec' ; units (arcsec) s=s+'&' + '-c.geom=r' ; radius, not box s=s+'&' + '-out.add=_RAJ2000,_DECJ2000' ; compute ra, dec ; s=s+'&' + '-sort=_RA*-c.eq' ; sort by position s=s+'&' + '-source=B/denis' ; catalog (USNO_B1.0) s=s+'&' + '-out.all=1' ; output all columns url = 'http://vizier.u-strasbg.fr/viz-bin/asu-tsv' command = 'curl ' + $ '--silent ' + $ '"' + url + "?" + s + '"' ;------------------------------------------ ; Call Vizier ;------------------------------------------ if keyword_set(VERBOSE) then begin print, 'oc_search_denis_single: Executing command: ' + $ command endif spawn, command, vizout ;------------------------------------------ ; Count the stars ;------------------------------------------ nline = n_elements(vizout) char0 = strmid(vizout,0,1) idash = where(char0 eq '-', ndash) if ndash eq 0 then begin lines_header = nline endif else begin lines_header = idash[0]+1 endelse if lines_header lt nline then begin viz_chop = vizout[lines_header:nline-1] ok = where(strlen(viz_chop) gt 0, nstars) if nstars gt 0 then viz_chop = viz_chop[ok] endif else begin nstars = 0 endelse if keyword_set(VERBOSE) then begin print, 'oc_search_denis_single: '+$ 'Found ' + st(nstars) + ' matching stars' print, vizout[0:lines_header-1] end ; If none found, then return if (nstars le 0) then return, -1 if keyword_set(VERBOSE) then begin print, viz_chop[0] end ;------------------------------------------ ; Parse the output ;------------------------------------------ ; 1- 16 A16 --- DENIS DENIS name, identifier ; 18- 24 I7 --- Image DENIS image number (1) ; 26- 30 I5 --- Strip DENIS strip number ; 32- 41 F10.6 deg RAdeg Right ascension (J2000) ; 43- 52 F10.6 deg DEdeg Declination (J2000) ;-------------------------------------------------------------------------------- ; 54- 59 F6.3 mag Imag ?Magnitude in I band from PSF fit ; 61- 65 F5.2 mag e_Imag ?Magnitude error in I band from PSF fit ; 67- 72 F6.3 mag Jmag ?Magnitude in J band from PSF fit ; 74- 78 F5.2 mag e_Jmag ?Magnitude error in J band from PSF fit ; 80- 85 F6.3 mag Kmag ?Magnitude in K band from PSF fit ; 87- 91 F5.2 mag e_Kmag ?Magnitude error in K band from PSF fit ; 93- 98 F6.3 mag Imag5.5 ?Magnitude in I band from 5.5'' aperture ; 100-104 F5.2 mag e_Imag5.5 ?Error in I band mag from 5.5'' aperture ; 106-111 F6.3 mag Jmag5.5 ?Magnitude in J band from 5.5'' aperture ; 113-117 F5.2 mag e_Jmag5.5 ?Error in J band mag from 5.5'' aperture ; 119-124 F6.3 mag Kmag5.5 ?Magnitude in K band from 5.5'' aperture ; 126-130 F5.2 mag e_Kmag5.5 ?Error in K band mag from 5.5'' aperture ; 132-137 F6.3 mag Imag4.5 ?Magnitude in I band from 4.5'' aperture ; 139-143 F5.2 mag e_Imag4.5 ?Error in I band mag from 4.5'' aperture ; 145-150 F6.3 mag Jmag4.5 ?Magnitude in J band from 4.5'' aperture ; 152-156 F5.2 mag e_Jmag4.5 ?Error in J band mag from 4.5'' aperture ; 158-163 F6.3 mag Kmag4.5 ?Magnitude in K band from 4.5'' aperture ; 165-169 F5.2 mag e_Kmag4.5 ?Error in K band mag from 4.5'' aperture ; 171-176 F6.3 mag Imag3.5 ?Magnitude in I band from 3.5'' aperture ; 178-182 F5.2 mag e_Imag3.5 ?Error in I band mag from 3.5'' aperture ; 184-189 F6.3 mag Jmag3.5 ?Magnitude in J band from 3.5'' aperture ; 191-195 F5.2 mag e_Jmag3.5 ?Error in J band mag from 3.5'' aperture ; 197-202 F6.3 mag Kmag3.5 ?Magnitude in K band from 3.5'' aperture ; 204-208 F5.2 mag e_Kmag3.5 ?Error in K band mag from 3.5'' aperture ; 210-215 F6.3 mag Imag3.5c ?I band Magnitude in 3.5'' corr. aperture ; 217-221 F5.2 mag e_Imag3.5c ?I band mag error in 3.5'' corr. aperture ; 223-228 F6.3 mag Jmag3.5c ?J band Magnitude in 3.5'' corr. aperture ; 230-234 F5.2 mag e_Jmag3.5c ?J band mag error in 3.5'' corr. aperture ; 236-241 F6.3 mag Kmag3.5c ?K band Magnitude in 3.5'' corr. aperture ; 243-247 F5.2 mag e_Kmag3.5c ?K band mag error in 3.5'' corr. aperture ; 249-254 F6.3 mag Imag2.5c ?I band Magnitude in 2.5'' corr. aperture ; 256-260 F5.2 mag e_Imag2.5c ?I band mag error in 2.5'' corr. aperture ; 262-267 F6.3 mag Jmag2.5c ?J band Magnitude in 2.5'' corr. aperture ; 269-273 F5.2 mag e_Jmag2.5c ?J band mag error in 2.5'' corr. aperture ; 275-280 F6.3 mag Kmag2.5c ?K band Magnitude in 2.5'' corr. aperture ; 282-286 F5.2 mag e_Kmag2.5c ?K band mag error in 2.5'' corr. aperture ; 288-293 F6.3 mag Imag1.5c ?I band Magnitude in 1.5'' corr. aperture ; 295-299 F5.2 mag e_Imag1.5c ?I band mag error in 1.5'' corr. aperture ; 301-306 F6.3 mag Jmag1.5c ?J band Magnitude in 1.5'' corr. aperture ; 308-312 F5.2 mag e_Jmag1.5c ?J band mag error in 1.5'' corr. aperture ; 314-319 F6.3 mag Kmag1.5c ?K band Magnitude in 1.5'' corr. aperture ; 321-325 F5.2 mag e_Kmag1.5c ?K band mag error in 1.5'' corr. aperture ;-------------------------------------------------------------------------------- ; 327-330 F4.1 mag Rmag ?R magnitude of USNOA2.0 nearest match ; 332-335 F4.1 mag Bmag ?B magnitude of USNOA2.0 nearest match ; 337-339 I3 --- q_Imag [0,100]?Quality flag for I band ; 341-343 I3 --- q_Jmag [0,100]?Quality flag for J band ; 345-347 I3 --- q_Kmag [0,100]?Quality flag for K band ; 349-351 I3 --- Ipsf [0,100]?Correlation to PSF for I band ; 353-355 I3 --- Jpsf [0,100]?Correlation to PSF for J band ; 357-359 I3 --- Kpsf [0,100]?Correlation to PSF for K band ; 361-364 F4.2 --- IMpsf [0,1]?Mean correlation to PSF in I band ; 366-369 F4.2 --- JMpsf [0,1]?Mean correlation to PSF in J band ; 371-374 F4.2 --- KMpsf [0,1]?Mean correlation to PSF in K band ; 376-380 F5.1 pix Ix ?Pixel x position in I band ; 382-386 F5.1 pix Iy ?Pixel y position in I band ; 388-392 F5.1 pix Jx ?Pixel x position in J band ; 394-398 F5.1 pix Jy ?Pixel y position in J band ; 400-404 F5.1 pix Kx ?Pixel x position in K band ; 406-410 F5.1 pix Ky ?Pixel y position in K band ;-------------------------------------------------------------------------------- ; 412-421 F10.6 deg A2RAdeg ?Right Ascension of USNOA2.0 nearest match ; 423-432 F10.6 deg A2DEdeg ?Declination of USNOA2.0 nearest match ; 434-441 F8.3 yr A2Ep ?Epoch of USNOA2.0 nearest match ; 443-447 I5 mas Dist ?Distance to USNOA2.0 nearest match ; 449-462 F14.6 d ObsJD Julian day for DENIS observation ; 464-467 I4 --- Iflg ?Image and source flag in I band (2) ; 469-472 I4 --- Jflg ?Image and source flag in J band (2) ; 474-477 I4 --- Kflg ?Image and source flag in K band (2) ; 479 I1 --- mult ?Multiplicity flag (3) char_sep = string(9B) stars = replicate(star, nstars) for istar = 0, nstars-1 do begin fields = (ht_str_split(viz_chop[istar], char=char_sep)) image = fields[5] strip = fields[6] stars[istar].id = fields[78] stars[istar].ra = float(fields[7]) * !dpi/180.d stars[istar].dec = float(fields[8]) * !dpi/180.d I = flt(fields[9], -999.d) Ierr = flt(fields[10], -999.d) J = flt(fields[11], -999.d) Jerr = flt(fields[12], -999.d) K = flt(fields[13], -999.d) Kerr = flt(fields[14], -999.d) stars[istar].mag = [i,j,k] stars[istar].magerr = [ierr,jerr,kerr] stars[istar].note[0] = 'VIZIER, filling in minimum fields' stars[istar].note[1] = image stars[istar].note[2] = strip end end endcase ; ids = reform(stars.id) ids = stars.id stars = stars[uniq(ids)] stars = stars[sort(stars.id)] return, stars end