A new set of tools for easily accessing Virtual Observatory data
from the command-line (and thus scripting environments) is now available
for testing. These tasks permit searching for VO resources and the query/access of image and catalog data from more that 15,000 sources. A key design point is the use of astronomer-friendly terms in specifying resources, general search capability (e.g. all X-ray image services), and a variety of output formats (default is CSV for easy manipulation by other tools).
Since this is a testing release, feedback in the forums or comments
is especially appreciated. Detailed examples of how to use the main data query/access task are shown in the main body of the story.
The following examples come from the VODATA documentation showing the many things that can be done with the task. Similar examples are available for the other tasks.
1) Query the GSC 2.2 catalog for stars a) within the 0.1 degree
default search size around NGC 1234: b) around all positions con-
tained in file 'pos.txt': c) for the list of objects given on the
command line: d) query a list of services for a list of positions:
e) print a count of results that would be returned from 3 services
for each position in a file:
% vodata gsc2.2 ngc1234 (a)
% vodata gsc2.2 pos.txt (b)
% vodata gsc2.2 m31,m51,m93 (c)
% vodata svcs.txt pos.txt (d)
% vodata hst,chandra,gsc2.2 pos.txt (e)
2) Query all (142) image services having data of the subdwarf galaxy
IC 10, print a count of the results only:
% vodata -c -t image any IC10
Note that we use the reserved word 'any' for the service name and
constrain by image type. The task will automatically query the
registry to create the list of services to be queried.
3) Print a count of X-ray catalog data around Abell2712:
% vodata -c -t catalog -b x-ray any abell2712
In this case we constrain both the service type as well as the
spectral coverage published for the resource in the registry. We
use the reserved flag to print a count without saving results. The
object name is resolved to coordinates internally. (Note: this
example may take a while to run).
4) Print the column metadata returned by the RC3 catalog service:
% vodata -meta rc3
The output will print the result using the default VERBOSE level,
adding the -v will set the query parameter VERBOSE=2, adding -vv
will set VERBOSE=3 (to print all available columns). When access-
ing data the same -v flags will be required to retrieve columns at
that VERBOSE level.
5) Use the Registry to query for resources using the search terms
"cooling flow". Upon examining the output the user notices a
Vizier paper titled "Cooling Flows in 207 clusters of Galaxies"
that looks interesting. Use the vodata task to download all tables
associated with this paper, save tables in the default CSV format:
% voregistry cooling flow
% vodata -O white97 -all J/MNRAS/292/419/
All 7 tables will be written to the current directory to files hav-
ing a root name 'white97' (chosen based on the author and publica-
tion date).
6) Find a suitable XMM image service, get a (brief) count of the XMM
images available for 3c273, and if there aren't too many, download
the images and save the extracted access URLs:
% voregistry -rv -t image xmm
ShortName ResourceType Title
------------------------------------------------------....
XMM-Newton SIAP/ARCHIVE XMM-Newton Archive ....
% vodata -cq xmm-newton 3c273
xmm-newton 27 I XMM-Newton Archive ....
% vodata -get xmm-newton 3c273
.... will query and download 27 images.
7) Query for the images available from 2MASS at a given position,
extract the positions and service URLs to separate files:
% vodata -e -O 2mass -t image 2mass 12:34:56.7 -23:12:45.2
The query produces files with the root name '2mass', and exten-
sions of ".csv" (the main response), ".pos" (the extracted pos-
itions), and ".urls" (the access references). The user inspects
the files and notices that the references return both FITS and HTML
files, but she only wants the FITS image date and uses vodata to
download only those:
% grep fits 2mass_I_001_15998.urls > images.txt
% vodata images.txt
or
% grep fits 2mass_I_001_15998.urls | vodata -i -
In both cases we pass URLs to the task which bypasses the query and
directly access the images. However, in the first case we process
the entire list and are able to take advantage of the -md option to
increase the number of simultaneous downloads. In the second case,
the -i flag causes the task to interpret each line of the input
stream as a separate command and so the data are always downloaded
one at a time (which is the default download behavior anyway).
8) Use vodata as a test client for a locally-installed SIAP service:
% vodata -t image -s http://localhost/siap.pl 180.0 0.0
In this case we force the ServiceURL using the '-s' flag, but since
we can't do a Registry query to discover what type of service this
is, we must use the '-t' flag to indicate it is an image service.
9) Create a local table containing the Abell catalog. Begin with a
Registry query to find likely services using the voregistry task,
print a verbose description of each resource and page the results
with less:
% voregistry -vv -t catalog abell | less
The verbose results indicate a number of services with differing
requirements for what is included. We decide to use the service
from HEASARC since it contains southern hemisphere data and con-
straints we are interested in. Try an all-sky query to retrieve
the entire catalog, use the service identifier to be specific about
where we want to go:
% vodata -e ivo://nasa.heasarc/abell 0.0 0.0 180.0
We use the '-e' flag to extract the positions to a separate file
with a ".pos" extension so that we can use these in later queries.
However, the .pos file additionally contains the ID from the origi-
nal catalog in column 1. Strip this column so we're left with only
RA and DEC and query for Chandra observations at each position:
% cut -c6- *.pos | vodata ivo://nasa.heasarc/chanmaster -p -
Here we used the unix 'cut' utility to remove the first column and
pipe the resulting positions to the task, using the '-p -' option
to indicate positions should be read from stding, and the IVO iden-
tifier of the Chandra observation master log we also discovered
from the Registry.
10) Interactively query for a count of Chandra observations of Messier
objects:
% vodata -cq chandra -i -
m31
chandra 335 I Chandra X-Ray Observatory Data Archive
: : : : :
Note that by using the '-i' flag we execute each query as if we'd
put the object name on the command line. Using the '-o' flag would
instead read all of the objects from the stdin but then execute the
queries in parallel following an EOF to terminate the input.
11) Use the STILTS task 'tpipe' to select rows from a VOTable of QSOs
(made with an earlier query) where the redshift is > 0.2. Output
only the positions and pipe this to vodata to generate a new query
to see whether HST has observed any of these objects:
% stilts tpipe ifmt=votable qso_survey.vot
cmd='select "Z > 0.2"'
cmd='keepcols "RA DEC"' | vodata -p - hstpaec
Note that we use the '-p -' flag to tell the task to take it's list
of positions from the piped input. The positions are used to query
the HST Planned and Archived Exposure Catalog (hstpaec)
12) The user has a task called 'wcsinfo' that takes a list of images
and outputs a text table containing the plate center and size in
degrees. Use this task as part of a query for 2MASS point sources
contained in each image:
% wcsinfo *.fits | vodata 2mass-psc -i -
Here we specify the desired service (2mass-psc) on the commandline
as usual, and allow the remainder of the args (i.e. the position
and search size) to be read from the stdin. This allows for vari-
able search sizes but processes the positions serially. If the
sizes are all the same (say 25 arcmin), multiple queries can be
done simultaneously using just a position file, e.g.
% wcsinfo -pos_only *.fits > centers.txt
% vodata -rm 25 2mass-psc centers.txt
13) Query a large list of objects against a number of ASCA resources.
Because the ASCA catalogs are served by the same machine, use the
'-i' option and a command file to process only each resource
sequentially while still parallelizing the object lists:
% cat cmds.txt
ASCA survey.tbl
ASCA GIS survey.tbl
ASCA GPS survey.tbl
: :
% vodata -i cmds.txt
Note that we've needed to escape the space in the resource name in some
cases. To avoid this, use of the IVO identifier for each resource is
usually preferred.
14) Query the VO for GALEX data of M51. Because the ShortName GALEX is
not unique, we must either specify the IVO identifier of a specific
service to query, or if we're interested in results from all sup-
ported data services with galex in the name:
% vodata -all galex M51
The results come from the Cone and SIAP services both called GALEX,
as well as an additional SIAP service called 'GALEX_Atlas'. Note
that the service names are case insensitive in either case.
15) Process a list of hundreds of positions against the GSC2.2 catalog:
% vodata gsc2.2 positions.txt
16) Process a list of hundreds of positions against the GSC2.2 catalog,
assume that the input table has a 5 line header of text and three
columns (id,ra,dec). Note that the cols option requires the
optional id be specified last:
% vodata --cols=2,3,1 --hskip=5 gsc2.2 positions.txt