<?xml-stylesheet href='/static/xsl/vosi.xsl' type='text/xsl'?><cap:capabilities xmlns:cap="http://www.ivoa.net/xml/VOSICapabilities/v1.0" xmlns:tr="http://www.ivoa.net/xml/TAPRegExt/v1.0" xmlns:vg="http://www.ivoa.net/xml/VORegistry/v1.0" xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0" xmlns:vs="http://www.ivoa.net/xml/VODataService/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/VOSICapabilities/v1.0 http://vo.ari.uni-heidelberg.de/docs/schemata/VOSICapabilities-v1.0.xsd http://www.ivoa.net/xml/TAPRegExt/v1.0 http://vo.ari.uni-heidelberg.de/docs/schemata/TAPRegExt-v1.0.xsd http://www.ivoa.net/xml/VORegistry/v1.0 http://vo.ari.uni-heidelberg.de/docs/schemata/VORegistry-v1.0.xsd http://www.ivoa.net/xml/VOResource/v1.0 http://vo.ari.uni-heidelberg.de/docs/schemata/VOResource-v1.1.xsd http://www.ivoa.net/xml/VODataService/v1.1 http://vo.ari.uni-heidelberg.de/docs/schemata/VODataService-v1.1.xsd"><capability standardID="ivo://ivoa.net/std/TAP" xsi:type="tr:TableAccess"><interface role="std" version="1.1" xsi:type="vs:ParamHTTP"><accessURL use="base">https://vo.astron.nl/tap</accessURL></interface><dataModel ivo-id="ivo://ivoa.net/std/ObsCore#core-1.1">Obscore-1.1</dataModel><language><name>ADQL</name><version ivo-id="ivo://ivoa.net/std/ADQL#v2.1">2.1</version><version ivo-id="ivo://ivoa.net/std/ADQL#v2.0">2.0</version><description>The Astronomical Data Query Language is the standard IVOA dialect of SQL; it contains a very general SELECT statement as well as some extensions for spherical geometry and higher mathematics.</description><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-udf"><feature><form>gavo_simbadpoint(identifier TEXT) -&gt; POINT</form><description>gavo_simbadpoint queries simbad for an identifier and returns the 
corresponding point.  Note that identifier can only be a literal,
i.e., as simple string rather than a column name. This is because
our database cannot query simbad, and we probably wouldn't want
to fire off millions of simbad queries anyway; use simbad's own
TAP service for this kind of applications.</description></feature><feature><form>ivo_interval_has(val NUMERIC, iv INTERVAL) -&gt; INTEGER</form><description>The function returns 1 if the interval iv contains val, 0 otherwise.
The lower limit is always included in iv, behaviour on the upper
limit is column-specific.</description></feature><feature><form>gavo_getauthority(ivoid TEXT) -&gt; TEXT</form><description>returns the authority part of an ivoid (or, more generally a URI).
So, ivo://org.gavo.dc/foo/bar#baz becomes org.gavo.dc.

The behaviour for anything that's not a full URI is undefined.</description></feature><feature><form>gavo_match(pattern TEXT, string TEXT) -&gt; INTEGER</form><description>gavo_match returns 1 if the POSIX regular expression pattern
matches anything in string, 0 otherwise.</description></feature><feature><form>ivo_healpix_center(hpxOrder INTEGER, hpxIndex BIGINT) -&gt; POINT</form><description>returns a POINT corresponding to the center of the healpix with
the given index at the given order.</description></feature><feature><form>ivo_string_agg(expression TEXT, delimiter TEXT) -&gt; TEXT</form><description>An aggregate function returning all values of
expression within a GROUP contcatenated with delimiter</description></feature><feature><form>ivo_apply_pm(ra DOUBLE PRECISION, dec DOUBLE PRECISION, pmra DOUBLE PRECISION, pmde DOUBLE PRECISON, epdist DOUBLE PRECISION) -&gt; POINT</form><description>Returns a POINT (in the UNDEFINED reference frame) for the position
an object at ra/dec with proper motion pmra/pmde has after epdist years.

positions must be in degrees, PMs in should be in julian years (i.e., proper
motions are expected in degrees/year).  pmra is assumed to contain 
cos(delta).

