Search for images for particular objects

The following script searches the HST archive for images that cover particular objects. For each object a table containing the list of images is returned (see below for an example returning images)

#!/usr/bin/python
"""
Given a list of object names perform a SIAP search to the HST archive and retrieve the
list of images (Note: not the images)

"""
import os, time
from optparse import OptionParser
from astrogrid import acr, sesame
from astrogrid import SiapSearch

# Read command line arguments
parser = OptionParser()
parser.add_option("-b", "--broadcast", action='store_true', default=False)
(options, args) = parser.parse_args()

# If we are going to send the tables to TOPCAT then start the plastic hub
if options.broadcast:
        acr.startplastic()
        time.sleep(2)

# Define list of objects
objects=['HH111', 'HH30', 'HH211', 'HH47', 'M16', 'Trifid', 'HH524',
         'Sigma Orionis', 'DG Tau', 'HL Tau', 'M16', 'IRAS 04302+2247']

# Define the name resolver service
s = sesame()

# Define the endpoint of the search service
siap = SiapSearch('ivo://cadc.nrc.ca/siap/hst')

# Create output directory if it does not exist
if not os.path.isdir('hst'):
        os.mkdir('hst')

# Loop for each object
for obj in objects:
        coords, ra, dec = s.resolve(obj)
        ofile = 'hst/%s.vot' % obj.replace(' ','_').replace('+','p')
        if not os.access(ofile, os.F_OK):
                res = siap.execute(ra, dec, 30.0/3600.0)
                open(ofile,'w').write(res)
                print obj, ofile
        if options.broadcast:
                acr.plastic.broadcast(ofile, 'TOPCAT')

The following script performs a SIAP search to the SDSS image archive and saves the images to VOspace:

#!/usr/bin/python
"""
Given a list of RA and Dec positions perform a SIAP search saving the 
resultant VOTables and images to MySpace.
"""

import os
from time import sleep
from astrogrid import acr
from astrogrid import SiapSearch

acr.login()

# List of ra and dec. These can be read from a file.
ra = [180.0, 181.0]
dec = [0.0, 0.1]

# Initialize siap service search and name resolver
siap = SiapSearch('ivo://nasa.heasarc/skyview/sdss')

# Loop for each object of the list, query Vizier to get coordinates and execute
# the SIAP search. 

for i in range(len(ra)):
    odir = '#siap/sdss/obj%02d' % (i+1)
    out, th = siap.execute(ra[i], dec[i], 30.0/3600.0, saveAs=odir+'/sdss.vot', saveDatasets=odir)
        while th.isAlive():
                sleep(10)