with each cell as a element.
TABLEDATA::TR_const_iterator triter( tdata.TR().begin() );
TABLEDATA::TR_const_iterator trend( tdata.TR().end() );
- int nrow = 0;
+ int nrow = 1;
string cell;
for ( ; triter != trend; ++triter ) {
TR::TD_const_iterator tditer( triter->TD().begin() );
@@ -910,10 +922,33 @@ int VOTable::data_tabledata( const NS::TABLE& table, const NS::TABLEDATA& tdata,
}
/**
- * Write a BINARY element of a table to Skycat format. RA and Dec columns
- * are converted from radians to degrees if needed.
+ * Write a BINARY2 element of a table to Skycat format. RA and Dec
+ * columns are converted from radians to degrees if needed.
*/
-int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
+#if NSVERS == 13
+int VOTable::data_binarydata2( bool binary2, const NS::TABLE& table, const NS::BINARY2& bdata,
+ ofstream& out, int& id_index, int& ra_index,
+ bool& ra_radians, int& dec_index, bool& dec_radians )
+{
+ using namespace NS;
+
+ // See if we need to decode the data. Support base64 and gzip and
+ // native. See if this is needed by checking the encodingType.
+ BINARY2::STREAM_type stream( bdata.STREAM() );
+ string encoding( stream.encoding() );
+ STREAM::href_optional href( stream.href() );
+
+ return data_binarystream( binary2, table, stream, encoding, href,
+ out, id_index, ra_index,
+ ra_radians, dec_index, dec_radians );
+}
+#endif
+
+/**
+ * Write a BINARY element of a table to Skycat format. RA and Dec
+ * columns are converted from radians to degrees if needed.
+ */
+int VOTable::data_binarydata( bool binary2, const NS::TABLE& table, const NS::BINARY& bdata,
ofstream& out, int& id_index, int& ra_index,
bool& ra_radians, int& dec_index, bool& dec_radians )
{
@@ -925,6 +960,24 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
string encoding( stream.encoding() );
STREAM::href_optional href( stream.href() );
+ return data_binarystream( binary2, table, stream, encoding, href,
+ out, id_index, ra_index,
+ ra_radians, dec_index, dec_radians );
+}
+
+/**
+ * Read a stringstream wrapping a BINARY or BINARY2 element of a table to
+ * Skycat format. RA and Dec columns are converted from radians to degrees if
+ * needed.
+ */
+int VOTable::data_binarystream( bool binary2, const NS::TABLE& table,
+ const string& stream, const string& encoding,
+ NS::STREAM::href_optional& href,
+ ofstream& out, int& id_index, int& ra_index,
+ bool& ra_radians, int& dec_index, bool& dec_radians )
+{
+ using namespace NS;
+
streambuf *inbuf;
stringstream *istr;
HTTP http; // Keep in scope for memory management.
@@ -1024,7 +1077,9 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
arraysizes.push_back( field_arraysize( *fiter ) );
// Check for a null attribute in the optional VALUES element.
+ // Not used in BINARY2, null bits are encoded for each row.
FIELD::VALUES_optional values( fiter->VALUES() );
+
if ( values ) {
VALUES::null_optional nullv( values.get().null() );
if ( &nullv.get() != 0 ) {
@@ -1051,11 +1106,35 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
/* Now write the rows. */
VOTableStream os( inbuf );
bool ok = true;
- int row = 0;
+ int nrow = 1;
+
+ // Number of bytes used for nulls in BINARY2 format.
+ int b2bytes = (int) (field_types.size() + 7 ) / 8;
+ bool *b2mask = new bool[b2bytes * 8];
+
while ( ok ) {
+ if ( binary2 ) {
+ // First field is null bit array.
+ ok = os.readBitMask( b2bytes, b2mask );
+ if ( ! ok ) {
+ break;
+ }
+ }
for ( int i = 0; i < (int) field_types.size(); i++ ) {
- ok = os.readPrint( field_types[i], arraysizes[i], havenull[i],
- nullvalues[i], &out );
+ if ( binary2 ) {
+ if ( b2mask[i] ) {
+ ok = os.readSkip( field_types[i], arraysizes[i] );
+ out << " ";
+ }
+ else {
+ ok = os.readPrint( field_types[i], arraysizes[i],
+ havenull[i], nullvalues[i], &out );
+ }
+ }
+ else {
+ ok = os.readPrint( field_types[i], arraysizes[i], havenull[i],
+ nullvalues[i], &out );
+ }
if ( ok ) {
out << '\t';
}
@@ -1064,13 +1143,14 @@ int VOTable::data_binarydata( const NS::TABLE& table, const NS::BINARY& bdata,
}
}
if ( id_index == -1 && ok ) {
- out << '\t' << row;
- row++;
+ out << nrow << '\t';
+ nrow++;
}
if ( ok ) out << '\n';
}
delete istr;
+ delete[] b2mask;
return 1;
}
@@ -1200,16 +1280,16 @@ int VOTable::data_fitsdata( const NS::FITS& fdata, ofstream& out, int& id_index,
}
char *s;
- for ( long row = 1; row <= nrows; row++ ) {
+ for ( long nrow = 1; nrow <= nrows; nrow++ ) {
for ( long col = 1; col <= ncols; col++ ) {
if ( col == ( ra_index + 1 ) ) {
- s = fits->getTableValue( row, col, rascale );
+ s = fits->getTableValue( nrow, col, rascale );
}
else if ( col == ( dec_index + 1 ) ) {
- s = fits->getTableValue( row, col, decscale );
+ s = fits->getTableValue( nrow, col, decscale );
}
else {
- s = fits->getTableValue( row, col, 1.0 );
+ s = fits->getTableValue( nrow, col, 1.0 );
}
if ( ! s ) {
return 0;
@@ -1221,7 +1301,7 @@ int VOTable::data_fitsdata( const NS::FITS& fdata, ofstream& out, int& id_index,
}
}
if ( id_index == -1 ) {
- out << '\t' << row;
+ out << '\t' << nrow;
}
out << '\n';
}
diff --git a/applications/gaia/gaiavo/library/GaiaTAPServers.vot b/applications/gaia/gaiavo/library/GaiaTAPServers.vot
new file mode 100644
index 00000000000..8a9d3040410
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaTAPServers.vot
@@ -0,0 +1,1413 @@
+
+ Registry Search Results
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VMC DR2 |
+ VMC DR2 - VISTA Magellanic System survey |
+ The VMC survey aims to obtain YJKs band photometry across the system down to Ks=20.3 at S/N=10. This sensitivity corresponds to the bottom of the red giant branch field stellar population and allows us to determine the global spatially resolved star formation history with unprecedented quality and to construct a three-dimensional map of the system. A wide-area encompassing the D25 as well as major features delineated by the distribution of stars and HI gas, will both trace the structure of the galaxies and signatures of past and present interactions. Contemporary optical and kinematic observations of comparable sensitivity will provide the community with a superior database for future studies of the system and will give us an excellent insight as to what has happened elsewhere in the Universe. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/vmcDR2-dsa |
+ 2014-03-05T15:21:25 |
+ #Infrared, survey, galaxy, Marellanic Cloud# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vmcDR2-dsa/DirectCone?DSACAT=VMC_DR2&DSATAB=vmcSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.star.herts.ac.uk/~mcioni/vmc/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VIDEO DR3 |
+ VIDEO DR3 - VISTA Deep Extragalactic Observations survey |
+ The VIDEO survey is a 30 sq. degree, Z,Y,J,H,K survey that is specifically designed to enable exploration of the main issues in observational cosmology. It allows galaxy and cluster/structure evolution to be traced as a function of both epoch and environment from the present day out to z=4 and AGN/QSO evolution up to and into the epoch of reionization at z > 6. The multi-band nature of the survey ensures many key science drivers can be tackled using the survey alone, without recourse to data from other wavebands. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/videoDR3-dsa |
+ 2014-03-05T15:21:05 |
+ #Observational cosmology, galaxy, cluster, evolution, infrared# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 3 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/videoDR3-dsa/DirectCone?DSACAT=VIDEO_DR3&DSATAB=videoSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://arxiv.org/abs/1206.4263 |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VHS DR2 |
+ VHS DR2 - VISTA Hemisphere Survey Data Release 2 |
+ The VHS will image the entire ~20 000 square degrees of the Southern Sky, with the exception of the areas already covered by the VIKING and VVV surveys, in J and Ks. The resulting data will be about 4 magnitudes deeper than 2MASS and DENIS. The 5000 square degrees covered by the Dark Energy Survey (DES), another imaging survey scheduled to begin in 2010 at the CTIO 4 metre Blanco telescope, will also be observed in H-band. The area around both of the Galactic Caps will be observed in Y- and H- band as well to be combined with the data from the VST ATLAS survey. The main science drivers of the VHS include: examining low mass and nearby stars, studying the merger history of the Galaxy, measuring the properties of Dark Energy through the examination of large-scale structure to a redshift of ~1, and searches for high redshift quasars. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/vhsDR2-dsa |
+ 2014-03-05T15:21:56 |
+ #Stars,Survey,Galaxy, low mass stars, dark energy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vhsDR2-dsa/DirectCone?DSACAT=VHS_DR2&DSATAB=vhsSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.ast.cam.ac.uk/~rgm/vhs/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VIKING DR3 |
+ VIKING - VISTA Kilo-degree Infrared Galaxy survey Data Release 3 |
+ The VIKING survey is the VISTA counterpart to the VST KIDS survey. The KIDS survey will cover 1500 deg^2 in u,g,r,i divided in two stripes (NGP, centred on equator ; SGP, centred on Dec = -30). The matching VISTA survey will cover (almost) all of these stripes in Z,Y,J,H, Ks with ~ 400s exposures per band. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/vikingDR3-dsa |
+ 2013-12-17T11:24:57 |
+ #Infrared, survey, galaxy, point source, KIDS# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 3 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vikingDR3-dsa/DirectCone?DSACAT=VIKING_DR3&DSATAB=vikingSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.astro-wise.org/projects/VIKING/ |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR9 |
+ UKIDSS DR9 - UKIRT Infrared Deep Sky Survey Data Release 9 |
+ This DSA hosts data release 9 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from four of the five UKIDSS surveys: Large Area Survey, Galactic Clusters Survey, Deep Extragalactic Survey, and Ultra Deep Survey. (see www.ukidss.org for survey descriptions) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/ukidssDR9-dsa |
+ 2013-12-17T12:01:59 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 9 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR9-dsa/DirectCone?DSACAT=UKIDSS_DR9&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ 2MASS Photometric Redshift catalogue (2MPZ) |
+ The 2MASS Photometric Redshift catalogue (2MPZ) is constructed by cross-matching 2MASS XSC, WISE and SuperCOSMOS all-sky samples and employing the artificial neural network approach (the ANNz algorithm, Collister & Lahav 2004), trained on several redshift surveys (2MRS, SDSS, 6dFGS, 2dFGRS and ZCAT). The derived photometric redshifts have errors nearly independent of distance, with an all-sky accuracy of Ïz = 0.015, and a very small percentage of outliers. These redshift estimates have a typical precision of 12% for all the 2MASS XSC galaxies that lack spectroscopy. The resulting 2MPZ sample contains almost 1 million galaxies with a median redshift of z=0.07. This catalogue is described in Bilicki et al. 2014, ApJS, 210, 9. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/twompz-dsa |
+ 2013-12-17T14:03:25 |
+ #survey, Twomass, galaxy, redshift# |
+ #Catalog# |
+ #Research# |
+ |
+ Data Release 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/twompz-dsa/DirectCone?DSACAT=TwoMPZ&DSATAB=twompzPhotoz& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/ssa/TWOMPZ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ ATLAS DR1 - VST ATLAS Survey |
+ This DSA hosts data release 1 of the ATLAS Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. The initial aim of ATLAS is to survey 4500 deg2 of the Southern Sky at high galactic latitudes to comparable depths to the SDSS in the North. The VST ATLAS will be the first step towards a panoramic digital survey of the Southern Sky in the optical bands. The ATLAS will complement the proposed VISTA Hemisphere Survey in the South. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/atlasDR1-dsa |
+ 2013-12-05T12:08:38 |
+ #survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/atlasDR1-dsa/DirectCone?DSACAT=ATLAS_DR1&DSATAB=atlasDetection& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://astro.dur.ac.uk/Cosmology/vstatlas/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ WISE (Wide-field Infrared Survey Explorer) |
+ NASA's Wide-field Infrared Survey Explorer (WISE; Wright et al. 2010) mapped the sky at 3.4, 4.6, 12, and 22 μm (W1, W2, W3, W4) in 2010 with an angular resolution of 6.1", 6.4", 6.5", & 12.0" in the four bands. WISE achieved 5Ï? point source sensitivities better than 0.08, 0.11, 1 and 6 mJy in unconfused regions on the ecliptic in the four bands. Sensitivity improves toward the ecliptic poles due to denser coverage and lower zodiacal background. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/wise-dsa |
+ 2013-05-30T16:20:40 |
+ #WISE all-sky infrared# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release March 14, 2012 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/wise-dsa/DirectCone?DSACAT=WISE&DSATAB=wise_allskysc& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://wise2.ipac.caltech.edu/docs/release/allsky/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ Millennium Galaxy Catalogue (MGC) |
+ The Millennium Galaxy Catalogue (MGC) is a 37.5 deg2, medium-deep, B-band imaging survey obtained with the Wide Field Camera on the INT. The survey region is a long, 35 arcmin wide strip along the equator, covering from 10h 00m to 14h 45m and is fully contained within the regions of both the Two Degree Field Galaxy Redshift Survey (2dFGRS) and the Sloan Digital Sky Survey (SDSS). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/mgc-dsa |
+ 2013-05-30T16:20:00 |
+ #MGC B-band Galaxy Survey# |
+ #Survey# |
+ #Research# |
+ |
+ 1.0 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/mgc-dsa/DirectCone?DSACAT=MGC&DSATAB=mgcDetection& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.eso.org/~jliske/mgc/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ GALEX Release 6 |
+ The Galaxy Evolution Explorer (GALEX) satellite is a NASA mission led by the California Institute of Technology to investigate how star formation in galaxies evolved from the early Universe up to the present. GALEX uses microchannel plate detectors to obtain direct images in the near-UV (NUV) and far-UV (FUV) and a grism to disperse light for low resolution spectroscopy |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #UV# |
+ ivo://wfau.roe.ac.uk/galexgr6-dsa |
+ 2013-05-30T16:19:49 |
+ #UV# |
+ #Survey# |
+ #Research# |
+ |
+ 6 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/galexgr6-dsa/DirectCone?DSACAT=GALEXGR6&DSATAB=photoobjall& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://galex.stsci.edu/GR6/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ Deep Near Infrared Survey of the Southern Sky (DENIS) |
+ Catalog of astrometry and photometry of detected point sources in the Far red optical (0.82-micron I-band) and near-infrared (1.25-micron J- and 2.15-micron Ks bands). ~16,700 square degrees of the southern sky |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/denis-dsa |
+ 2013-05-30T16:19:12 |
+ #IR# |
+ #Survey# |
+ #Research# |
+ |
+ 1.0 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/denis-dsa/DirectCone?DSACAT=DENIS&DSATAB=denisDR3Source& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://irsa.ipac.caltech.edu/Missions/denis.html |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ SDSS DR9 - Sloan Digital Sky Survey Data Release 9 |
+ This is an AstroGrid Dataset Access installation of the Sloan Digital Sky Survey (SDSS) DR9 hosted by the Wide Field Astronomy Unit (WFAU), University of Edinburgh. WFAU would like to thank John Hopkins University and the University of Chicago for permission to host the data. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/sdssdr9-dsa |
+ 2013-05-07T16:08:44 |
+ #Stars,Survey,Galaxy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 9 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/sdssdr9-dsa/DirectCone?DSACAT=SDSS_DR9&DSATAB=PhotoObjAll& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.sdss.org/dr9/ |
+
+
+ #HTTP Request# |
+ vo_mars |
+ august onboard Phobos2, atmospheric composition of mars |
+ |
+ VO-Paris Data Centre - IPSL |
+ |
+ ivo://vopdc.obspm/ipsl/epn_august |
+ 2012-09-07T18:00:00.00 |
+ #Virtual Observatory#Planets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/IPSL |
+ TBD |
+
+
+ #HTTP Request#HTTP Request#HTTP Request#HTTP Request#Web Page# |
+ GAVO DC TAP |
+ GAVO Data Center TAP service |
+ The GAVO Data Center's TAP end point. The Table Access Protocol (TAP) lets you execute queries against our database tables, inspect various metadata, and upload your own data. It is thus the VO's premier way to access public data holdings. Tables exposed through this endpoint include: amanda.nucand, apo.frames, arigfh.gfh, arigfh.id, arigfh.identified, arigfh.master, arigfh.nid, arigfh.unidentified, arihip.main, basti.chemical, basti.key_points, basti.out_file, basti.physic_file, basti.program_param, basti.proprieties, basti.scenario, basti.units, browndwarfs.cat, califadr1.cubes, califadr1.fluxposv1200, califadr1.fluxposv500, califadr1.fluxv1200, califadr1.fluxv500, califadr1.objects, cars.images, cars.srccat, carsarcs.meta, danish.data, dmubin.main, fk6.fk6join, fk6.part1, fk6.part3, gcpms.data, glots.columns, glots.services, glots.tables, gums.galaxies, gums.lmc, gums.mw, gums.quasars, gums.smc, gums.sn, hiicounter.data, hipparcos.main, icecube.nucand, inflight.data, ivoa.obscore, katkat.katkat, lightmeter.measurements, lightmeter.stations, liverpool.rawframes, lspm.main, lsw.plates, maidanak.rawframes, mcextinct.exts, mlqso.cubes, mpc.mpcorb, obscode.data, ohmaser.bibrefs, ohmaser.masers, plc.data, potsdam.plates, potsdam.rawplates, ppmx.data, ppmxl.main, ppmxl.usnocorr, rave.dr3, rave.main, rr.capability, rr.interface, rr.intf_param, rr.relationship, rr.res_date, rr.res_detail, rr.res_role, rr.res_schema, rr.res_table, rr.resource, rr.stc_redshift, rr.stc_spatial, rr.stc_spectral, rr.stc_temporal, rr.subject, rr.table_column, rr.validation, sdssdr7.sources, spm4.main, supercosmos.sources, tap_schema.columns, tap_schema.examples, tap_schema.groups, tap_schema.key_columns, tap_schema.keys, tap_schema.schemas, tap_schema.tables, taptest.main, theossa.data, twomass.data, ucac3.icrscorr, ucac3.main, ucac3.ppmxlcross, ucac4.main, usnob.data, usnob.platecorrs, usnob.plates, usnob.ppmxcross, usnob.spurious, usnob.twomasscross, veronqsos.data. |
+ The GAVO DC team |
+ |
+ ivo://org.gavo.dc/__system__/tap/run |
+ 2013-01-28T11:27:33 |
+ #Virtual observatory#Catalogs#ADQL# |
+ |
+ |
+ |
+ |
+ TableAccess |
+ ivo://ivoa.net/std/TAP |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://dc.zah.uni-heidelberg.de/__system__/tap/run/tap |
+ |
+ |
+ |
+ |
+ http://dc.zah.uni-heidelberg.de/__system__/tap/run/info |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VVV DR1 |
+ VVV DR1 - VISTA Variables in the Via Lactea survey |
+ The VVV survey will perform wide FOV multi-epoch observations of the Galaxy's bulge and part of the disk, providing the astronomical public community with a high resolution 3-D (or 4-D if you include the time dimension) map of the bulge. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/vvvDR1-dsa |
+ 2012-07-17T15:36:05 |
+ #Infrared, survey, Milky Way, bulge# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vvvDR1-dsa/DirectCone?DSACAT=VVV_DR1&DSATAB=vvvSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://mwm.astro.puc.cl/mw/index.php/Main_Page |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VMC DR1 |
+ VMC DR1 - VISTA Magellanic System survey |
+ The VMC survey aims to obtain YJKs band photometry across the system down to Ks=20.3 at S/N=10. This sensitivity corresponds to the bottom of the red giant branch field stellar population and allows us to determine the global spatially resolved star formation history with unprecedented quality and to construct a three-dimensional map of the system. A wide-area encompassing the D25 as well as major features delineated by the distribution of stars and HI gas, will both trace the structure of the galaxies and signatures of past and present interactions. Contemporary optical and kinematic observations of comparable sensitivity will provide the community with a superior database for future studies of the system and will give us an excellent insight as to what has happened elsewhere in the Universe. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/vmcDR1-dsa |
+ 2012-07-17T16:00:21 |
+ #Infrared, survey, galaxy, Marellanic Cloud# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vmcDR1-dsa/DirectCone?DSACAT=VMC_DR1&DSATAB=vmcSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.star.herts.ac.uk/~mcioni/vmc/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VIKING DR2 |
+ VIKING - VISTA Kilo-degree Infrared Galaxy survey Data Release 2 |
+ The VIKING survey is the VISTA counterpart to the VST KIDS survey. The KIDS survey will cover 1500 deg^2 in u,g,r,i divided in two stripes (NGP, centred on equator ; SGP, centred on Dec = -30). The matching VISTA survey will cover (almost) all of these stripes in Z,Y,J,H, Ks with ~ 400s exposures per band. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/vikingDR2-dsa |
+ 2012-07-17T15:45:28 |
+ #Infrared, survey, galaxy, KIDS# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vikingDR2-dsa/DirectCone?DSACAT=VIKING_DR2&DSATAB=vikingSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.astro-wise.org/projects/VIKING/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VIDEO DR2 |
+ VIDEO DR2 - VISTA Deep Extragalactic Observations survey |
+ The VIDEO survey is a 30 sq. degree, Z,Y,J,H,K survey that is specifically designed to enable exploration of the main issues in observational cosmology. It allows galaxy and cluster/structure evolution to be traced as a function of both epoch and environment from the present day out to z=4 and AGN/QSO evolution up to and into the epoch of reionization at z > 6. The multi-band nature of the survey ensures many key science drivers can be tackled using the survey alone, without recourse to data from other wavebands. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/videoDR2-dsa |
+ 2012-07-17T16:13:45 |
+ #Observational cosmology, galaxy, cluster, evolution, infrared# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/videoDR2-dsa/DirectCone?DSACAT=VIDEO_DR2&DSATAB=videoSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://arxiv.org/abs/1206.4263 |
+
+
+ #HTTP Request# |
+ apis |
+ auroral planetary imaging and spectroscopy |
+ Planetary aurorae are powerful emissions radiated from auroral regions of magnetized planets by accelerated charged particles, in a wide range of wavelengths (from radio to X-rays). The UV range in particular is adequate to measure collisionaly excited transitions of H and H2, the dominant species in the upper atmosphere of giant planets, produced by precipitating auroral particles, and benefits a good angular resolution. Auroral UV observations therefore provide a rich source of informations on planetary atmospheres and magnetospheres. They also offer a unique diagnostic to remotely probe the solar wind activity throughout the heliosphere.. |
+ VO-Paris Data Centre - LESIA |
+ |
+ ivo://vopdc.obspm/lesia/epn_apis |
+ 2012-09-07T19:00:00.00 |
+ #Virtual Observatory#Planets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/lesia |
+ TBD |
+
+
+ #HTTP Request# |
+ titan |
+ Temperature vertical profiles in the Titan middle atmosphere |
+ This database displays the temperature vertical profiles in Titan's atmosphere at nine different latitudes between 100 and 500 km. These profiles were retrieved from the infrared spectra acquired by the Composite Infrared Spectrometer (CIRS) aboard the Cassini spacecraft. The retrieval method and the description of the used dataset is detailed by Vinatier et al., 2009, Analysis of Cassini/CIRS limb spectra of Titan acquired during the nominal mission. I: Hydrocarbons, nitriles and CO2 vertical mixing ratio profiles, Icarus, in press. doi:10.1016/j.icarus.2009.08.013. |
+ VO-Paris Data Centre - LESIA |
+ |
+ ivo://vopdc.obspm/lesia/epn_titan |
+ 2012-09-07T19:00:00.00 |
+ #Virtual Observatory#Planets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/lesia |
+ TBD |
+
+
+ #HTTP Request# |
+ bdip |
+ Base de Donnees d'Images Planetaires |
+ The database of planetary images (BDIP) comes from the digitization of photographs collected and preserved by the Center for Photographic Documentation of the planets held by the IAU at the Meudon Observatory in 1961 under the the curation of J.H. Focas (IAUC, 12th General Assembly, Report 1964). A similar center was established at the Lowell Observatory in Arizona, under the responsibility of W.A. Baum. The photographs were duplicated between the two centers. |
+ VO-Paris Data Centre - LESIA |
+ |
+ ivo://vopdc.obspm/lesia/epn_bdip |
+ 2012-09-07T19:00:00.00 |
+ #Virtual Observatory#Planets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/lesia |
+ TBD |
+
+
+ #HTTP Request# |
+ BASECOM |
+ The Nançay Cometary Database |
+ Since 1973, the 18-cm lines of the OH radical have been systematically observed in a number of comets with the Nançay radio telescope. This allowed an evaluation of the cometary water… production rates and their evolution with time, as well as a study of several physical processes: the excitation mechanisms of the OH radio lines, the expansion of the cometary atmospheres, their anisotropy in relation with non-gravitational forces, the Zeeman effect in relation with the cometary magnetic field. The Nançay observations of 53 cometary apparitions between 1982 and 2009 are now organized in this database. |
+ VO-Paris Data Centre - LESIA |
+ #Radio# |
+ ivo://vopdc.obspm/lesia/basecom |
+ 2010-09-27T13:00:00 |
+ #Virtual Observatory#Spectrum#Comets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/lesia |
+ http://www.lesia.obspm.fr/planeto/cometes/basecom/ |
+
+
+ #HTTP Request# |
+ TBD |
+ Abundance vertical profiles in the Titan middle atmosphere |
+ This database displays the abundance vertical profiles of C2H2, C2H4, C2H6, C3H8, CH3C2H, C4H2, C6H6, HCN, HC3N and CO2 in Titan's atmosphere at nine different latitudes between 100 and 500 km.… These profiles were retrieved from the infrared spectra acquired by the Composite Infrared Spectrometer (CIRS) aboard the Cassini spacecraft. The retrieval method and the description of the used dataset is detailed by Vinatier et al., 2009, Analysis of Cassini/CIRS limb spectra of Titan acquired during the nominal mission. I: Hydrocarbons, nitriles and CO2 vertical mixing ratio profiles, Icarus, in press. doi:10.1016/j.icarus.2009.08.013. |
+ VO-Paris Data Centre - LESIA |
+ |
+ ivo://vopdc.obspm/lesia/titan/abundance |
+ 2010-09-27T13:00:00 |
+ #Virtual Observatory#Planets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/lesia |
+ TBD |
+
+
+ #HTTP Request# |
+ TBD |
+ Temperature vertical profiles in the Titan middle atmosphere |
+ This database displays the temperature vertical profiles in Titan's atmosphere at nine different latitudes between 100 and 500 km. These profiles were retrieved from the infrared spectra acquired… by the Composite Infrared Spectrometer (CIRS) aboard the Cassini spacecraft. The retrieval method and the description of the used dataset is detailed by Vinatier et al., 2009, Analysis of Cassini/CIRS limb spectra of Titan acquired during the nominal mission. I: Hydrocarbons, nitriles and CO2 vertical mixing ratio profiles, Icarus, in press. doi:10.1016/j.icarus.2009.08.013. |
+ VO-Paris Data Centre - LESIA |
+ |
+ ivo://vopdc.obspm/lesia/titan/temperature |
+ 2010-09-27T13:00:00 |
+ #Virtual Observatory#Planets# |
+ #Archive# |
+ #General#University#Research#Amateur# |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://vopdc.obspm/lesia |
+ TBD |
+
+
+ #HTTP Request# |
+ |
+ HEASARC Xamin Catalog Interface |
+ The HEASARC is NASA domain archive for high-energy and microwave astronomy. The Xamin interface provides access to over 600 observation and object tables. This includes observation tables for more than 30 missions and observatories and hundreds of derived object tables. Non-high energy tables are included to make it easier for users to compare information. |
+ NASA/HEASARC |
+ |
+ ivo://nasa.heasarc/services/xamin |
+ 2012-01-19T00:00:00 |
+ #high energy and microwave astronomy# |
+ #Catalog# |
+ #Research# |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ http://heasarc.gsfc.nasa.gov |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ 2XMM |
+ XMM-Newton Serendipitous Source Catalogue (2XMM) |
+ XMM is the second comprehensive catalogue of serendipitous X-ray sources from the European Space Agency's (ESA) XMM-Newton observatory. The 2XMM catalogue is the largest X-ray source catalogue ever produced, containing almost twice as many discrete sources as either the ROSAT survey or pointed catalogues. 2XMM complements deeper Chandra and XMM-Newton small area surveys, probing a much larger sky area. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/xmm_dsa |
+ 2012-07-18T12:52:10 |
+ #x-ray xray XMM# |
+ #Catalog# |
+ #Research# |
+ |
+ Version 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/xmm-dsa/DirectCone?DSACAT=TwoXMM&DSATAB=twoxmm& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://xmmssc-www.star.le.ac.uk/Catalogue/2XMM/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ VHS DR1 |
+ VHS DR1 - VISTA Hemisphere Survey Data Release 1 |
+ The VHS will image the entire ~20 000 square degrees of the Southern Sky, with the exception of the areas already covered by the VIKING and VVV surveys, in J and Ks. The resulting data will be about 4 magnitudes deeper than 2MASS and DENIS. The 5000 square degrees covered by the Dark Energy Survey (DES), another imaging survey scheduled to begin in 2010 at the CTIO 4 metre Blanco telescope, will also be observed in H-band. The area around both of the Galactic Caps will be observed in Y- and H- band as well to be combined with the data from the VST ATLAS survey. The main science drivers of the VHS include: examining low mass and nearby stars, studying the merger history of the Galaxy, measuring the properties of Dark Energy through the examination of large-scale structure to a redshift of ~1, and searches for high redshift quasars. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/vhsDR1-dsa |
+ 2012-07-17T15:37:19 |
+ #Stars,Survey,Galaxy, low mass stars, dark energy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/vhsDR1-dsa/DirectCone?DSACAT=VHS_DR1&DSATAB=vhsSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.ast.cam.ac.uk/~rgm/vhs/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ UKIDSS DR2 World Release |
+ World release UKIRT Infrared Deep Sky Survey Data Release 2 data for demonstration purposes (contains only a tiny sample of data). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/ukidssWorld-dsa |
+ 2010-02-15T13:56:33 |
+ #Infrared, survey, galaxy, point source# |
+ #Catalog# |
+ #Research# |
+ |
+ World Release DR2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssWorld-dsa/SubmitCone?DSACAT=UKIDSS_World_Release&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa/publicData.html |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR8 |
+ UKIDSS DR8 - UKIRT Infrared Deep Sky Survey Data Release 8 |
+ This DSA hosts data release 8 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from four of the five UKIDSS surveys: Large Area Survey, Galactic Clusters Survey, Deep Extragalactic Survey, and Ultra Deep Survey. The Galactic Plane Survey will be available in January 2014. (see www.ukidss.org for survey descriptions) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR8-dsa |
+ 2013-12-17T12:04:15 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 8 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR8-dsa/DirectCone?DSACAT=UKIDSS_DR8&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR7 |
+ UKIDSS DR7 - UKIRT Infrared Deep Sky Survey Data Release 7 |
+ This DSA hosts data release 7 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from three of the five UKIDSS surveys: Large Area Survey, Galactic Clusters Survey, Deep Extragalactic Survey. The Galactic Plane Survey will be available in march 2012. (see www.ukidss.org for survey descriptions) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR7-dsa |
+ 2012-07-18T12:47:40 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 7 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR7-dsa/DirectCone?DSACAT=UKIDSS_DR7&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR6 |
+ UKIDSS DR6 - UKIRT Infrared Deep Sky Survey Data Release 6 |
+ This DSA hosts data release 6 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from four of the five UKIDSS surveys: Large Area Survey, Galactic Clusters Survey, Deep Extragalactic Survey and the Galactic Plane Survey. (see www.ukidss.org for survey descriptions) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR6-dsa |
+ 2012-07-18T12:46:08 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 6 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR6-dsa/DirectCone?DSACAT=UKIDSS_DR6&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR5 |
+ UKIDSS DR5 - UKIRT Infrared Deep Sky Survey Data Release 5 |
+ This DSA hosts data release 5 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from four of the five UKIDSS surveys: Large Area Survey, Galactic Clusters Survey, Deep Extragalactic Survey and the Ultra Deep Survey. (see www.ukidss.org for survey descriptions) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR5-dsa |
+ 2012-07-18T12:43:17 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 5 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR5-dsa/DirectCone?DSACAT=UKIDSS_DR5&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR4 |
+ UKIDSS DR4 - UKIRT Infrared Deep Sky Survey Data Release 4 |
+ This DSA hosts data release 4 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from four of the five UKIDSS surveys: Large Area Survey, Galactic Clusters Survey, Deep Extragalactic Survey and the Ultra Deep Survey. The data for the Galactic Plane Survey will not be available until April 22, 2010. (see www.ukidss.org for survey descriptions) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR4-dsa |
+ 2012-07-18T12:42:31 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 4 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR4-dsa/DirectCone?DSACAT=UKIDSS_DR4&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR3 |
+ UKIDSS DR3 - UKIRT Infrared Deep Sky Survey Data Release 3 |
+ This DSA hosts data release 3 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from the five UKIDSS surveys: Large Area Survey, Galactic Plane Survey, Galactic Clusters Survey, Deep Extragalactic Survey and the Ultra Deep Survey (see the www.ukidss.org for survey descriptions). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR3-dsa |
+ 2012-07-18T12:41:51 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 3 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR3-dsa/DirectCone?DSACAT=UKIDSS_DR3&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR2 |
+ UKIDSS DR2 - UKIRT Infrared Deep Sky Survey Data Release 2 |
+ This DSA hosts data release 2 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from the five UKIDSS surveys: Large Area Survey, Galactic Plane Survey, Galactic Clusters Survey, Deep Extragalactic Survey and the Ultra Deep Survey (see the www.ukidss.org for survey descriptions). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR2-dsa |
+ 2012-07-18T12:41:11 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR2-dsa/DirectCone?DSACAT=UKIDSS_DR2&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ UKIDSS DR1 |
+ UKIDSS DR1 - UKIRT Infrared Deep Sky Survey Data Release 1 |
+ This DSA hosts data release 1 of the UKIRT Infrared Deep Sky Survey housed at the Wide Field Astronomy Unit at the Univeristy of Edinburgh. This catalog contains WFCAM data primarily originating from the five UKIDSS surveys: Large Area Survey, Galactic Plane Survey, Galactic Clusters Survey, Deep Extragalactic Survey and the Ultra Deep Survey (see the www.ukidss.org for survey descriptions). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/ukidssDR1-dsa |
+ 2012-07-18T12:40:27 |
+ #Infrared, survey, galaxy, point source# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ukidssDR1-dsa/DirectCone?DSACAT=UKIDSS_DR1&DSATAB=lasSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/wsa |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ 2MASS |
+ Two Micron All Sky Survey (2MASS) |
+ The Two Micron All Sky Survey (2MASS) will provide a uniform survey of the entire sky at three near-infrared wavebands: J(lambdaeff = 1.25 micrometers), H(lambdaeff = 1.65 micrometers), and Ks(lambdaeff = 2.16 micrometers). A major goal of the survey is to probe large scale structures in the Milky Way and in the Local Universe, exploiting the relatively high transparency of the interstellar medium in the near-infrared, and the high near-infrared luminosities of evolved low- and intermediate-mass stars.Home page at http://pegasus.phast.umass.edu/ |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/twomass-dsa |
+ 2012-08-02T15:31:26 |
+ #Infrared all-sky survey# |
+ #Catalog# |
+ #Research# |
+ |
+ Version 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/twomass-dsa/DirectCone?DSACAT=TWOMASS&DSATAB=twomass_psc& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.ipac.caltech.edu/2mass/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ SuperCOSMOS |
+ SuperCOSMOS Science Archive (SSA) |
+ The SuperCOSMOS data held in the SSA primarily originate from scans of Palomar and UK Schmidt blue, red and near-IR southern sky surveys. The ESO Schmidt R (dec < -17.5) and Palomar POSS-I E (dec > -17.5) surveys have also been scanned and provide a 1st epoch red measurement. Further details on the surveys, the scanning process and the raw parameters extracted can be found on the further information link. The SSA is housed in a relational database running on Microsoft SQL Server 2000. Data are stored in tables which are inter-linked via reference ID numbers. In addition to the astronomical object catalogues these tables also contain information on the plates that were scanned, survey field centres and calibration coefficients. Most user science queries will only need to access the SOURCE table or to a lesser extent the DETECTION table. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/ssa-dsa |
+ 2012-07-19T11:53:55 |
+ #Digitised photographic optical all-sky photometric astrometric survey# |
+ #Catalog# |
+ #Research# |
+ |
+ Version 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/ssa-dsa/DirectCone?DSACAT=SSA&DSATAB=Detection& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://surveys.roe.ac.uk/ssa |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ SDSS DR8 |
+ SDSS DR8 - Sloan Digital Sky Survey Data Release 8 |
+ This is an AstroGrid Dataset Access installation of the Sloan Digital Sky Survey (SDSS) DR8 hosted by the Wide Field Astronomy Unit (WFAU), University of Edinburgh. WFAU would like to thank John Hopkins University and the University of Chicago for permission to host the data. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/sdssdr8-dsa |
+ 2012-07-18T12:37:33 |
+ #Stars,Survey,Galaxy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 8 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/sdssdr8-dsa/DirectCone?DSACAT=SDSS_DR8&DSATAB=PhotoObjAll& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.sdss.org/dr8/ |
+
+
+ #Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ SDSS DR7 |
+ SDSS DR7 - Sloan Digital Sky Survey Data Release 7 |
+ This is an AstroGrid Dataset Access installation of the Sloan Digital Sky Survey (SDSS) DR7 hosted by the Wide Field Astronomy Unit (WFAU), University of Edinburgh. WFAU would like to thank John Hopkins University and the University of Chicago for permission to host the data. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/sdssdr7-dsa |
+ 2012-07-18T12:36:49 |
+ #Stars,Survey,Galaxy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 7 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/sdssdr7-dsa/DirectCone?DSACAT=SDSS_DR7&DSATAB=Galaxy& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.sdss.org/dr7/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ SDSS DR6 |
+ SDSS DR6 SEGUE - Sloan Digital Sky Survey Data Release 6 |
+ This is an AstroGrid Dataset Access installation of the Sloan Digital Sky Survey (SDSS) DR6 SEGUE hosted by the Wide Field Astronomy Unit (WFAU), University of Edinburgh. WFAU would like to thank John Hopkins University and the University of Chicago for permission to host the data. This database does not include the entire DR6 release, only the SEGUE portion. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/sdssdr6-dsa |
+ 2012-07-18T12:36:37 |
+ #Stars,Survey,Galaxy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 6 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/sdssdr6-dsa/DirectCone?DSACAT=SDSS_DR5&DSATAB=PhotoObjAll& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.sdss.org/dr6/ |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ SDSS DR5 |
+ SDSS DR5 - Sloan Digital Sky Survey Data Release 5 |
+ This is an AstroGrid Dataset Access installation of the Sloan Digital Sky Survey (SDSS) DR5 hosted by the Wide Field Astronomy Unit (WFAU), University of Edinburgh. WFAU would like to thank John Hopkins University and the University of Chicago for permission to host the data. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/sdssdr5-dsa |
+ 2012-07-18T12:35:04 |
+ #Stars,Survey,Galaxy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 5 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/sdssdr5-dsa/DirectCone?DSACAT=SDSS_DR5&DSATAB=SpecObj& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.sdss.org/dr5/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ SDSS DR3 |
+ SDSS DR3 - Sloan Digital Sky Survey Data Release 3 |
+ This is an AstroGrid Dataset Access installation of the Sloan Digital Sky Survey (SDSS) DR3 hosted by the Wide Field Astronomy Unit (WFAU), University of Edinburgh. WFAU would like to thank John Hopkins University and the University of Chicago for permission to host the data. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/sdssdr3-dsa |
+ 2012-07-18T12:34:44 |
+ #Stars,Survey,Galaxy# |
+ #Survey# |
+ #Research# |
+ |
+ Data Release 3 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/sdssdr3-dsa/DirectCone?DSACAT=SDSS_DR3&DSATAB=PhotoObjAll& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.sdss.org/dr3/ |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ ROSAT |
+ Rontgen Satellite Archive (ROSAT) |
+ The Rontgen Satellite Archive is an implementation of the ROSAT All-Sky Survey Bright Source Catalogue (RASS-BSC, revision 1RXS) and the ROSAT All-Sky Survey Faint Source Catalogue (RASS-FSC, revision 1RXS). The RASS-BSC is derived from the all-sky survey performed during the first half year of the ROSAT mission in 1990/91. 18,811 sources are catalogued, with a limiting ROSAT PSPC countrate of 0.05 cts/s in the 0.1-2.4 keV energy band. The sources have a detection likelihood of at least 15 and contain at least 15 source photons. At a brightness limit of 0.1 cts/s (8,547 sources) the catalogue represents a sky coverage of 92%. The typical positional accuracy is 30 arcsec. The RASS-FSC is derived from the all-sky survey performed during the ROSAT mission in the energy band 0.1- 2.4 keV. 105,924 sources are catalogued and represent the faint extension to the RASS bright source catalogue. The sources have a detection likelihood of at least 7 and contain at least 6 source photons. (The likelihood of source detection is defined as L =-ln (1-P) , with P = probability of source detection). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #X-ray# |
+ ivo://wfau.roe.ac.uk/rosat-dsa |
+ 2012-07-18T12:34:21 |
+ #ROSAT xray x-ray sources faint bright# |
+ #Catalog# |
+ #Research# |
+ |
+ revision 1RXS |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/rosat-dsa/DirectCone?DSACAT=ROSAT&DSATAB=rosat_bsc& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.mpe.mpg.de/xray/wave/rosat/index.php?lang=en |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ |
+ Personal SuperCOSMOS Science Archive (SSA) |
+ Small subset of the SuperCOSMOS Science Archive, useful for testing queries. The SuperCOSMOS data held in the SSA primarily originate from scans of Palomar and UK Schmidt blue, red and near-IR southern sky surveys. The ESO Schmidt R (dec < -17.5) and Palomar POSS-I E (dec > -17.5) surveys have also been scanned and provide a 1st epoch red measurement. Further details on the surveys, the scanning process and the raw parameters extracted can be found on the further information link. The SSA is housed in a relational database running on Microsoft SQL Server 2000. Data are stored in tables which are inter-linked via reference ID numbers. In addition to the astronomical object catalogues these tables also contain information on the plates that were scanned, survey field centres and calibration coefficients. Most user science queries will only need to access the SOURCE table or to a lesser extent the DETECTION table. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/pssa-dsa |
+ 2011-05-09T11:33:35 |
+ #Digitised photographic Schmidt field test photometry astrometry# |
+ #Catalog# |
+ #Research# |
+ |
+ Version 1 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/pssa-dsa/DirectCone?DSACAT=SSA&DSATAB=Detection& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://thoth.roe.ac.uk/ssa/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ IRAS |
+ Infrared Astronomical Satellite Archive (IRAS) |
+ The Infrared Astronomical Satellite Archive is an implementation of the IRAS catalogue of Point Sources, Version 2.0 (IPAC 1986). This is a catalogue of some 250,000 well-confirmed infrared point sources observed by the Infrared Astronomical Satellite, i.e., sources with angular extents less than approximately 0.5, 0.5, 1.0, and 2.0 arcmin in the in-scan direction at 12, 25, 60, and 100 microns, respectively. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/iras-dsa |
+ 2012-07-18T12:34:02 |
+ #Infrared point-source survey# |
+ #Catalog# |
+ #Research# |
+ |
+ Version 2.0 (IPAC 1986) |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/iras-dsa/DirectCone?DSACAT=IRAS&DSATAB=iras_psc& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://irsa.ipac.caltech.edu/Missions/iras.html |
+
+
+ #Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ GLIMPSE |
+ GLIMPSE (Galactic Legacy Infrared Mid-Plane Survey Extraordinaire) |
+ The GLIMPSE (Galactic Legacy Infrared Mid-Plane Survey Extraordinaire) Archive is an implementation of the GLIMPSE Highly Reliable Catalogue (GLMC, Intermediate revision; dated 9th April 2005) and the GLIMPSE More Complete Archive (GLMA, Intermediate revision; dated 9th April 2005). This implementation uses the same default values as specified by GLIMPSE. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Infrared# |
+ ivo://wfau.roe.ac.uk/glimpse-dsa |
+ 2012-07-18T12:33:44 |
+ #Galactic Legacy Infrared Mid-Plane Survey GLIMPSE# |
+ #Catalog# |
+ #Research# |
+ |
+ Intermediate revision; dated 9th April 2005 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/glimpse-dsa/DirectCone?DSACAT=GLIMPSE&DSATAB=glimpse_hrc_inter& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www.astro.wisc.edu/sirtf/ |
+
+
+ #Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ FIRST |
+ FIRST Survey Catalogue (03Apr11 Version) |
+ FIRST (Faint Images of the Radio Sky at Twenty-cm) is a project designed to produce the radio equivalent of the Palomar Observatory Sky Survey over 10,000 square degrees of the North and South Galactic Caps. The catalogue covers a total of about 9033 square degrees of sky (8422 square degrees in the north Galactic cap and 611 square degrees in the south Galactic cap.) |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Radio# |
+ ivo://wfau.roe.ac.uk/first-dsa |
+ 2012-07-18T12:33:30 |
+ #Faint Images of the Radio Sky at Twenty-cm FIRST# |
+ #Catalog# |
+ #Research# |
+ |
+ 03Apr11 Version |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/first-dsa/DirectCone?DSACAT=FIRST&DSATAB=firstSource& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://sundog.stsci.edu/first/catalogs/readme.html |
+
+
+ #HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ AstroDAbis |
+ AstroDAbis Notation Service |
+ The AstroDAbis service database stores user notations of celestial objects found in VO enabled datasets around the world. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ |
+ ivo://wfau.roe.ac.uk/astrodabis-dsa |
+ 2012-07-18T12:33:22 |
+ #AstroDAbis, notation# |
+ #Other# |
+ #Research# |
+ |
+ Version 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ ivo://wfau.roe.ac.uk |
+ http://astrodabis.roe.ac.uk/astrodabis-abd |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ 6dF DR3 |
+ 6dF Galaxy Survey Data Release 3 |
+ The 6dF Galaxy Survey (6dFGS) aims to measure the redshifts of around 150 000 galaxies, and the peculiar velocities of a 15 000-member subsample, over almost the entire southern sky. The table called Spectra contains the redshifts and qualities of all the observations. When complete, it will be the largest redshift survey of the nearby Universe, reaching out to about z ~ 0.15, and more than an order of magnitude larger than any peculiar velocity survey to date. The targets are all galaxies brighter than K tot = 12.75 in the 2MASS Extended Source Catalog (XSC), supplemented by 2MASS and SuperCOSMOS galaxies that complete the sample to limits of (H, J , r F, bJ) = (13.05, 13.75, 15.6, 16.75). This is the Data Release 3 version. |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/6dfdr3-dsa |
+ 2012-07-18T12:22:27 |
+ #6dF survey galaxy galaxies redshift redshifts 2MASS# |
+ #Catalog# |
+ #Research# |
+ |
+ Data Release 3 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/6dfdr3-dsa/DirectCone?DSACAT=SixdF&DSATAB=twomass& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www-wfau.roe.ac.uk/6dfgs/ |
+
+
+ #Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#Catalog#HTTP Request#Custom Service#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request#HTTP Request# |
+ 6dF DR2 |
+ 6dF Galaxy Survey Data Release 2 |
+ The 6dF Galaxy Survey (6dFGS) aims to measure the redshifts of around 150 000 galaxies, and the peculiar velocities of a 15 000-member subsample, over almost the entire southern sky. The table called Spectra contains the redshifts and qualities of all the observations. When complete, it will be the largest redshift survey of the nearby Universe, reaching out to about z ~ 0.15, and more than an order of magnitude larger than any peculiar velocity survey to date. The targets are all galaxies brighter than K tot = 12.75 in the 2MASS Extended Source Catalog (XSC), supplemented by 2MASS and SuperCOSMOS galaxies that complete the sample to limits of (H, J , r F, bJ) = (13.05, 13.75, 15.6, 16.75). |
+ WFAU, Institute for Astronomy, University of Edinburgh |
+ #Optical# |
+ ivo://wfau.roe.ac.uk/6df-dsa |
+ 2012-07-18T12:22:20 |
+ #6dF survey galaxy galaxies redshift redshifts 2MASS# |
+ #Catalog# |
+ #Research# |
+ |
+ Data Release 2 |
+ ConeSearch |
+ ivo://ivoa.net/std/ConeSearch |
+ |
+ ParamHTTP |
+ |
+ std |
+ http://wfaudata.roe.ac.uk/6df-dsa/DirectCone?DSACAT=SixdF&DSATAB=twomass& |
+ |
+ 1.500000 |
+ 2000000 |
+ ivo://wfau.roe.ac.uk |
+ http://www-wfau.roe.ac.uk/6dfgs/ |
+
+
+
+
+
+
diff --git a/applications/gaia/gaiavo/library/GaiaVOCat.tcl b/applications/gaia/gaiavo/library/GaiaVOCat.tcl
index f2e135fd605..8f6e3646c4c 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCat.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCat.tcl
@@ -310,14 +310,17 @@ itcl::class gaiavo::GaiaVOCat {
# Called when the user has selected columns to show.
public method set_show_cols {cols} {
- set show [$w_.cat showcols]
- if { "$show" == {} } {
- set show [$itk_component(results) get_headings]
- }
- if { "$show" != "$cols" } {
- $w_.cat showcols $cols
- cat::CatalogInfo::save {} $w_ 0
+ if { [$w_.cat open] } {
+ set show [$w_.cat showcols]
+ if { "$show" == {} } {
+ set show [$itk_component(results) get_headings]
+ }
+ if { "$show" != "$cols" } {
+ $w_.cat showcols $cols
+ cat::CatalogInfo::save {} $w_ 0
+ }
}
+ configure -show_cols $cols
}
# Clear the table listing.
@@ -523,6 +526,52 @@ itcl::class gaiavo::GaiaVOCat {
add_help_button vo "About VO services..." {Help on VO in GAIA}
}
+ # Extract an access URL from the given row, given the names of the values
+ # in headers. Tricky as we have two possible names access_url and
+ # accessURL from the two registry types.
+ public proc getAccessURL {headers row} {
+
+ # Nasty external knowledge required as to what kind of registry the row
+ # came from, so try all known handlers.
+ foreach handler $reghandlers_ {
+ set accessurl [$handler get_access_url $headers $row]
+ if { $accessurl != {} } {
+ return $accessurl
+ }
+ }
+ return {}
+ }
+
+ # Extract a name for TAP service from a list of headers and the associated
+ # data row.
+ public proc getName {headers row} {
+
+ # Nasty external knowledge required as to what kind of registry the row
+ # came from, so try all known handlers.
+ foreach handler $reghandlers_ {
+ set name [$handler get_name $headers $row]
+ if { $name != {} } {
+ return $name
+ }
+ }
+ return {}
+ }
+
+ # Extract the IVOA identifier for the service from a list of headers
+ # and the associated data row.
+ public proc getIdentifier {headers row} {
+
+ # Nasty external knowledge required as to what kind of registry the row
+ # came from, so try all known handlers.
+ foreach handler $reghandlers_ {
+ set id [$handler get_identifier $headers $row]
+ if { $id != {} } {
+ return $id
+ }
+ }
+ return {}
+ }
+
# Check for a file ~/.skycat/proxies, once each session, and use it to
# initialize environment variables for a proxy server.
public proc check_proxies {} {
@@ -561,6 +610,12 @@ itcl::class gaiavo::GaiaVOCat {
itk_option define -help_file help_file Help_File {}
itk_option define -help_label help_label Help_Label "On Window..."
+ # The shortname of the service.
+ itk_option define -shortname shortname ShortName {}
+
+ # The URL for the service.
+ itk_option define -accessURL accessURL AccessURL {}
+
# Protected variables: (available to instance)
# --------------------
@@ -584,4 +639,9 @@ itcl::class gaiavo::GaiaVOCat {
# Flag: set to 1 after we checked for a proxy server.
protected common checked_proxies_ 0
+
+ # Handlers for different registry types.
+ protected common regtap_ [::gaiavo::GaiaVORegTapQuery::instance]
+ protected common regv1_ [::gaiavo::GaiaVORegV1Query::instance]
+ protected common reghandlers_ "$regtap_ $regv1_"
}
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl b/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl
index e7ed49e1678..e597a12c45a 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatCone.tcl
@@ -201,29 +201,6 @@ itcl::class gaiavo::GaiaVOCatCone {
# Do nothing.
}
- # Extract the accessURL for the Cone Search service from a list of headers
- # and the associated data row.
- public proc getAccessURL {headers row} {
- eval lassign "$row" $headers
- if { [info exists accessURL] } {
- return $accessURL
- }
- return {}
- }
-
- # Extract a name for Cone Search service from a list of headers
- # and the associated data row.
- public proc getName {headers row} {
- eval lassign "$row" $headers
- if { [info exists shortName] && $shortName != {} } {
- return $shortName
- }
- if { [info exists title] } {
- return $title
- }
- return {}
- }
-
# Plot the RA and Dec positions on the image using the defined symbols.
public method plot {} {
@@ -438,12 +415,6 @@ itcl::class gaiavo::GaiaVOCatCone {
# Configuration options: (public variables)
# ----------------------
- # The shortname of the service.
- itk_option define -shortname shortname ShortName {}
-
- # The accessURL for the Cone Search server.
- itk_option define -accessURL accessURL AccessURL {}
-
# Instance of GAIA to display the catalogue.
itk_option define -gaia gaia Gaia {} {
set rtdctrl_ [$itk_option(-gaia) get_image]
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
index dde357576d5..b84cb692d93 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatRegistry.tcl
@@ -170,6 +170,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
-feedbackcommand [code $this set_feedback] \
-command [code $this query_done] \
-query_cmd [code $this query] \
+ -show_cols_cmd [code $this set_show_cols] \
-service $itk_option(-service)
}
pack $itk_component(registry) -side top -fill x
@@ -190,7 +191,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
} else {
# Need headers and selected row.
set headings [$itk_component(results) get_headings]
- eval $itk_option(-activate_cmd) "\$headings" "\$args"
+ eval $itk_option(-activate_cmd) \$headings "$args"
}
}
}
@@ -207,7 +208,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
set headings [$w_.cat headings]
set result {}
foreach row [$w_.cat content] {
- eval lassign \$row $headings
+ set identifier [$query_component_ get_identifier "$headings" "$row"]
if { ! [$itk_option(-blacklist) blacklisted $identifier] } {
lappend result $row
}
@@ -217,6 +218,18 @@ itcl::class gaiavo::GaiaVOCatRegistry {
$itk_component(results) config -info $info_
}
+ # Provide access to query_component_ specialisations for different
+ # registry types.
+ public method get_identifier {headings row} {
+ return [$query_component_ get_identifier "$headings" "$row"]
+ }
+ public method get_access_url {headings row} {
+ return [$query_component_ get_access_url "$headings" "$row"]
+ }
+ public method get_name {headings row} {
+ return [$query_component_ get_name "$headings" "$row"]
+ }
+
# Add more help if this is just a simple registry query.
protected method add_help_menu_ {} {
if { $itk_option(-help_file) == {} } {
@@ -231,7 +244,7 @@ itcl::class gaiavo::GaiaVOCatRegistry {
# The type of operation, whole or row.
itk_option define -whole_operation whole_operation Whole_Operation 1
- # The type of services to query for - SSAP, SIAP, ConeSearch.
+ # The type of services to query for - SSAP, SIAP, ConeSearch, TAP.
itk_option define -service service Service SIAP
# GaiaVOBlacklist instance that manages the blacklist for the services.
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl b/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl
index 71ba7491626..2c16d9df509 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatSIAP.tcl
@@ -239,48 +239,9 @@ itcl::class gaiavo::GaiaVOCatSIAP {
}
}
- # Extract the accessURL for the SIAP service from a list of headers
- # and the associated data row.
- public proc getAccessURL {headers row} {
- eval lassign "$row" $headers
- if { [info exists accessURL] } {
- return $accessURL
- }
- return {}
- }
-
- # Extract the IVOA identifier for the SIAP service from a list of headers
- # and the associated data row.
- public proc getIdentifier {headers row} {
- eval lassign "$row" $headers
- if { [info exists identifier] } {
- return $identifier
- }
- return {}
- }
-
- # Extract a name for SIAP service from a list of headers
- # and the associated data row.
- public proc getName {headers row} {
- eval lassign "$row" $headers
- if { [info exists shortName] && $shortName != {} } {
- return $shortName
- }
- if { [info exists title] } {
- return $title
- }
- return {}
- }
-
# Configuration options: (public variables)
# ----------------------
- # The shortname of the service.
- itk_option define -shortname shortname ShortName {}
-
- # The accessURL for the SIAP server.
- itk_option define -accessURL accessURL AccessURL {}
-
# The identifier for the SIAP server.
itk_option define -identifier identifier Identifier {}
diff --git a/applications/gaia/gaiavo/library/GaiaVOCats.tcl b/applications/gaia/gaiavo/library/GaiaVOCats.tcl
index 250b557d1ac..12c6ee029b8 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCats.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCats.tcl
@@ -31,7 +31,7 @@
# Performs the given method on this object.
# Copyright:
-# Copyright (C) 2008-2009 Science and Technology Facilities Council
+# Copyright (C) 2008-2014 Science and Technology Facilities Council
# All Rights Reserved.
# Licence:
@@ -384,12 +384,16 @@ itcl::class gaiavo::GaiaVOCats {
# removal).
protected method remove_current_ {text} {
after 0 [list $itk_component(progressbar) config -text $text]
- $itk_component(notebook) delete $current_
- $itk_component(bookmenu) delete $current_
- $itk_component(bookmenu) update_menubutton
- incr current_ -1
- incr npages_ -1
- incr ncolumn_ -1
+
+ # Seems to fail with some visibility timer, so handle that ungracefully.
+ catch {
+ $itk_component(notebook) delete $current_
+ $itk_component(bookmenu) delete $current_
+ $itk_component(bookmenu) update_menubutton
+ incr current_ -1
+ incr npages_ -1
+ incr ncolumn_ -1
+ }
}
# Start the queries.
diff --git a/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl b/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl
index 01deac8a710..f10aadd4153 100644
--- a/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOCatsSIAP.tcl
@@ -242,6 +242,10 @@ itcl::class gaiavo::GaiaVOCatsSIAP {
# Use specialised warning dialog that offers to blacklist the current
# server.
protected method warning_dialog_ {message} {
+
+ # Truncate message, these can be very long.
+ set message [string range $message 0 200]
+
set choice [choice_dialog "$message" "OK Blacklist" "OK" $w_]
if { $choice != "OK" } {
$itk_option(-blacklist) blacklist $ids_($current_)
@@ -251,6 +255,9 @@ itcl::class gaiavo::GaiaVOCatsSIAP {
# Use specialised error dialog that offers to blacklist the current
# server.
protected method error_dialog_ {message} {
+ # Truncate message, these can be very long.
+ set message [string range $message 0 200]
+
set choice [choice_dialog "$message" "OK Blacklist" "OK" $w_]
if { $choice != "OK" } {
$itk_option(-blacklist) blacklist $ids_($current_)
@@ -264,7 +271,9 @@ itcl::class gaiavo::GaiaVOCatsSIAP {
set headings [$w_.cat headings]
set result {}
foreach row [$w_.cat content] {
- eval lassign \$row $headings
+ set identifier [$query_component_ get_identifier "$headings" "$row"]
+ set accessURL [$query_component_ get_access_url "$headings" "$row"]
+ set title [$query_component_ get_name "$headings" "$row"]
if { ! [$itk_option(-blacklist) blacklisted $identifier] && $accessURL != {} } {
lappend result $accessURL $title $identifier
}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
new file mode 100644
index 00000000000..ba4a4325ef3
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVORegTapQuery.tcl
@@ -0,0 +1,256 @@
+#+
+# Name:
+# GaiaVORegTapQuery
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Class of utility methods for making RegTAP queries.
+
+# Description:
+# Provides a number of methods that can be used to construct
+# AQDL queries for making RegTAP queries. The methods are meant
+# to cover the standard cases, i.e. TAP services, Registries,
+# SIA servers etc.
+
+# Invocations:
+#
+# GaiaVORegTapQuery object_name [configuration options]
+#
+# This creates an instance of a GaiaTAPQuery object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 04-AUG-2014 (PWD):
+# Original version. Based on RegTapRegistryQuery.java from STARJAVA and
+# the RegTAP example queries.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itcl::class gaiavo::GaiaVORegTapQuery {
+
+ # Singleton entry point:
+ # ----------------------
+ proc instance {} {
+ if { $instance_ == {} } {
+ set instance_ [GaiaVORegTapQuery ::\#auto]
+ }
+ return $instance_
+ }
+
+ # Inheritances:
+ # -------------
+
+ # Nothing
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+ # Nothing to do, just a holder for static methods.
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ }
+
+ # Methods:
+ # --------
+
+ # Return the service type.
+ public method get_type {} {
+ return "RegTAP"
+ }
+
+ # Get ADQL for list of TAP servers.
+ public method get_taps_query {{substring {}}} {
+ return [get_servers ivo://ivoa.net/std/tap $substring]
+ }
+
+ # Get ADQL for list of conesearch servers.
+ public method get_cones_query {{substring {}}} {
+ return [get_servers ivo://ivoa.net/std/ConeSearch $substring]
+ }
+
+ # Get ADQL to get list of SIA servers, qualified by some optional string
+ # that should be in a descriptive content element.
+ public method get_sias_query {{substring {}}} {
+ return [get_servers ivo://ivoa.net/std/sia $substring]
+ }
+
+ # Get ADQL to get list of registries.
+ public method get_registries_query {} {
+ set query {}
+ append query "SELECT access_url "
+ append query "FROM rr.interface "
+ append query "NATURAL JOIN rr.capability "
+ append query "NATURAL JOIN rr.res_detail "
+ append query "WHERE standard_id='ivo://ivoa.net/std/tap' "
+ append query "AND intf_type='vs:paramhttp' "
+ append query "AND detail_xpath='/capability/dataModel/@ivo-id' "
+ append query "AND 1=ivo_nocasematch(detail_value, 'ivo://ivoa.net/std/regtap#1.0)'"
+ return $query
+ }
+
+
+ # Get ADQL to get list of servers with the given standard_id, qualified by
+ # some optional string that should be in a descriptive content element.
+ # XXX only apply subtring to some elements.
+ public method get_servers_query {standard_id {substring {}}} {
+ set query {}
+ append query "SELECT ivoid, short_name, res_title, reference_url, "
+ append query "intf_index, access_url, standard_id, cap_type, cap_description, "
+ append query "std_version, res_subjects "
+ append query "FROM rr.resource AS res "
+ append query "NATURAL JOIN rr.interface "
+ append query "NATURAL JOIN rr.capability "
+ append query "NATURAL LEFT OUTER JOIN "
+ append query "(SELECT ivoid, ivo_string_agg(res_subject, ', ') AS res_subjects FROM rr.res_subject GROUP BY ivoid) AS sbj "
+ append query "WHERE "
+ append query "standard_id='${standard_id}' AND "
+ append query "intf_type='vs:paramhttp'"
+ if { $substring != {} } {
+ append query " AND "
+ append query "(("
+ append query "1=ivo_nocasematch(short_name, '%${substring}%') OR "
+ append query "1=ivo_hasword(res_title, '${substring}') OR "
+ append query "1=ivo_hasword(res_subjects, '${substring}') OR "
+ append query "1=ivo_nocasematch(ivoid, '%${substring}%') OR "
+ append query "1=ivo_hasword(res_description, '${substring}') "
+ append query "))"
+ }
+ return $query
+ }
+
+ # Get the default registry endpoints. Returns a list of pairs of values,
+ # a symbolic name followed by the endpoint.
+ public method get_registries {} {
+ return [::array get registries_]
+ }
+
+ # Add a new registry to the default list. Not peristent.
+ public method add_registry {shortname url} {
+ set registries_($shortname) $url
+ }
+
+ # Get the "default" registry.
+ public method default_registry {} {
+ return [list GAVO_AIP $registries_(GAVO_AIP)]
+ }
+
+ # Get the standard id for a service type shortname.
+ public method get_standard_id {name} {
+ return $standardIDs_($name)
+ }
+
+ # Get the default columns to show.
+ public method default_columns {} {
+ return "$default_columns_"
+ }
+
+ # Extract the access url from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_access_url {headers row} {
+ eval lassign \$row $headers
+ if { [info exists access_url] } {
+ return $access_url
+ }
+ return {}
+ }
+
+ # Extract a name for a service from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_name {headers row} {
+ eval lassign \$row $headers
+ if { [info exists short_name] && $short_name != {} } {
+ return $short_name
+ }
+ if { [info exists res_title] } {
+ return $res_title
+ }
+ return {}
+ }
+
+ # Extract the IVOA identifier for the service from a list of headers
+ # and the associated data row.
+ public method get_identifier {headers row} {
+ eval lassign \$row $headers
+ if { [info exists ivoid] } {
+ return $ivoid
+ }
+ return {}
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+ # The instance of this class.
+ protected common instance_ {}
+
+ # Known RegTAP servers. Needed to boot this process.
+ protected common registries_
+
+ # TAP endpoint for GAVO registry hosted at AIP.
+ set registries_(GAVO_AIP) "http://gavo.aip.de/__system__/tap/run/tap"
+
+ # TAP endpoint for GAVO registry currently hosted at ARI Heidelberg
+ set registries_(GAVO_ARI) "http://dc.zah.uni-heidelberg.de/__system__/tap/run/tap"
+
+ # Mapping of short service names to their standard ids. Yes these differ
+ # in case from RI1.0...
+ protected common standardIDs_
+ set standardIDs_(SIAP) "ivo://ivoa.net/std/sia"
+ set standardIDs_(SSAP) "ivo://ivoa.net/std/ssa"
+ set standardIDs_(CONE) "ivo://ivoa.net/std/conesearch"
+ set standardIDs_(TAP) "ivo://ivoa.net/std/tap"
+
+ # Default columns to show in table views.
+ protected common default_columns_ "short_name res_title"
+
+ # Useful columns.
+ protected common columns_ \
+ "ivoid short_name res_title reference_url intf_index access_url standard_id \
+cap_type cap_description std_version res_subjects"
+
+# End of class definition.
+}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
new file mode 100644
index 00000000000..e6769b4f2f7
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVORegV1Query.tcl
@@ -0,0 +1,186 @@
+#+
+# Name:
+# GaiaVORegV1Query
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Class defining utilities methods for RI1.0.
+
+# Description:
+# Provides a number of methods that describe the registries
+# interface version 1.0.
+
+# Invocations:
+#
+# GaiaVORegV1Query object_name [configuration options]
+#
+# This creates an instance of a GaiaTAPQuery object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 04-AUG-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itcl::class gaiavo::GaiaVORegV1Query {
+
+ # Singleton entry point:
+ # ----------------------
+ proc instance {} {
+ if { $instance_ == {} } {
+ set instance_ [GaiaVORegV1Query ::\#auto]
+ }
+ return $instance_
+ }
+
+ # Inheritances:
+ # -------------
+
+ # Nothing
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+ # Nothing to do, just a holder for static methods.
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ }
+
+ # Methods:
+ # --------
+
+ # Return the service type.
+ public method get_type {} {
+ return "RegV1"
+ }
+
+ # Get the default registry endpoints. Returns a list of pairs of values,
+ # a symbolic name followed by the endpoint.
+ public method get_registries {} {
+ return [::array get registries_]
+ }
+
+ # Add a new registry to the default list. Not peristent.
+ public method add_registry {shortname url} {
+ set registries_($shortname) $url
+ }
+
+ # Get the "default" registry.
+ public method default_registry {} {
+ return [list AstroGrid $registries_(AstroGrid)]
+ }
+
+ # Get the standard id for a service type shortname.
+ public method get_standard_id {name} {
+ return $standardIDs_($name)
+ }
+
+ # Get the default columns to show.
+ public method default_columns {} {
+ return "$default_columns_"
+ }
+
+ # Extract the access url from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_access_url {headers row} {
+ eval lassign \$row $headers
+ if { [info exists accessURL] } {
+ return $accessURL
+ }
+ return {}
+ }
+
+ # Extract a name for a service from a row of values. The headers are the
+ # names of the associated columns.
+ public method get_name {headers row} {
+ eval lassign \$row $headers
+ if { [info exists shortName] && $shortName != {} } {
+ return $shortName
+ }
+ if { [info exists title] } {
+ return $title
+ }
+ return {}
+ }
+
+ # Extract the IVOA identifier for the service from a list of headers
+ # and the associated data row.
+ public method get_identifier {headers row} {
+ eval lassign \$row $headers
+ if { [info exists identifier] } {
+ return $identifier
+ }
+ return {}
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+ # The instance of this class.
+ protected common instance_ {}
+
+ # Known RegV1 servers. Needed to boot this process.
+ protected common registries_
+ set registries_(NVO) "http://nvo.stsci.edu/vor10/ristandardservice.asmx"
+ set registries_(AstroGrid) \
+ "http://registry.astrogrid.org/astrogrid-registry/services/RegistryQueryv1_0"
+
+ # Mapping of short service names to their standard ids. Yes these differ
+ # in case from RegTAP.
+ protected common standardIDs_
+ set standardIDs_(SIAP) "ivo://ivoa.net/std/SIA"
+ set standardIDs_(SSAP) "ivo://ivoa.net/std/SSA"
+ set standardIDs_(CONE) "ivo://ivoa.net/std/ConeSearch"
+ set standardIDs_(TAP) "ivo://ivoa.net/std/TAP"
+
+ # Default columns to show in table views.
+ protected common default_columns_ "shortName title"
+
+# End of class definition.
+}
diff --git a/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl b/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
index abe07218d69..d688de5e17c 100644
--- a/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVORegistrySearch.tcl
@@ -9,13 +9,19 @@
# Class for querying a VO registry.
# Description:
-# This class defines the access methods for querying the NVO
-# registry and astrogrid registries.
+# This class defines the access methods for querying VO registries.
#
-# The basic query to a service type (like sia:SimpleImageAccess) can be
-# refined by adding a ADQL where clause that looks for a specified
+# There are two types of registry, the old V1.0 type, that use a SOAP
+# query interface and the newer RegTAP, that use TAP (ADQL) queries.
+# RegTAP is expected to supercede V1.0.
+#
+# The basic query to a 1.0 service type (like sia:SimpleImageAccess) can
+# be refined by adding a ADQL where clause that looks for a specified
# substring in one of the known columns (these must match the meta-data
# definitions for a VOResource).
+#
+# In TAP there is a similar mechanism, that gives greater freedom to
+# control the query. That isn't necessarily exposed (yet).
# Invocations:
#
@@ -34,7 +40,7 @@
# Performs the given method on this object.
# Copyright:
-# Copyright (C) 2008-2009 Science and Technology Facilities Council
+# Copyright (C) 2008-2014 Science and Technology Facilities Council
# All Rights Reserved.
# Licence:
@@ -85,25 +91,39 @@ itcl::class gaiavo::GaiaVORegistrySearch {
set tempcats_ [gaia::GaiaTempName \#auto -prefix GaiaTempReg \
-exists 0 -type ".TAB"]
- # Display the registry. Offer two symbolic types. NVO and AstroGrid.
+ # User selects the registry type and registry.
+ itk_component add regframe {
+ ::frame $w_.regframe
+ }
set lwidth 10
set vwidth 50
itk_component add registry {
- LabelMenu $w_.registry \
+ LabelMenu $itk_component(regframe).registry \
-text "Registry:" \
-labelwidth $lwidth \
-valuewidth $vwidth
}
- pack $itk_component(registry) -side top -fill x -ipadx 1m -ipady 1m
- add_short_help $itk_component(registry) {VO Registry}
+ pack $itk_component(registry) -side left -fill x -ipadx 1m -ipady 1m
+ add_short_help $itk_component(registry) {VO registry}
- foreach {name value} [array get registries_] {
- $itk_component(registry) add \
- -command [code $this set_registry_ $name] \
- -label $name \
- -value $name
+ itk_component add regtype {
+ LabelMenu $itk_component(regframe).regtype \
+ -labelwidth 0 \
+ -valuewidth 6
}
- $itk_component(registry) configure -value $itk_option(-registry)
+ pack $itk_component(regtype) -side left -fill x -ipadx 1m -ipady 1m
+ add_short_help $itk_component(regtype) {VO registry type}
+
+ pack $itk_component(regframe) -side top -fill x -ipadx 1m -ipady 1m
+
+ foreach type "RI1.0 RegTAP" {
+ $itk_component(regtype) add \
+ -command [code $this set_registry_type_ $type] \
+ -label $type \
+ -value $type
+ }
+ $itk_component(regtype) configure -value "RegTAP"
+ set_registry_type_ "RegTAP"
# Display the type of service. This is fixed.
itk_component add service {
@@ -169,22 +189,37 @@ itcl::class gaiavo::GaiaVORegistrySearch {
eval $itk_option(-feedbackcommand) on
}
- # Establish object to run the query scripts.
- if { $querytask_ == {} } {
- set querytask_ [gaia::GaiaForeignExec \#auto \
+ # Establish objects to run the query scripts.
+ if { $queryregtask_ == {} } {
+ set queryregtask_ [gaia::GaiaForeignExec \#auto \
-application $::gaia_dir/queryreg \
-notify [code $this query_done_]]
}
+ if { $querytaptask_ == {} } {
+ set querytaptask_ [gaia::GaiaForeignExec \#auto \
+ -application $::gaia_dir/querytap \
+ -notify [code $this query_done_]]
+ }
set votable_ [$tempcats_ get_typed_name ".vot"]
set interrupted_ 0
if { $itk_option(-column) != {} && $itk_option(-substring) != {} } {
- $querytask_ runwith [get_registry_] [get_service_] \
- "$itk_option(-column)" "$itk_option(-substring)" "$votable_"
+ if { $itk_option(-registry_type) == "RI1.0" } {
+ $queryregtask_ runwith [get_registry_] [get_service_] \
+ "$itk_option(-column)" "$itk_option(-substring)" "$votable_"
+ } else {
+ set query [$regtap_ get_servers_query [get_service_] "$itk_option(-substring)"]
+ $querytaptask_ runwith [get_registry_] "$query" "$votable_"
+ }
+
} else {
- $querytask_ runwith [get_registry_] [get_service_] \
- "" "" "$votable_"
+ if { $itk_option(-registry_type) == "RI1.0" } {
+ $queryregtask_ runwith [get_registry_] [get_service_] "" "" "$votable_"
+ } else {
+ set query [$regtap_ get_servers_query [get_service_] {}]
+ $querytaptask_ runwith [get_registry_] "$query" "$votable_"
+ }
}
}
@@ -224,13 +259,13 @@ itcl::class gaiavo::GaiaVORegistrySearch {
}
# Set the registry.
- protected method set_registry_ {registry} {
- configure -registry $registry
+ protected method set_registry_ {name url} {
+ configure -registry [list $name $url]
}
# Get the registry endpoint.
protected method get_registry_ {} {
- return $registries_($itk_option(-registry))
+ return [lindex $itk_option(-registry) 1]
}
# Set the service.
@@ -240,7 +275,7 @@ itcl::class gaiavo::GaiaVORegistrySearch {
# Translate a service type to its full description or standard ID.
protected method get_service_ {} {
- return $standardIDs_($itk_option(-service))
+ return [$reghandler_ get_standard_id $itk_option(-service)]
}
# Save the result of a query to an external VOTable.
@@ -253,7 +288,7 @@ itcl::class gaiavo::GaiaVORegistrySearch {
# Read the query directly from an existing file.
public method read_query {filename} {
- # Convert to a TST file so we can open it up as usual.
+ # Convert to a TST file so we can open it up as usual.
set vot [gaiavotable::open $filename]
# Check the STATUS return.
@@ -266,6 +301,32 @@ itcl::class gaiavo::GaiaVORegistrySearch {
# This is the current VOTable now.
set votable_ $filename
+
+ # Wart: seems that registries do not only return resources with the
+ # expected capability class, so apply a retrospective filter. Esp.
+ # bad for TAP services. Shouldn't be a large response so just eat the
+ # file process into the same name.
+ set fp [::open $tempname]
+ set data [::read $fp]
+ ::close $fp
+ set fp [::open $tempname "w"]
+ set pattern [get_service_]
+ set ok 1
+ foreach line [split $data "\n"] {
+ if { $ok } {
+ # Just passthrough header section.
+ if { [string first "--" $line] == 0 } {
+ set ok 0
+ }
+ puts $fp $line
+ } else {
+ if { [string first $pattern $line] != -1 } {
+ puts $fp $line
+ }
+ }
+ }
+ ::close $fp
+
} else {
set status 0
set tempname \
@@ -278,13 +339,68 @@ itcl::class gaiavo::GaiaVORegistrySearch {
}
}
+ # Change the registry type.
+ protected method set_registry_type_ {type} {
+
+ # If changed we want to change the columns.
+ set change_cols 0
+ if { $type != $itk_option(-registry_type) } {
+ set change_cols 1
+ }
+ configure -registry_type $type
+
+ # Set the handler.
+ if { $type == "RI1.0" } {
+ set reghandler_ $regv1_
+ } else {
+ set reghandler_ $regtap_
+ }
+
+ # Clear any existing registries.
+ $itk_component(registry) clear
+
+ foreach {name value} [$reghandler_ get_registries] {
+ $itk_component(registry) add \
+ -command [code $this set_registry_ $name $value] \
+ -label $name \
+ -value $value
+ }
+ $itk_component(registry) configure \
+ -value [lindex [$reghandler_ default_registry] 1]
+ eval set_registry_ [$reghandler_ default_registry]
+
+ # Change default columns.
+ if { $itk_option(-show_cols_cmd) != {} } {
+ eval $itk_option(-show_cols_cmd) {[$reghandler_ default_columns]}
+ }
+ }
+
+ # Get the identifier from a catalogue row with the associated headings.
+ # Uses the current registry type to locate the column name.
+ public method get_identifier {headings row} {
+ return [$reghandler_ get_identifier "$headings" "$row"]
+ }
+
+ # Get the access URL from a catalogue row with the associated headings.
+ # Uses the current registry type to locate the column name.
+ public method get_access_url {headings row} {
+ return [$reghandler_ get_access_url "$headings" "$row"]
+ }
+
+ # Get the name/title from a catalogue row with the associated headings.
+ # Uses the current registry type to locate the column name.
+ public method get_name {headings row} {
+ return [$reghandler_ get_name "$headings" "$row"]
+ }
+
# Configuration options: (public variables)
# ----------------------
+
+ # Current registry and type.
+ itk_option define -registry registry Registry {}
+ itk_option define -registry_type registry_type Registry_Type {}
- # The type of VO registry to query, NVO or AstroGrid.
- itk_option define -registry registry Registry "NVO"
-
- # The type of query, SIAP, SSAP or CONE.
+ # The type of query, SIAP, SSAP, CONE or TAP.
itk_option define -service service Service "SIAP"
# Command to execute when a list of servers is accepted.
@@ -298,6 +414,10 @@ itcl::class gaiavo::GaiaVORegistrySearch {
# the substring entry.
itk_option define -query_cmd query_cmd Query_Cmd {}
+ # Command to execute when the default columns to show in the results
+ # should change. This is necessary when switching between the two types.
+ itk_option define -show_cols_cmd show_cols_cmd Show_Cols_Cmd {}
+
# Name of a column to qualify query.
itk_option define -column column Column {title}
@@ -314,35 +434,28 @@ itcl::class gaiavo::GaiaVORegistrySearch {
protected variable votable_ {}
# Task controlling queries.
- protected variable querytask_ {}
+ protected variable queryregtask_ {}
+ protected variable querytaptask_ {}
# Set true when a query is being interrupted.
protected variable interrupted_ 0
+ # Current handler for different registry types.
+ protected variable reghandler_ [::gaiavo::GaiaVORegTapQuery::instance]
+
# Common variables: (shared by all instances)
# -----------------
- # The known registries.
- protected common registries_
- set registries_(NVO) "http://nvo.stsci.edu/vor10/ristandardservice.asmx"
- set registries_(AstroGrid) \
- "http://registry.astrogrid.org/astrogrid-registry/services/RegistryQueryv1_0"
-
# Mapping for short to full names of services.
protected common services_
set services_(SIAP) "SimpleImageAccess"
set services_(SSAP) "SimpleSpectralAccess"
set services_(CONE) "ConeSearch"
+ set services_(TAP) "TableAccess"
- # Mapping of short service names to their standard ids.
- protected common standardIDs_
- set standardIDs_(SIAP) "ivo://ivoa.net/std/SIA"
- set standardIDs_(SSAP) "ivo://ivoa.net/std/SSA"
- set standardIDs_(CONE) "ivo://ivoa.net/std/ConeSearch"
-
- # Possible columns for adding a predicate.
- protected common columns_ "title shortName"
-
+ # Handlers for different registry types.
+ protected common regtap_ [::gaiavo::GaiaVORegTapQuery::instance]
+ protected common regv1_ [::gaiavo::GaiaVORegV1Query::instance]
# End of class definition.
}
diff --git a/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl b/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl
index 7d30c24fdc6..fa707fc7c1f 100644
--- a/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl
+++ b/applications/gaia/gaiavo/library/GaiaVOSIAPSearchs.tcl
@@ -426,15 +426,39 @@ itcl::class gaiavo::GaiaVOSIAPSearchs {
return [list $ra $dec $radius]
}
+ # Realise the registry dialog, we need this for service functions as well
+ # as when we want to change the list of SIAP servers, so use local method
+ # rather than utils. XXX clearly this should all be refactored so thst
+ # registry is a model and we just have various views.
+ protected method create_registry_ { withdraw } {
+ if { [winfo exists $w_.voregistry] } {
+ $w_.voregistry config \
+ -catalog [$itk_option(-astrocat) longname] \
+ -service SIAP \
+ -activate_cmd [code $this changed_registry_] \
+ -blacklist $itk_option(-blacklist)
+ } else {
+ GaiaVOCatRegistry $w_.voregistry \
+ -catalog [$itk_option(-astrocat) longname] \
+ -service SIAP \
+ -activate_cmd [code $this changed_registry_] \
+ -blacklist $itk_option(-blacklist)
+ # Wait for realisation to complete...
+ tkwait visibility $w_.voregistry
+ }
+
+ if { ! $withdraw } {
+ utilRaiseWindow $w_.voregistry
+ } else {
+ wm withdraw $w_.voregistry
+ }
+ }
+
+
# Activate the registry dialog.
protected method registry_query_ {} {
blt::busy hold [winfo toplevel $w_]
- utilReUseWidget GaiaVOCatRegistry $w_.voregistry \
- -catalog [$itk_option(-astrocat) longname] \
- -service SIAP \
- -show_cols {shortName title} \
- -activate_cmd [code $this changed_registry_] \
- -blacklist $itk_option(-blacklist)
+ create_registry_ 0
}
# Registry has been changed and maybe accepted.
@@ -443,6 +467,22 @@ itcl::class gaiavo::GaiaVOSIAPSearchs {
$itk_option(-astrocat) open [$w_.voregistry cget -catalog]
}
+ # Provide access to GaiaVOCatRegistry specialisations for different
+ # registry types.
+ public method get_identifier {headings row} {
+ create_registry_ 1
+ return [$w_.voregistry get_identifier "$headings" "$row"]
+ }
+ public method get_access_url {headings row} {
+ create_registry_ 1
+ return [$w_.voregistry get_access_url "$headings" "$row"]
+ }
+ public method get_name {headings row} {
+ create_registry_ 1
+ return [$w_.voregistry get_name "$headings" "$row"]
+ }
+
+
# Configuration options: (public variables)
# ----------------------
diff --git a/applications/gaia/gaiavo/library/GaiaVOTAP.tcl b/applications/gaia/gaiavo/library/GaiaVOTAP.tcl
new file mode 100644
index 00000000000..019811a2191
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVOTAP.tcl
@@ -0,0 +1,421 @@
+#+
+# Name:
+# GaiaVOTAP
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Query a TAP service.
+
+# Description:
+# Extends the GaiaVOCat class to query a given TAP service.
+# XXX what kind of results are we expecting, simple catalogue?
+# Links to images/cubes etc?
+
+# Invocations:
+#
+# GaiaVOTAP object_name [configuration options]
+#
+# This creates an instance of a GaiaVOTAP object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 28-MAR-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itk::usual GaiaVOTAP {}
+
+itcl::class gaiavo::GaiaVOTAP {
+
+ # Inheritances:
+ # -------------
+ inherit gaiavo::GaiaVOCat
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+ eval itk_initialize $args
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ }
+
+ # Methods:
+ # --------
+
+ # Add additional menu items.
+ public method init {} {
+ GaiaVOCat::init
+
+ # Override title.
+ wm title $w_ "Query TAP service"
+
+ set m [add_menubutton Options "Options menu"]
+
+ # Change the plot symbols.
+ add_menuitem $m command "Set plot symbols..." \
+ {Set the symbol (color, size, etc.) to use to plot objects} \
+ -command [code $this set_plot_symbols]
+
+ # Add menus for selecting simple plot symbols.
+ add_plot_menus_
+
+ # Plot symbols button.
+ itk_component add plot {
+ button $itk_component(buttons).plot \
+ -text "Plot" \
+ -command [code $this plot]
+ }
+ pack $itk_component(plot) -side left -before $itk_component(open) -expand 1 -pady 2m
+ add_short_help $itk_component(plot) {Plot positions over image}
+
+ # Loose the "Open" button.
+ pack forget $itk_component(open)
+
+ # Set names for the canvas tags used for all symbols. This defined
+ # in the imgplot command.
+ set tag_ $w_.cat
+ set object_tag_ $tag_.objects
+ set label_tag_ $tag_.labels
+
+ # Add bindings for symbols.
+ $canvas_ bind $object_tag_ <1> [code $this select_symbol current 0]
+ $canvas_ bind $object_tag_ \
+ [code $this select_symbol current 1]
+ $canvas_ bind $object_tag_ \
+ [code $this select_symbol current 1]
+ $canvas_ bind $object_tag_ "$canvas_ config -cursor tcross"
+ $canvas_ bind $object_tag_ "$draw_ reset_cursor"
+
+ # Button release selects symbols for selected rows.
+ bind $itk_component(results).listbox \
+ [code $this select_result_row]
+ }
+
+ # Add the component that will control the query.
+ protected method add_query_component_ {} {
+
+ itk_component add tap {
+ gaiavo::GaiaVOTAPQuery $w_.tap \
+ -accessURL $itk_option(-accessURL) \
+ -shortname $itk_option(-shortname) \
+ -feedbackcommand [code $this set_feedback] \
+ -astrocat [code $w_.cat] \
+ -command [code $this query_done] \
+ -gaiactrl [$itk_option(-gaia) get_image]
+ }
+ pack $itk_component(tap) -side top -fill x -expand 1
+ add_short_help $itk_component(tap) \
+ {Controls for querying the TAP service}
+
+ set query_component_ $itk_component(tap)
+ }
+
+ # New catalogue, set default plot symbol.
+ public method query_done {status result} {
+ GaiaVOCat::query_done $status $result
+ set_default_plot_symbol_
+ }
+
+ # Open a service, "args" is a list of values from a row of the current
+ # table.
+ protected method open_service_ {args} {
+ # Do nothing.
+ }
+
+ # Plot the RA and Dec positions on the image using the defined symbols.
+ public method plot {} {
+
+ # Clear any existing positions.
+ clear_plot
+
+ # Create an AST FrameSet to describe the coordinates.
+ set att {}
+ set system [$w_.cat system]
+ if { $system != {} } {
+ append att "System=$system,"
+ }
+ set epoch [$w_.cat epoch]
+ if { $epoch != {} } {
+ append att "Epoch=$epoch,"
+ }
+ set equinox [$w_.cat equinox]
+ if { $equinox != {} } {
+ append att "Equinox=$equinox,"
+ }
+
+ # Fallback to standard.
+ if { $equinox == {} && $att == {} } {
+ append att "System=FK5,Equinox=$equinox_"
+ }
+
+ # Create the AST FrameSet.
+ set astref [gaiautils::astskyframeset $att]
+
+ # Do the plot.
+ if {[catch {$w_.cat imgplot $rtdimage_ $info_ $astref $headings_} msg]} {
+ error_dialog $msg
+ }
+ }
+
+ # Clear the plot of any existing symbols.
+ public method clear_plot {} {
+ catch {$canvas_ delete $tag_}
+ }
+
+ # Set the catalogue plotting symbol to the default.
+ protected method set_default_plot_symbol_ {} {
+ if { $type_ == {} } {
+ set type_ circle
+ }
+ if { $colour_ == {} } {
+ set colour_ red
+ }
+ if { $size_ == {} } {
+ set size_ 3
+ }
+ set_simple_symbol_
+ }
+
+ # Set the catalogue plotting symbol to that of the markers menu.
+ protected method set_simple_symbol_ {} {
+ set symbol [list {} [list $type_ $colour_ {} {} {} {}] [list $size_ {}]]
+ $w_.cat symbol $symbol
+ plot
+ }
+
+ # Pop up a dialog to set the plot symbols to use for this catalogue.
+ public method set_plot_symbols {} {
+ set columns $headings_
+ if {[llength $columns] == 0} {
+ info_dialog \
+ "Please make a query first so that the column names are known" $w_
+ return
+ }
+ utilReUseWidget cat::SymbolConfig $w_.symconf \
+ -catalog $itk_option(-catalog) \
+ -astrocat [code $w_.cat] \
+ -columns $columns \
+ -command [code $this plot]
+ }
+
+ # Add the menu items for selecting simple plot symbols.
+ protected method add_plot_menus_ {} {
+ set m [add_menubutton Markers "Plot symbol markers"]
+
+ # Add the menus
+ foreach {label name} {Type type Size size Colour colour} {
+ $m add cascade -label $label -menu [menu $m.$name]
+ }
+
+ # Add short help texts for menu items
+ add_menu_short_help $m Type {Set the plot symbol shape}
+ add_menu_short_help $m Size {Set the plot symbol size (pixels)}
+ add_menu_short_help $m Colour {Set the plot symbol colour}
+
+ # Add the known types.
+ foreach {name} $symbol_types_ {
+ $m.type add radiobutton \
+ -value $name \
+ -bitmap $name \
+ -variable [scope type_] \
+ -command [code $this set_simple_symbol_]
+ }
+
+ # Size menu
+ foreach i {3 5 7 9 11 15 21 31} {
+ $m.size add radiobutton \
+ -value $i \
+ -label $i \
+ -variable [scope size_] \
+ -command [code $this set_simple_symbol_]
+ }
+
+ # Colour menu
+ foreach i $colours_ {
+ $m.colour add radiobutton \
+ -value $i \
+ -command [code $this set_simple_symbol_] \
+ -variable [scope colour_] \
+ -background $i
+ }
+ }
+
+ # Select a symbol, given the canvas id and optional row number
+ # in the table listing. If $toggle is 0, deselect all other symbols
+ # first, otherwise toggle the selection of the items given by $id.
+ public method select_symbol {id toggle {rownum -1}} {
+ set tag [lindex [$canvas_ gettags $id] 0]
+
+ if {$rownum < 0} {
+ set rownum [get_table_row $id]
+ if {$rownum < 0} {
+ return
+ }
+ }
+
+ if {$toggle} {
+ if {[$draw_ item_has_tag $tag $w_.selected]} {
+ deselect_symbol $tag
+ $itk_component(results) deselect_row $rownum
+ return
+ }
+ } else {
+ deselect_symbol $w_.selected
+ }
+
+ if {"$rownum" >= 0} {
+ $itk_component(results) select_row $rownum [expr !$toggle]
+ $itk_component(results) select_result_row
+ }
+
+ foreach i [$canvas_ find withtag $tag] {
+ set width [$canvas_ itemcget $i -width]
+ $canvas_ itemconfig $i -width [expr $width+2]
+ }
+ $canvas_ addtag $w_.selected withtag $tag
+ $canvas_ raise $tag $rtdimage_
+ }
+
+ # Return the table row index corresponding the given symbol canvas id.
+ # Note: The imgplot subcommand adds a canvas tag "row#$rownum" that we can
+ # use here. Also: cat$id is first tag in the tag list for each object.
+ public method get_table_row {id} {
+
+ set tags [$canvas_ gettags $id]
+ # Look for row#tag (but only if not sorted!)
+ if {[llength [$w_.cat sortcols]] == 0} {
+ foreach tag $tags {
+ if {[scan $tag "row#%d" rownum] == 1} {
+ return $rownum
+ }
+ }
+ }
+
+ # Search for $id in query results (slow way).
+ set tag [lindex $tags 0]
+ set rownum -1
+ foreach row [$itk_component(results) get_contents] {
+ incr rownum
+ set id [lindex $row [$w_.cat id_col]]
+ if { "cat$id" == "$tag" } {
+ return $rownum
+ }
+ }
+
+ # Not found.
+ return -1
+ }
+
+ # Deselect the given symbol, given its canvas tag or id.
+ public method deselect_symbol {tag} {
+ foreach i [$canvas_ find withtag $tag] {
+ set width [$canvas_ itemcget $i -width]
+ $canvas_ itemconfig $i -width [expr $width-2]
+ }
+ $canvas_ dtag $tag $w_.selected
+ }
+
+ # Called when a row in the table is selected.
+ protected method select_result_row {} {
+ $itk_component(results) select_result_row
+
+ # Clear symbol selection
+ deselect_symbol $w_.selected
+
+ # Select symbols matching selected rows
+ foreach row [$itk_component(results) get_selected_with_rownum] {
+ lassign $row rownum row
+ set id [lindex $row [$w_.cat id_col]]
+ if {"$id" == ""} {
+ continue
+ }
+ select_symbol cat$id 1 $rownum
+ }
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+ # Instance of GAIA to display the catalogue.
+ itk_option define -gaia gaia Gaia {} {
+ set rtdctrl_ [$itk_option(-gaia) get_image]
+ set rtdimage_ [$rtdctrl_ get_image]
+ set canvas_ [$rtdctrl_ get_canvas]
+ set draw_ [$rtdctrl_ component draw]
+ }
+
+ # Protected variables: (available to instance)
+ # --------------------
+
+ # Various elements from the GAIA instance.
+ protected variable rtdctrl_ {}
+ protected variable rtdimage_ {}
+ protected variable canvas_ {}
+ protected variable draw_ {}
+
+ # Equinox for VO catalogues. Really ICRS but J2000 (=FK5/J2000).
+ protected variable equinox_ "J2000"
+
+ # Various tags associated with the positions when plotted. These
+ # are defined by imgplot method.
+ protected variable tag_ {}
+ protected variable object_tag_ {}
+ protected variable label_tag_ {}
+
+ # Simple symbol values.
+ protected variable type_ {}
+ protected variable colour_ {}
+ protected variable size_ {}
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+ protected common symbol_types_ \
+ {circle square cross triangle diamond}
+
+ protected common colours_ {white grey90 grey80 grey70 grey60 grey50
+ grey40 grey30 grey20 grey10 black red green blue cyan magenta yellow}
+
+}
diff --git a/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl b/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
new file mode 100644
index 00000000000..359c0a0bd12
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVOTAPQuery.tcl
@@ -0,0 +1,335 @@
+#+
+# Name:
+# GaiaVOTAPQuery
+
+# Type of Module:
+# [incr Tcl] class
+
+# Purpose:
+# Class for querying a VO TAP service.
+
+# Description:
+# Provides controls for constructing and doing a query of a TAP version
+# 1 service. The service is defined by an URL representing the service
+# resource root. XXX just using /sync for testing...
+
+# Invocations:
+#
+# GaiaVOTAPQuery object_name [configuration options]
+#
+# This creates an instance of a GaiaTAPQuery object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilities Council
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (JAC, Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 28-MAR-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itk::usual GaiaVOTAPQuery {}
+
+itcl::class gaiavo::GaiaVOTAPQuery {
+
+ # Inheritances:
+ # -------------
+ inherit util::FrameWidget
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+
+ # Evaluate any options.
+ eval itk_initialize $args
+
+ # Handler for temporary files.
+ set tempcats_ [gaia::GaiaTempName \#auto -prefix GaiaTempTAP \
+ -exists 0 -type ".TAB"]
+
+ # Display the TAP resource name and/or resource URL.
+ set lwidth 10
+ set vwidth 50
+ if { $itk_option(-shortname) != {} } {
+ set name "$itk_option(-shortname) ($itk_option(-accessURL))"
+ } else {
+ set name $itk_option(-accessURL)
+ }
+
+ itk_component add actionframe {
+ frame $w_.actionframe
+ }
+ pack $itk_component(actionframe) -side top -fill x -ipadx 1m -ipady 1m
+
+ itk_component add servicename {
+ LabelValue $itk_component(actionframe).servicename \
+ -text "Service:" \
+ -labelwidth $lwidth \
+ -valuewidth $vwidth \
+ -value $itk_option(-shortname)
+ }
+ pack $itk_component(servicename) -side top -fill x -expand 1
+ add_short_help $itk_component(servicename) "The TAP service name"
+
+ itk_component add serviceurl {
+ LabelValue $itk_component(actionframe).serviceurl \
+ -text " " \
+ -labelwidth $lwidth \
+ -valuewidth $vwidth \
+ -value $itk_option(-accessURL)
+ }
+ pack $itk_component(serviceurl) -side top -fill x -expand 1
+ add_short_help $itk_component(serviceurl) "The TAP service endpoint"
+
+ # Additional query for discovering information about the tables
+ # on offer.
+ itk_component add queryservice {
+ button $itk_component(actionframe).queryservice \
+ -text "Tables..." \
+ -command [code $this query_tables_]
+ }
+ pack $itk_component(queryservice) -side right -fill none -expand 0 -ipadx 1m
+ add_short_help $itk_component(queryservice) \
+ {Query the service for information about the tables available}
+
+ # Get the ADQL query.
+ itk_component add adqlframe {
+ iwidgets::scrolledtext $w_.adql \
+ -labeltext "ADQL Query" \
+ -wrap none \
+ -vscrollmode static \
+ -hscrollmode dynamic
+ }
+
+ pack $itk_component(adqlframe) -side top -fill x -ipadx 1m -ipady 1m
+ add_short_help $itk_component(adqlframe) {ADQL query, press Query button to activate}
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+ $tempcats_ clear
+ }
+
+ # Methods:
+ # --------
+
+ # Complete interface.
+ public method init {} {
+ FrameWidget::init
+ }
+
+ # Do the query as a background job.
+ public method query {} {
+
+ # Query starts, so might want to do something.
+ if { $itk_option(-feedbackcommand) != {} } {
+ eval $itk_option(-feedbackcommand) on
+ }
+
+ # Establish object to run the query script.
+ if { $querytask_ == {} } {
+ set querytask_ [gaia::GaiaForeignExec \#auto \
+ -application $::gaia_dir/querytap \
+ -notify [code $this query_done_]]
+ }
+ set votable_ [$tempcats_ get_typed_name ".vot"]
+ set interrupted_ 0
+ set query [$itk_component(adqlframe) get 1.0 end]
+ $querytask_ runwith $itk_option(-accessURL) $query $votable_
+ }
+
+ # Interrupt the query.
+ public method interrupt {} {
+ if { $querytask_ != {} } {
+ set interrupted_ 1
+ catch {$querytask_ delete_now}
+ set querytask_ {}
+ }
+ if { $itk_option(-feedbackcommand) != {} } {
+ eval $itk_option(-feedbackcommand) off
+ }
+ }
+
+ # Called when the query completes.
+ protected method query_done_ {} {
+
+ # Immediate notification we're finished.
+ if { $itk_option(-feedbackcommand) != {} } {
+ eval $itk_option(-feedbackcommand) off
+ }
+
+ if { $interrupted_ } {
+ info_dialog "Query interrupted"
+ return
+ }
+
+ # Check file exists.
+ if { ! [::file exists $votable_] } {
+ warning_dialog "Failed to query TAP service"
+ return
+ }
+
+ # Convert to TST and do the command to display etc.
+ read_query $votable_
+ }
+
+ # Save the result of a query to an external VOTable.
+ public method save_query {filename} {
+ if { $votable_ != {} && [::file exists $votable_] } {
+ ::file copy -force $votable_ $filename
+ }
+ }
+
+ # Read the query directly from an existing file.
+ public method read_query {filename} {
+
+ # Convert to a TST file so we can open it up as usual.
+ if { [catch {set vot [gaiavotable::open $filename]} msg] } {
+ set status 0
+ set tempname "$msg ($filename)"
+ } else {
+
+ # Check the STATUS return.
+ lassign [gaiavotable::info $vot "QUERY_STATUS"] query_status errmsg
+ if { $query_status != "ERROR" } {
+ set status 1
+ set tempname [$tempcats_ get_name]
+ set tst [gaiavotable::save $vot 0 $tempname]
+ gaiavotable::close $vot
+
+ # This is the current VOTable now.
+ set votable_ $filename
+
+ } else {
+ set status 0
+ set tempname "Query returned an error ($query_status: $errmsg)"
+ }
+ }
+
+ # Do the user command (always done as something may be waiting
+ # for the query to complete, tempname may be an error message).
+ if { $itk_option(-command) != {} } {
+ eval $itk_option(-command) \$status \$tempname
+ }
+ }
+
+ # Query the TAP service about the tables that it provides and display some
+ # of the metadata. Only done once, as should be fixed for an accessURL.
+ protected method query_tables_ {} {
+ if { $tables_doc_ == {} } {
+ set query "$itk_option(-accessURL)/tables"
+ if { $querytaptask_ == {} } {
+ set querytaptask_ [gaia::GaiaForeignExec \#auto \
+ -application $::gaia_dir/querytapthings \
+ -preprocess [code $this query_tables_output_] \
+ -notify [code $this query_tables_done_]]
+ }
+
+ blt::busy hold $w_
+ set tables_doc_ {}
+ $querytaptask_ runwith $itk_option(-accessURL) "tables"
+ } else {
+ # Just make sure the results window can be viewed.
+ utilRaiseWindow $w_.tableset
+ }
+ }
+
+ # Handle output from query_tables task.
+ protected method query_tables_output_ {msg} {
+ append tables_doc_ $msg
+ }
+
+ # Query table completed, so pass on result to viewer.
+ protected method query_tables_done_ {} {
+ blt::busy release $w_
+ if { $tables_doc_ != {} } {
+ utilReUseWidget gaiavo::GaiaVOTableSet $w_.tableset -xml $tables_doc_
+ ::update idletasks
+ $w_.tableset update
+ }
+ }
+
+ # Configuration options: (public variables)
+ # ----------------------
+
+ # The shortname of the service.
+ itk_option define -shortname shortname ShortName {}
+
+ # The TAP resource URL.
+ itk_option define -accessURL accessURL AccessURL {}
+
+ # Command to execute when a list of images is accepted. The command
+ # will be trailed by a status flag (1 for OK) and either a filename
+ # or an error message.
+ itk_option define -command command Command {}
+
+ # Command to execute when batch jobs starts and stops.
+ itk_option define -feedbackcommand feedbackcommand FeedBackCommand {}
+
+ # An astrocat instance for handling the result as a TST.
+ itk_option define -astrocat astrocat AstroCat {}
+
+ # GaiaImageCtrl instance.
+ itk_option define -gaiactrl gaiactrl GaiaCtrl {}
+
+ # Protected variables: (available to instance)
+ # --------------------
+
+ # Temporary files.
+ protected variable tempcats_ {}
+
+ # Name of the VOTable from query.
+ protected variable votable_ {}
+
+ # Task controlling querys.
+ protected variable querytask_ {}
+
+ # Set true when a query is being interrupted.
+ protected variable interrupted_ 0
+
+ # Task to query the TAP service about it's tables.
+ protected variable querytaptask_ {}
+
+ # Output from querytaptask_, an XML document.
+ protected variable tables_doc_ {}
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+# End of class definition.
+}
diff --git a/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl b/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
new file mode 100755
index 00000000000..9467b8bcea8
--- /dev/null
+++ b/applications/gaia/gaiavo/library/GaiaVOTableSet.tcl
@@ -0,0 +1,421 @@
+#+
+# Name:
+# GaiaVOTableSet
+
+# Type of Module:
+# [incr Tk] class
+
+# Purpose:
+# Viewer for VODataService XML documents.
+
+# Description:
+# Displays a VODataService XML document as a series of tables
+# found within a element. These are associated with
+# various schema, but we just offer all 's that are found.
+# Tables have the interesting properties of name, plus
+# units and ucd, utypes etc.
+
+# Invocations:
+#
+# GaiaVOTableSet object_name [configuration options]
+#
+# This creates an instance of a GaiaVOTableSet object. The return is
+# the name of the object.
+#
+# object_name configure -configuration_options value
+#
+# Applies any of the configuration options (after the instance has
+# been created).
+#
+# object_name method arguments
+#
+# Performs the given method on this object.
+
+# Configuration options:
+# See itk_option define statements.
+
+# Methods:
+# See method definitions below.
+
+# Inheritance:
+# TopLevelWidget
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Research Council.
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# Authors:
+# PWD: Peter Draper (STARLINK - Durham University)
+# {enter_new_authors_here}
+
+# History:
+# 07-AUG-2014 (PWD):
+# Original version.
+# {enter_further_changes_here}
+
+#-
+
+#.
+
+itk::usual GaiaVOTableSet {}
+
+itcl::class gaiavo::GaiaVOTableSet {
+
+ # Inheritances:
+ # -------------
+ inherit util::TopLevelWidget
+
+ # Constructor:
+ # ------------
+ constructor {args} {
+
+ # Evaluate any options.
+ eval itk_initialize $args
+
+ # Add a short help window.
+ make_short_help
+
+ # Add menubar.
+ add_menubar
+
+ # File menu.
+ set m [add_menubutton File]
+
+ add_menuitem $m command "Close" \
+ {Close this window} \
+ -command [code $this close]
+
+ }
+
+ # Destructor:
+ # -----------
+ destructor {
+
+ }
+
+ # Methods:
+ # --------
+
+ # Complete interface construction.
+ public method init {} {
+
+ # Help menu.
+ add_help_menu_
+
+ # Add the table for displaying all the tables.
+ itk_component add tables {
+ TableList $w_.tables \
+ -title "Tables" \
+ -hscroll 1 \
+ -selectmode $selectmode_ \
+ -exportselection $exportselection_ \
+ -headings {name description} \
+ -height 5 \
+ -width 80
+ }
+ add_short_help $itk_component(tables) {Tables available}
+
+ # Set table binding edit the entries.
+ bind $itk_component(tables).listbox <1> [code $this view_selected_]
+ bind $itk_component(tables).listbox <> \
+ [code $this view_selected_]
+
+ # Add the table for displaying the current table.
+ itk_component add table {
+ TableList $w_.table \
+ -title "Current table" \
+ -hscroll 1 \
+ -selectmode $selectmode_ \
+ -exportselection $exportselection_ \
+ -headings {column description datatype units ucd utype} \
+ -height 15 \
+ -width 80
+ }
+ add_short_help $itk_component(table) \
+ {Columns and descriptions in the current table}
+
+ # Add frames for holding table action buttons.
+ itk_component add actionbar {
+ frame $w_.actionbar
+ }
+
+ # Close window.
+ itk_component add close {
+ button $itk_component(actionbar).close \
+ -text "Close" \
+ -command [code $this close]
+ }
+ pack $itk_component(close) -side left -expand 1 -pady 2m
+ add_short_help $itk_component(close) {Close window}
+
+ # Pack all widgets into place.
+ pack $itk_component(tables) -side top -fill both -expand 1
+ pack $itk_component(table) -side top -fill both -expand 1
+ pack $itk_component(actionbar) -side top -fill x -pady 3 -padx 3
+
+ }
+
+ # Add and populate the help menu. Has the VO overview by default
+ # plus an additional topic defined by help_file and help_label.
+ protected method add_help_menu_ {} {
+ if { $itk_option(-help_file) != {} && $itk_option(-help_label) != {} } {
+ add_help_button $itk_option(-help_file) $itk_option(-help_label) \
+ {Help on this window...}
+ }
+ add_help_button vo "About VO services..." {Help on VO in GAIA}
+ }
+
+ # Close this window.
+ public method close {} {
+ wm withdraw $w_
+ }
+
+ # Return number of rows.
+ public method total_rows {main} {
+ if { $main } {
+ return [$itk_component(tables) total_rows]
+ } else {
+ return [$itk_component(table) total_rows]
+ }
+ }
+
+ # Return contents of table.
+ public method get_contents {main} {
+ if { $main } {
+ return [$itk_component(tables) get_contents]
+ } else {
+ return [$itk_component(table) get_contents]
+ }
+ }
+
+ # Return selected contents of table. Only one row allowed.
+ public method get_selected {main} {
+ if { $main } {
+ return [lindex [$itk_component(tables) get_selected] 0]
+ } else {
+ return [lindex [$itk_component(table) get_selected] 0]
+ }
+ }
+
+ # Set the contents of the table.
+ public method set_contents { main rows } {
+ if { $main } {
+ $itk_component(tables) append_rows $rows
+ } else {
+ $itk_component(table) append_rows $rows
+ }
+ }
+
+ # Append a new row to the table. Call new_info when completed.
+ public method append_row {main row} {
+ if { $main } {
+ $itk_component(tables) append_row $row
+ } else {
+ $itk_component(table) append_row $row
+ }
+ }
+ public method new_info {main} {
+ if { $main } {
+ $itk_component(tables) new_info
+ } else {
+ $itk_component(table) new_info
+ }
+ }
+
+ # Select the row with the given id.
+ public method select_row {main id} {
+ if { $main } {
+ $itk_component(tables) search id $id
+ } else {
+ $itk_component(table) search id $id
+ }
+ }
+
+ # Clear the tables.
+ public method clear_table {main} {
+ if { $main } {
+ $itk_component(tables) clear
+ } else {
+ $itk_component(table) clear
+ }
+ }
+ public method clear_tables {} {
+ $itk_component(tables) clear
+ $itk_component(table) clear
+ }
+
+ # Write a copy of the table to an ordinary file.
+ public method write_to_file {} {
+ set w [FileSelect .\#auto -title "Write positions to file"]
+ if {[$w activate]} {
+ set filename [$w get]
+ if { [file exists $filename] } {
+ if { ! [ confirm_dialog \
+ "$filename exists - do you want to overwrite?"] } {
+ destroy $w
+ return
+ }
+ }
+ save_positions $filename
+ }
+ destroy $w
+ }
+
+ # Write table contents to a named file.
+ public method save_positions {filename} {
+ set fid [::open $filename w]
+ set nrows [$itk_component(table) total_rows]
+ set contents [$itk_component(table) get_contents]
+ for { set i 0 } { $i < $nrows } { incr i } {
+ puts $fid [lindex $contents $i]
+ }
+ ::close $fid
+ }
+
+ # XML handling.
+
+ # Parse the document after updating the XML.
+ public method update {} {
+ clear_tables
+ if { $itk_option(-xml) != {} } {
+ parse_doc_
+ }
+ }
+
+ # Parse the XML into lists of tables and the table's columns.
+ protected method parse_doc_ {} {
+ if { [ catch { set doc [dom parse $itk_option(-xml)] } msg ] } {
+ error_dialog $msg
+ return
+ }
+
+ # Now find all the s.
+ set root [$doc documentElement]
+
+ # Don't do this, some responses are not correct, but still usable.
+ #if { ! [string match -nocase "*tableset" [$root nodeName]] } {
+ # error_dialog "root of document not a tableset: [$root nodeName]"
+ # return
+ #}
+ set tables [$root selectNodes "//table"]
+
+ # Gather names and descriptions.
+ set info {}
+ array unset tablelist_
+ foreach table $tables {
+ set name [get_node_text_ $table "name"]
+
+ # We require a name.
+ if { $name != {} } {
+ set desc [get_node_text_ $table "description"]
+ set desc [clean_ $desc]
+ lappend info [list $name $desc]
+
+ # Keep indexed list of table nodes so we can pick out content as
+ # needed.
+ set tablelist_($name) $table
+ }
+ }
+
+ set_contents 1 $info
+ new_info 1
+
+ # Select first row.
+ $itk_component(tables) select_row 1
+ ::update idletasks
+ view_selected_
+ }
+
+ # View the properties of the selected table.
+ protected method view_selected_ {} {
+ set selected [get_selected 1]
+ set name [lindex $selected 0]
+ if { [info exists tablelist_($name)] } {
+ parse_table_ $name
+ }
+ }
+
+ # Extract and view the properties of the given table.
+ protected method parse_table_ {name} {
+ clear_table 0
+
+ set table $tablelist_($name)
+
+ # Get all the columns and create rows describing each.
+ set info {}
+ set columns [$table selectNode "column"]
+ foreach column $columns {
+ catch {
+ set name [get_node_text_ $column "name"]
+ set desc [get_node_text_ $column "description"]
+ set desc [clean_ $desc]
+ set datatype [get_node_text_ $column "dataType"]
+ set units [get_node_text_ $column "unit"]
+ set ucd [get_node_text_ $column "ucd"]
+ set utype [get_node_text_ $column "utype"]
+
+ lappend info [list $name $desc $datatype $units $ucd $utype]
+ }
+ }
+ set_contents 0 $info
+ new_info 0
+ }
+
+ # Get all text from a named child.
+ protected method get_node_text_ {parent name} {
+ set node [$parent selectNode $name]
+ if { $node != {} } {
+ return [$node text]
+ }
+ return {}
+ }
+
+
+ # Clean a string, removing funny characters and trimming.
+ protected method clean_ {str} {
+ regsub -all {[^\w\d\s\.]} $str {} str
+ return [string trim $str]
+ }
+
+
+ # Configuration options
+ # =====================
+
+ # The XML document. Use update if changed after creation.
+ itk_option define -xml xml Xml {}
+
+ # Define a help file and label for the Help menu.
+ itk_option define -help_file help_file Help_File {}
+ itk_option define -help_label help_label Help_Label "On Window..."
+
+ # Protected variables: (available to instance)
+ # --------------------
+
+ # Table elements of the XML document, indexed by the table name.
+ protected variable tablelist_
+
+ # Table configuration.
+ protected variable selectmode_ browse
+ protected variable exportselection_ 0
+
+ # Common variables: (shared by all instances)
+ # -----------------
+
+# End of class definition.
+}
diff --git a/applications/gaia/gaiavo/library/RegistryResults_vot3.xsl b/applications/gaia/gaiavo/library/RegistryResults_vot3.xsl
index 8c74109c686..8156f4024b0 100644
--- a/applications/gaia/gaiavo/library/RegistryResults_vot3.xsl
+++ b/applications/gaia/gaiavo/library/RegistryResults_vot3.xsl
@@ -1,33 +1,30 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
Registry Search Results
-
@@ -38,23 +35,18 @@
-
-
-
-
+
+
-
-
-
-
-
+
-
+
+
@@ -63,216 +55,141 @@
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- #
-
-
-
- #
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
+
+
+
+
+
+
+
+
+
+
+
+ #
+
+
+
+ #
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
-
-
-
- #
-
-
-
- Searchable
-
-
-
-
-
- Publishing
-
- Registry#
-
-
-
-
-
-
- Catalog
-
-
- Images
-
-
- Spectra
-
-
- Registry
-
-
-
-
-
-
-
-
-
-
- HTTP Request
-
-
- Web Page
-
-
- Custom Service
-
-
-
-
-
- Custom Service
-
-
- #
-
-
-
- Data Collection#
-
-
- Organisation#
-
-
- VO Support#
-
-
- Generic Resource
-
- #
-
-
+
+
+
+
+
+ |
+
+
+
diff --git a/applications/gaia/scripts/Makefile.am b/applications/gaia/scripts/Makefile.am
index db6b9476c76..a66ed63b227 100644
--- a/applications/gaia/scripts/Makefile.am
+++ b/applications/gaia/scripts/Makefile.am
@@ -7,7 +7,7 @@ SCRIPTS_GAIA = displaycat displaypolcat gaiacmap.sh gaiacut \
gaia_standalone.csh gaiawcs2tab pix2wcs \
tabbedgaia.sh wcs2pix zoomcutandflip connect_to_gaia.tcl \
querysiap ftpget querycone queryreg querynedobject \
- querynedcone
+ querynedcone querytap querytapthings
## Edit the main startup scripts so that they set the LD_LIBRARY_PATH
## to include the installation libdir.
diff --git a/applications/gaia/scripts/querycone b/applications/gaia/scripts/querycone
index d435024b5e6..58868d1de03 100755
--- a/applications/gaia/scripts/querycone
+++ b/applications/gaia/scripts/querycone
@@ -91,7 +91,7 @@ proc get {query outfile} {
set fid [::open $outfile w]
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed, so delete file and exit with an error.
catch {
diff --git a/applications/gaia/scripts/querynedcone b/applications/gaia/scripts/querynedcone
index 9c74f418673..957f1b589fa 100755
--- a/applications/gaia/scripts/querynedcone
+++ b/applications/gaia/scripts/querynedcone
@@ -80,7 +80,7 @@ if { [info exists ::env(http_proxy)] } {
proc get {query} {
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed.
puts stderr "$msg"
diff --git a/applications/gaia/scripts/querynedobject b/applications/gaia/scripts/querynedobject
index 55e4c1b2d87..a5aea9cd010 100755
--- a/applications/gaia/scripts/querynedobject
+++ b/applications/gaia/scripts/querynedobject
@@ -78,7 +78,7 @@ if { [info exists ::env(http_proxy)] } {
proc get {query} {
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed.
puts stderr "$msg"
diff --git a/applications/gaia/scripts/queryreg b/applications/gaia/scripts/queryreg
index 3e1e4399fe0..a9c0ea2b4eb 100755
--- a/applications/gaia/scripts/queryreg
+++ b/applications/gaia/scripts/queryreg
@@ -134,7 +134,7 @@ set where "\
-
+
diff --git a/applications/gaia/scripts/querysiap b/applications/gaia/scripts/querysiap
index 63395776f39..f95e7ad0788 100755
--- a/applications/gaia/scripts/querysiap
+++ b/applications/gaia/scripts/querysiap
@@ -89,7 +89,7 @@ proc get {query outfile} {
set fid [::open $outfile w]
# Download the response.
- if { [catch {set response [::http::geturl $query] } msg] } {
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
# Failed, so delete file and exit with an error.
catch {
diff --git a/applications/gaia/scripts/querytap b/applications/gaia/scripts/querytap
new file mode 100755
index 00000000000..91d0e2b826b
--- /dev/null
+++ b/applications/gaia/scripts/querytap
@@ -0,0 +1,121 @@
+#!/bin/sh
+# The next line is executed by /bin/sh, but not Tcl \
+exec $GAIA_DIR/gaiavo_tcl $0 ${1+"$@"}
+#+
+# Name:
+# querytap
+
+# Purpose:
+# Query a TAP service synchronously.
+
+# Usage:
+# querytap endpoint "adql-query" outfile
+
+# Description:
+# Queries a TAP service using the given ADQL expression. Currently
+# we do this synchronously so the result is a VOTable catalogue
+# containing the result.
+
+# Authors:
+# Peter W. Draper (PWD):
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilties Council.
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# History:
+# 28-MAR-2014 (PWD):
+# Original version.
+#-
+#.
+
+package require uri
+
+# Check the command-line arguments.
+if { $argc == 3 } {
+ set endpoint [lindex $argv 0]
+ set adql [lindex $argv 1]
+ set outfile [lindex $argv 2]
+} else {
+ puts stderr {Usage: querytap endpoint adql outfile}
+ exit 1
+}
+
+# Open the output file, just a test.
+if { [catch "::open $outfile w" fid] } {
+ puts stderr "Failed to open output file: $outfile"
+ exit 1
+}
+::close $fid
+
+# Establish the standard proxy define using http_proxy.
+#cat::ProxyDialog::check_proxies $::env(HOME)/.skycat/proxies
+set proxy {}
+set port {}
+if { [info exists ::env(http_proxy)] } {
+ if { [scan $::env(http_proxy) {http://%[^:/]:%d} proxy port] != 2 } {
+ scan $::env(http_proxy) {http://%[^:/]} proxy
+ }
+}
+::http::config -proxyhost $proxy
+::http::config -proxyport $port
+
+# Proc to do the query. Needed as can be recursive if redirected.
+proc get {endpoint query outfile} {
+
+ # Open the result file.
+ set fid [::open $outfile w]
+
+ # Download the response.
+ if { [catch {set response [::http::geturl $endpoint -query $query -strict 0] } msg] } {
+
+ # Failed, so delete file and exit with an error.
+ catch {
+ ::close $fid
+ ::file delete $outfile
+ }
+ puts stderr "$msg"
+ return 1
+ }
+
+ # Check for a moved response and handle the re-direct.
+ if { [::http::ncode $response] == 302 || [::http::ncode $response] == 303 } {
+ array set meta [eval set $response\(meta\)]
+ set location $meta(Location)
+ puts "Redirected to: $newquery"
+ catch {::close $fid}
+ get $location $query $outfile
+ return
+ }
+
+ # Get content and copy to the file.
+ puts $fid [::http::data $response]
+
+ catch {::close $fid}
+ return 0
+}
+
+# Construct a query suitable for POSTing to the service.
+set query [::http::formatQuery REQUEST doQuery LANG ADQL QUERY "$adql"]
+
+# Do it.
+if { [get "${endpoint}/sync" "$query" $outfile] == 1 } {
+ exit 1
+}
+exit
diff --git a/applications/gaia/scripts/querytapthings b/applications/gaia/scripts/querytapthings
new file mode 100755
index 00000000000..34c795e5af6
--- /dev/null
+++ b/applications/gaia/scripts/querytapthings
@@ -0,0 +1,137 @@
+#!/bin/sh
+# The next line is executed by /bin/sh, but not Tcl \
+exec $GAIA_DIR/gaiavo_tcl $0 ${1+"$@"}
+#+
+# Name:
+# querytapthings
+
+# Purpose:
+# Query a TAP service about some capability of the end point
+
+# Usage:
+# querytapthings endpoint thing [outfile]
+
+# Description:
+# Queries a TAP service using given thing as a qualifier for the
+# given endpoint. The result is usually some VOResource that
+# describes the thing, that a list of tables or capabilities.
+# If no output file is given the result is sent to standard output.
+
+# Authors:
+# Peter W. Draper (PWD):
+
+# Copyright:
+# Copyright (C) 2014 Science and Technology Facilties Council.
+# All Rights Reserved.
+
+# Licence:
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street,Fifth Floor, Boston, MA
+# 02110-1301, USA
+
+# History:
+# 07-AUG-2014 (PWD):
+# Original version.
+#-
+#.
+
+package require uri
+
+# Check the command-line arguments.
+set outfile {}
+if { $argc >= 2 } {
+ set endpoint [lindex $argv 0]
+ set thing [lindex $argv 1]
+ if { $argc == 3 } {
+ set outfile [lindex $argv 2]
+ }
+} else {
+ puts stderr {Usage: querytapthing endpoint thing [outfile]}
+ exit 1
+}
+
+# Open the output file, just a test.
+if { $outfile != {} } {
+ if { [catch "::open $outfile w" fid] } {
+ puts stderr "Failed to open output file: $outfile"
+ exit 1
+ }
+ ::close $fid
+}
+
+# Establish the standard proxy define using http_proxy.
+#cat::ProxyDialog::check_proxies $::env(HOME)/.skycat/proxies
+set proxy {}
+set port {}
+if { [info exists ::env(http_proxy)] } {
+ if { [scan $::env(http_proxy) {http://%[^:/]:%d} proxy port] != 2 } {
+ scan $::env(http_proxy) {http://%[^:/]} proxy
+ }
+}
+::http::config -proxyhost $proxy
+::http::config -proxyport $port
+
+# Proc to do the query. Needed as can be recursive if redirected.
+proc get {query outfile} {
+
+ # Open the result file, if given.
+ if { $outfile != {} } {
+ set fid [::open $outfile w]
+ } else {
+ set fid stdout
+ }
+
+ # Download the response.
+ if { [catch {set response [::http::geturl $query -strict 0] } msg] } {
+
+ # Failed, so delete file and exit with an error.
+ if { $outfile != {} } {
+ catch {
+ ::close $fid
+ ::file delete $outfile
+ }
+ }
+ puts stderr "$msg"
+ return 1
+ }
+
+ # Check for a moved response and handle the re-direct.
+ if { [::http::ncode $response] == 302 || [::http::ncode $response] == 303 } {
+ array set meta [eval set $response\(meta\)]
+ set location $meta(Location)
+ puts "Redirected to: $newquery"
+ if { $outfile != {} } {
+ catch {::close $fid}
+ }
+ get $location $query $outfile
+ return
+ }
+
+ # Get content and copy to the output stream.
+ puts $fid [::http::data $response]
+
+ if { $outfile != {} } {
+ catch {::close $fid}
+ }
+ return 0
+}
+
+# Construct URL suitable for a GET from the service.
+set url "${endpoint}/${thing}"
+
+# Do it.
+if { [get "${url}" $outfile] == 1 } {
+ exit 1
+}
+exit
|