NOTE: This currently is a crappy approximation that does *not* go
through the tangential plane.  If you use it, let the operators know
so we replace it with something real.</description></feature><feature><form>gavo_to_jd(d TIMESTAMP) -&gt; DOUBLE PRECISION</form><description>The function converts a postgres timestamp to julian date.
This is naive; no corrections for timezones, let alone time
scales or the like are done; you can thus not expect this to be
good to second-precision unless you are careful in the construction
of the timestamp.</description></feature><feature><form>ivo_interval_overlaps(l1 NUMERIC, h1 NUMERIC, l2 NUMERIC, h2 NUMERIC) -&gt; INTEGER</form><description>The function returns 1 if the interval [l1...h1] overlaps with
the interval [l2...h2].  For the purposes of this function,
the case l1=h2 or l2=h1 is treated as overlap.  The function
returns 0 for non-overlapping intervals.</description></feature><feature><form>gavo_transform(from_sys TEXT, to_sys TEXT, geo GEOMETRY) -&gt; GEOMETRY</form><description>The function transforms ADQL geometries between various reference systems.
geo can be a POINT, a CIRCLE, or a POLYGON, and the function will return a
geometry of the same type.  In the current implementation, from_sys and
to_sys must be literal strings (i.e., they cannot be computed through
expressions or be taken from database columns).

All transforms are just simple rotations, which is only a rough 
approximation to the actual relationships between reference systems
(in particular between FK4 and ICRS-based ones).  Not that, in particular,
the epoch is not changed (i.e., no proper motions are applied).

We currently support the following reference frames: ICRS, FK5 (which
is trested as ICRS), FK4 (for B1950. without epoch-dependent corrections),
GALACTIC.  Reference frame names are case-sensitive.</description></feature><feature><form>ivo_healpix_index(order INTEGER, ra DOUBLE PRECISION, dec DOUBLE PRECISION) -&gt; BIGINT</form><description>Returns the index of the (nest) healpix with order containing the 
spherical point (ra, dec).

An alternative, 2-argument form 

ivo_healpix_index(order INTEGER, p POINT) -&gt; BIGINT

