============================================================= Project : VOlib (CTIO) NAME: CALL_REGISTRY CATEGORY: Utility PURPOSE: To make queries to the NVO Registry Services. Specifically, we call the JHU/STSci NVO Registry (http://nvo.stsci.edu/voregistry/index.aspx) As of the current version, a user may search the registry for a given KEYWORD in any of 7 categories: Title, ShortName, Subject, Type, Description, ServiceType, and Identifier. Multiple KEYWORD searches are not available. However, the use may specify a ServiceType (Cone, SIAP, SkyNode). CALLING SQUENCE: IDL> call_registry,str=str1,'parallax' [,/cone,/siap,/skynode] INPUTS: INPUT STING = keyword to be searched for in the registry OUTPUS: str: a structure containing the registry info. Type IDL> help, /str, str to find out the name of the columns returned. Basically, all FIELD names (or IDs) are given data columns plus the first column which is entitled CREATED and is a string of the data the structure was created. If only one tag exists in your structure, the VOT was empty. KEYWORD PARAMETERS: /CONE specifies that you want only cone services /SIAP specifies that you want only siap services /SKYNODE specifies that you want only cone services DEPENDENCIES: The VOlib IDL/Java class libraries (included with VOlib). MODIFCATION HISTROY: Written: 2/04/05 Christopher J. Miller (NOAO/CTIO) Contact : cmiller@noao.edu KNOWN ISSUES: The registry calls require registries to have their information properly filled out as well as to use some standardized methods. For instance, while there is only one CONE type service in the JHU/STSci Registry, there are three SIAPs (SIAP, SIAP/ARCHIVE, SIAP/CUTOUT). So a simple search on all SIAP servers might miss the ARCHIVE and CUTOUT versions. ================================================================ Project : VOlib (CTIO) NAME: CONECALL CATEGORY Utility PURPOSE: To make calls to VO Cone Services. A list of Cone Servers can be found by querying the VO Registries (use CALL_REGISTRY). Specifically, we call any specified Cone Server and provide the ra,dec, search radius and the ServiceURL as returned by CALL_REGISTRY. Defaults are given in the code. (Cone, SIAP, SkyNode). The procedure calls the cone service, returns a VOTable (which will appear in your working directory), reads in the VOtable using READVOT, and returns the structure. CALLING SEQUENCE: IDL> conecall, str=str1, url=url, ra,dec,sr [,/save] INPUTS: INPUT url = string of the URL for the Cone Service The best way to get this string is by using call_registry specifing a Cone Service. ra,dec = coordinates sr = search radius in degrees(? check this) OUTPUTS: str: a structure containing the data from the VOtable returned by the cone service. Type: IDL> help, /str, str to find out the name of the columns returned. KEYWORD PARAMETERS: /SAVE: save the file downloaded from the ConeServer to your current working directory. If the name contains bad characters (like spaces or whatever), the save function will not rename the "download.xml" generic name to a more meaningful name based on the query. /REMEDIATE: Attempts to fix the downloaded XML. DEPENDENCIES: READVOT MODIFCATION HISTORY Written: 2/04/05 Christopher J. Miller (NOAO/CTIO) Contact : cmiller@noao.edu EXAMPLE CALLS: conecall,str=str, url = 'http://heasarc.gsfc.nasa.gov/cgi-bin/vo/cone/ coneGet.pl?table=bsc5p', 180,1,10 conecall,str=str, url ='http://skyserver.sdss.org/vo/dr2cone/ sdssConeSearch.asmx/ConeSearch?', 180,1,0.01 conecall,str=str, url ='http://archive.stsci.edu/fuse/search.php?', 180,1,10 conecall,str=str, url ='http://chart.stsci.edu/GSCVO/GSC1VO.jsp?', 180,1,1 KNOWN ISSUES: The SKYVIEW Coneserver doesnt seem to work (02/23/05). HEASARC might be the replacement? =============================================================================== PROJECT : VOlib (CTIO) NAME: READVOT CATEGORY: Utility PURPOSE: To read in VOTables into structures. This utility is not fast, especially since so much parsing is done. I'm sure there must be a better way to use the Validation_Mode. Regardless, the VALIDATION_MODE is defaulted to 0 (none). This means that you VOTable and the DTD (Data Table Definition) must be valid. Technically, this utility should work fine with Schema Definition (XSD), but the VOTable-1.1.xsd doesn't seem to work (1.0 is an invalid schema). So please use the VOTable.dtd. The top of your VOTable document should look something like this: This version of the code offers a REMEDIATION technique which re-writes the VOTable to be valid. Example VO Tables which are successfully read in are provided in the VOlib distribution DATA directory. CALLING SEQUENCE: IDL> readvot, 'tsObj-000756-6-44-0367.vot', str INPUTS: INPUT = filename (string) OPTIONAL INPUTS: TABLE = table number from the VO Table. Defaults to 1. OUTPUTS: str: VOTable as a structure. KEYWORD PARAMETERS: VALIDATE = 1 (if found) or 2 (strict) /REMEDIATE try to fix the VOT table by making sure it has a !DOCTYPE and specifies the VOTable.dtd DEPENDENCIES: match str2arr add_tag remove_tags rtag_names concat_structs delvarx get_date match deriv_arr daycnv combine_structs copy_struct MODIFICATION HISTORY: Written: 2/04/05 Christopher J. Miller (NOAO/CTIO) Contact : cmiller@noao.edu EXAMPLE: readvot, 'votable.xml',str KNOWN ISSUES: Some astronomical data contains the "&" symbol, which is XML is apparently a reserved charachter for an ENTITY. The IDL XML reader seems to have trouble with this and will fail. The XMM SIAP service produces XML with "&"s in it. Also, to turn field names into structure tag names, invalid IDL characters cause problems. The current version of the code tries to weed most of these out. I dont know how to make structures have multiple tables (outside of a LIST). So currently, the code tries to detect multiple tables, but only reads the first or the otherwise specified table. Many VOT headers contain array(*) as a size. This makes creating the proper structure size difficult. Especially for strings where it is difficult to figure out the separator character. Type conversions sometimes show up as warnings from failures. =============================================================================== PROJECT : VOlib (CTIO) NAME: SIAPCALL CATEGORY: Utility PURPOSE: To make calls to VO Siap Services. A list of SIAP Servers can be found by querying the VO Registries (use CALL_REGISTRY). Specifically, we call any specified SIAP Server and provide the ra,dec, search radius and the ServiceURL as returned by CALL_REGISTRY. Defaults are given in the code. (Cone, SIAP, SkyNode). The procedure calls the cone service, returns an image as a structure. CALLING SEQUENCE: IDL> siapcall, str=str, url=url, ra,dec,sr [,/save] INPUTS: url = The SIAP Server in string format. ra,dec = coordinates sr = search radius in degrees(? check this) url = string of SIAP server Type: IDL> help, /str, str1 to find out the name of the columns returned. OPTIONAL INPUTS: root = image rootname specified by the user. OUTPUTS: images are downloaded to your working directory. Use MRDFITS to read in FITs or read_jpeg to read in a JPEG. str1 = structure of image metadata KEYWORD PARAMETERS: /SAVE: save the metadata file downloaded from the SiapServer to your current working directory. If the name contains bad characters (like spaces or whatever), the save function will not rename the "download.xml" generic name to a more meaningful name based on the query. /METADATA: Only get the image header. No downloads. /REDMEDIATE: Try and fix the VOTable of the metadata DEPENDENCIES: READVOT MODIFICATION HISTORY: Written: 2/04/05 Christopher J. Miller (NOAO/CTIO) Contact : cmiller@noao.edu EXAMPLES: siapcall, str=str, 217.5,35.0, 0.16, url="http:// irsa.ipac.caltech.edu/cgi-bin/2MASS/IM/nph-im_sia?type=ql&ds=asky", root='2mass' siapcall, str=str, url='http://xsa.vilspa.esa.es:8080/aio/jsp/ siap.jsp', 34.26, -5, 0.16,root='xmm' siapcall, str=str2, 217.5,35.0, 0.16, url="http://archive.noao.edu/ nvo/sim/voquery.php", root='ndwfs' siapcall, str=str2, 180,1.,0.1, url = "http://skyserver.sdss.org/vo/ DR2SIAP/SIAP.aspx?bandpass=g&format=image/fits&", root='sdss' siapcall, str=str2, 180,1.,0.1, url = "http://skyserver.sdss.org/vo/ DR2SIAP/SIAP.aspx?bandpass=g&format=image/jpeg&", root='sdss' siapcall, str=str, url="http://archive.ast.cam.ac.uk/cgi-bin/wfs-siap/ queryImage", 340,1,0.1,root='intwfs' KNOWN ISSUES: Obviously, the SIAP server must be functioning for the code to work. The current version lacks a graceful exit strategy for server failures. =============================================================================== PROJECT : VOlib (CTIO) NAME: SKYCLIENT CATEGORY: Utility PURPOSE: To make queries to the NVOs OpenSkyQuery (OSQ) dataservice (www.openskyquery.net). The OSQ runs a web service and this IDL procedure uses a number of java classes that can talk directly with the OSQ. The OSQ takes an ADQL formatted query and returns data in a VOTable. SKYCLIENT automatically parses that VOTable into an IDL structure. ADQL is like SQL in that a SELECT, FROM and WHERE must be specified. ADQL also allows astronomy specific keywords (like REGION). To make efficient use of SKYCLIENT (or OSQ), one must know the datasets being queried. For instance in Query #4 in MAKE_ADQL, we return o.*, which is all of the data columns of the NOAO Deep Wide Field Survey (NDWFS). However, to specify the WHERE clause, one must know what those columns are. Also, it helps to know where on the sky a dataset lives. We provide a number of example queries in the included MAKE_ADQL.pro query constructor. Please add and/or edit that file to make your own queries. One technique to get comfortable with ADQL, is to use the OSQ web interface to build your queries and them simply copy them into MAKE_ADQL.pro. CALLING SEQUENCE: IDL> skyclient, str=str, ra,dec,sr,chisq [,query] INPUTS: ra, dec - in decimal degrees. sr - the search radius in arcminutes chisq - the cross-match chi-square for cross-matching catalogs (only needed if more than one catalog is queried). DEFAULTs are given in MAKE_ADQL.PRO OPTIONAL INPUTS: query - A string containing the ADQL query OUTPUTS: str: a structure containing the data. Type IDL> help, /str, str to find out the name of the colmnes returned. KEYWORD PARAMETERS: DEPENDENCIES: MAKE_ADQL.PRO which creates the query string. The VOlib IDL/Java class libraries (included with VOlib). MODIFICATION HISTORY: Written: 2/04/05 Christopher J. Miller (NOAO/CTIO) Contact : cmiller@noao.edu EXAMPLES: skyclient, str=strndwfs, qry = " SELECT o.* FROM NDWFS:photoprimary o WHERE o.mag_iso < 19.0 AND Region('Circle J2000 217.500 35.000 10')" KNOWN ISSUES: The current version has some memory problems. Large calls seems to fail, even with the JAVA memory increased to a proper value. Also, repeated calls tend to fail after so many calls (~200 or so). ===============================================================================