Spanish Virtual Observatory

Grant PID2020-112494GBI00 funded by

Máster MTAF. Universidad Granada

April 2012


Case 1: Discovery of Brown Dwarfs mining the 2MASS and SDSS databases


  • Background: Brown dwarfs are objects occupying the gap between the least massive stars and the most massive planets. They are intrinsically faint objects so their detection is not straighforward and, in fact, was almost impossible until the advent of global surveys at deep optical and near-infrared bands like SDSS, 2MASS or DENIS among others.

We propose here to mine the SDSS and 2MASS databases to identify T-type brown dwarfs through an appropriate combination of colours in the optical and the infra-red, an approach that perfectly fits into the Virtual Observatory.

  • Workflow:

With this use case, we explore different ways to do the same tasks (cross-match, source selection,...) with different VO tools. 

  • First flow (Aladin): ALADIN is used to
  • Search 2MASS PSC and SDSS sources (File --> Open. Click "Surveys" in the Server selector window.)
    • Target: RA:08 30 00 DEC:01 30 00 (default radius: 14 arcminutes)
      • Survey 2MASS: 683 sources
      • Survey SDSS/DR7:  9855 sources 
  • Find common sources in 2MASS and SDSS catalogues (use the Aladin catalogue cross match tool with default threshold (4 arcsec) and bestmatch option): 680 sources.
  • Select points sources using the SDSS flag (cl_tab2=6) creating a filter plane:
    • Click "Xmatch plane".
    • Filter / Advanced mode / Pick Columns / write "{draw}" after the filter conditionsClick "Apply" and "Export" ->  644 sources
  • Select sources with no detection in the u,g SDSS filters (umag_tab2 > 22.0 & gmag_tab2 >22.2) using a new filter plane: 6 sources
  • (J-H)<0.3 && (H-K)<0.3 : 1 object --> RA:127.703265deg; DEC:1.475320deg. To do so, you can either use arithmetic operations between columns directly in the filter syntax, or you can create new columns (Catalog --> Add a new column) that are an arithmetic combination of 2 columns (e.g. Jmag - Hmag)
  • Confirmation of the brown dwarf nature of this object by searching through VO services using the Load from the Virtual Observatory option (in particular Simbad).


  • Second flow (TOPCAT): TOPCAT is used to
  • Search the 2MASS and SDSS sources with a cone search from TOPCAT around RA:08h 30m DEC:01 30 00

  • In the main window: File --> VO--> Vizier Catalogue Service
  • Cone selection: Give the coordinates and a radius of 14'. Maximum Row Count: unlimited
  • Catalogue selection: Surveys --> 2MASS PSC
  • Repeat for the SDSS-DR7 search
  • Alternatively, you could load the 2MASS and SDSS catalogs in Aladin and broadcast the planes to TOPCAT using SAMP.
  • Create a new table by matching raws in the two tables with 4" maximum error and the best match option. 680 pairs are found. Select the coordinates given in each catalogue (RAJ2000, DEJ2000)
  • Visualise the cross-matched raws and define a raw subset for which the SDSS class is equal to 6 --> 643 sources are found
  • Select sources with no detection in the u,g SDSS filters (u > 22.0 & g >22.2) by defining a new raw subset (6 remaining sources
  • Update the selection criteria to add the criteria:

  • (J-H)<0.3 && (H-K)<0.3 : 1 object --> RA:127.703265deg; DEC:1.475320deg. As in the previous flow, you can either give selection criteria that are an arithmetic combination of columns, or you can create new columns in the catalog. For this, go to the main TOPCAT window -> Views --> Column info --> Columns -> New synthetic column


  • Third flow (Advanced scripting / ALADIN): ALADIN has a script mode, where you can build a list of commands to be processed (Tool > Macro Controller). The workflow can be executed automatically for a list of targets.
  • Open the Tool > Macro Controller in Aladin
    • rm all
    • sync
    • 2mass = get VizieR(2MASS-PSC) $1 $2 14'
    • sync
    • sdss = get VizieR(II/294) $1 $2 14'
    • sync
    • 2massdss= xmatch 2mass sdss 4 bestmatch
    • sync
    • hide 2mass
    • hide sdss
    • sync
    • filter stars_SDSS { ${cl_tab2}==6 {draw} }
    • sync
    • select 2massdss
    • sync
    • cplane stars
    • sync
    • hide 2massdss
    • sync
    • hide stars_SDSS
    • sync
    • filter candidates1 {${umag_tab2}>22.0 && ${gmag_tab2}>22.2 && ${Jmag_tab1}-${Hmag_tab1}<0.3 && ${Hmag_tab1}-${Kmag_tab1}<0.3 {draw}}
    • hide stars_SDSS
    • sync
    • select stars
    • cplane candidatos
    • sync
    • hide stars
    • hide candidates1
    • sync
  • The parameters
    • $1=08 30 00
    • $2=+01 30 00
  • Execute the script for one or all the parameters
  • More information can be found at: "Help > Help on script commands"


  • Fourth flow (Advanced scripting / TOPCAT): we use STILTS to create an script. We need a text file (coord.txt) with the coordinates (RA,DEC) of the region to be explored.
  • java -jar stilts.jar tskymatch2 ifmt1=votable in1=2mass.xml ifmt2=votable in2=sdssdr7.xml ra1=RAJ2000 dec1=DEJ2000 ra2=RAJ2000 dec2=DEJ2000 error=4 find=best join=1and2 ofmt=votable out=cruce.xml
  • java -jar stilts.jar tpipe ifmt=votable in=cruce.xml cmd='select "cl == 6"' ofmt=votable out=filter1.xml
  • java -jar stilts.jar tpipe ifmt=votable in=filter1.xml cmd='select " umag > 22.0 && gmag > 22.2 "' ofmt=votable out=filter2.xm
  • java -jar stilts.jar tpipe ifmt=votable in=filter2.xml cmd='addcol Jmag-Hmag "(Jmag-Hmag)"' ofmt=votable out=addcol1.xm
  • java -jar stilts.jar tpipe ifmt=votable in=addcol1.xml cmd='addcol Hmag-Kmag "(Hmag-Kmag)"' ofmt=votable out=addcol2.xml
  • java -jar stilts.jar tpipe ifmt=votable in=addcol2.xml cmd='select "Jmag-Hmag < 0.3"' ofmt=votable out=filter3.xml
  • java -jar stilts.jar tpipe ifmt=votable in=filter3.xml cmd='select "Hmag-Kmag < 0.3"' ofmt=votable out=candidato.xm
  • java -jar stilts.jar tcopy ifmt=votable in=candidato.xml ofmt=ascii out=candidato.dat


© CAB 2020   (SVO Privacy Policy)