is also available.</description></feature><feature><form>ivo_hashlist_has(hashlist TEXT, item TEXT) -&gt; INTEGER</form><description>The function takes two strings; the first is a list of words not
containing the hash sign (#), concatenated by hash signs, the second is
a word not containing the hash sign.  It returns 1 if, compared
case-insensitively, the second argument is in the list of words coded in
the first argument.  The behaviour in case the the second
argument contains a hash sign is unspecified.</description></feature><feature><form>gavo_histogram(val REAL, lower REAL, upper REAL, nbins INTEGER) -&gt; INTEGER[]</form><description>The aggregate function returns a histogram of val with nbins+2 elements.
Assuming 0-based arrays, result[0] contains the number of underflows (i.e.,
val&lt;lower), result[nbins+1] the number of overflows.  Elements 1..nbins
are the counts in nbins bins of width (upper-lower)/nbins.  Clients
will have to convert back to physical units using some external 
communication, there currently is no (meta-) data as lower and upper in
the TAP response.</description></feature><feature><form>gavo_to_mjd(d TIMESTAMP) -&gt; DOUBLE PRECISION</form><description>The function converts a postgres timestamp to modified julian date.
This is naive; no corrections for timezones, let alone time
scales or the like are done; you can thus not expect this to be
good to second-precision unless you are careful in the construction
of the timestamp.</description></feature><feature><form>ivo_nocasematch(value TEXT, pattern TEXT) -&gt; INTEGER</form><description>ivo_nocasematch returns 1 if pattern matches value, 0 otherwise.
pattern is defined as for the SQL LIKE operator, but the
match is performed case-insensitively.  This function in effect
provides a surrogate for the ILIKE SQL operator that is missing from
ADQL.

On this site, this is actually implemented using python's and SQL's
LOWER, so for everything except ASCII, your milage will vary.</description></feature><feature><form>ivo_hasword(haystack TEXT, needle TEXT) -&gt; INTEGER</form><description>gavo_hasword returns 1 if needle shows up in haystack, 0 otherwise.  This
is for "google-like"-searches in text-like fields.  In word, you can
actually employ a fairly complex query language; see
http://www.postgresql.org/docs/8.3/static/textsearch.html
for details.</description></feature><feature><form>gavo_ipix(long REAL, lat REAL) -&gt; BIGINT</form><description>gavo_ipix returns the q3c ipix for a long/lat pair (it simply wraps
the 13c_ang2ipix function).

This is probably only relevant when you play tricks with indices or
PPMXL ids.</description></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adqlgeo"><feature><form>BOX</form></feature><feature><form>POINT</form></feature><feature><form>CIRCLE</form></feature><feature><form>POLYGON</form></feature><feature><form>REGION</form></feature><feature><form>CENTROID</form></feature><feature><form>COORD1</form></feature><feature><form>COORD2</form></feature><feature><form>DISTANCE</form></feature><feature><form>CONTAINS</form></feature><feature><form>INTERSECTS</form></feature><feature><form>AREA</form></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adql-string"><feature><form>LOWER</form></feature><feature><form>ILIKE</form></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adql-offset"><feature><form>OFFSET</form></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adql-type"><feature><form>CAST</form></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adql-unit"><feature><form>IN_UNIT</form></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adql-common-table"><feature><form>WITH</form></feature></languageFeatures><languageFeatures type="ivo://org.gavo.dc/std/exts#extra-adql-keywords"><feature><form>TABLESAMPLE</form><description>Written after a table reference, TABLESAMPLE(10) will make the database only use 10% of the rows; these are `somewhat random' in that the system will use random blocks.  This should be good enough when just testing queries (and much better than using TOP n).</description></feature></languageFeatures><languageFeatures type="ivo://ivoa.net/std/TAPRegExt#features-adql-sets"><feature><form>UNION</form></feature><feature><form>EXCEPT</form></feature><feature><form>INTERSECT</form></feature></languageFeatures></language><outputFormat ivo-id="ivo://ivoa.net/std/TAPRegExt#output-votable-binary"><mime>text/xml</mime></outputFormat><outputFormat ivo-id="http://dc.g-vo.org/output-vodml"><mime>application/x-votable+xml;version=1.4</mime><alias>vodml</alias></outputFormat><outputFormat><mime>text/html</mime><alias>html</alias></outputFormat><outputFormat ivo-id="ivo://ivoa.net/std/TAPRegExt#output-votable-binary2"><mime>application/x-votable+xml;serialization=binary2</mime><alias>votable/b2</alias></outputFormat><outputFormat><mime>application/geo-json</mime><alias>geojson</alias></outputFormat><outputFormat><mime>application/fits</mime><alias>fits</alias></outputFormat><outputFormat><mime>text/csv</mime></outputFormat><outputFormat><mime>text/csv;header=present</mime><alias>csv</alias></outputFormat><outputFormat ivo-id="ivo://ivoa.net/std/TAPRegEXT#output-votable-td"><mime>application/x-votable+xml;serialization=tabledata</mime><alias>votable/td</alias></outputFormat><outputFormat><mime>application/json</mime><alias>json</alias></outputFormat><outputFormat ivo-id="ivo://ivoa.net/std/TAPRegExt#output-votable-binary"><mime>application/x-votable+xml</mime><alias>votable</alias></outputFormat><outputFormat><mime>text/plain</mime></outputFormat><outputFormat><mime>text/tab-separated-values</mime><alias>tsv</alias></outputFormat><uploadMethod ivo-id="ivo://ivoa.net/std/TAPRegExt#upload-https"/><uploadMethod ivo-id="ivo://ivoa.net/std/TAPRegExt#upload-ftp"/><uploadMethod ivo-id="ivo://ivoa.net/std/TAPRegExt#upload-inline"/><uploadMethod ivo-id="ivo://ivoa.net/std/TAPRegExt#upload-http"/><retentionPeriod><default>172800</default></retentionPeriod><executionDuration><default>3600</default></executionDuration><outputLimit><default unit="row">20000</default><hard unit="row">20000000</hard></outputLimit><uploadLimit><hard unit="byte">20000000</hard></uploadLimit></capability><capability standardID="ivo://ivoa.net/std/VOSI#availability"><interface role="std" xsi:type="vs:ParamHTTP"><accessURL use="full">https://vo.astron.nl/__system__/tap/run/availability</accessURL></interface></capability><capability standardID="ivo://ivoa.net/std/VOSI#capabilities"><interface role="std" xsi:type="vs:ParamHTTP"><accessURL use="full">https://vo.astron.nl/__system__/tap/run/capabilities</accessURL></interface></capability><capability standardID="ivo://ivoa.net/std/VOSI#tables"><interface role="std" xsi:type="vs:ParamHTTP"><accessURL use="full">https://vo.astron.nl/__system__/tap/run/tableMetadata</accessURL></interface></capability><capability standardID="ivo://ivoa.net/std/DALI#examples"><interface xsi:type="vr:WebBrowser"><accessURL use="full">https://vo.astron.nl/__system__/tap/run/examples</accessURL></interface></capability></cap:capabilities>