Coordinate system in ADQL

Markus Demleitner msdemlei at ari.uni-heidelberg.de
Fri Oct 18 09:59:35 CEST 2019


Hi Gilles,

On Thu, Oct 17, 2019 at 03:25:50PM +0200, gilles landais wrote:
> If coordinate system in option is rejected, we could also add a function
> such as the function proposed by Markus in Gavo to make possible the change
> of coordinate System:
> 
> gavo_transform(from_sys TEXT, to_sys TEXT, geo GEOMETRY) -> GEOMETRY
> 
> 
> So, I ask IVOA people to consider this capability as a ADQL standard (as a
> function - may be optional).

The current proposal is to have a list of common UDFs in a separate
list rather than in the ADQL spec itself, and I guess the ADQL
editor(s) will be grateful if we try to keep it this way.  

A proposal for that separate list is in
http://ivoa.net/documents/udf-catalogue/, and I guess it should go to
RFC after the next TCG.

Which means this is the perfect moment to add a proposal -- if VizieR
and DaCHS agree on this, I'd say that's a good base for making this
and "agreed" UDF and call it ivo_transform.

As usual, the devil is in the details, namely what people can put
into the system strings.  And how they can figure out what systems a
given service supports -- I suppose VizieR will want to support
legacy equatorial systems at various equinoxes, for instance, which
DaCHS at least so far doesn't.

So, here's a proposal for what the UDF catalog might say:

  ivo_transform(from_sys TEXT, to_sys TEXT, geo GEOMETRY) -> GEOMETRY

  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.  From_sys and to_sys must
  be literal strings (i.e., they cannot be computed through
  expressions or be taken from database columns). 
  
  Note that the epoch is not changed by this function (i.e., no
  proper motions are applied). 
  
  Where services support reference frames from the IVOA vocabulary
  of reference frames (http://www.ivoa.net/rdf/refframe), terms
  from that list should be used in from_sys and to_sys.  The
  description of the TAPRegExt feature declaring support for
  ivo_transform should enumerate the frames supported by a service.
  Using an unknown frame should be an error, and the accompanying
  error message should again enumerate the strings understood by a
  service.

Pointing to the refframe vocabulary certainly isn't good enough for
frames that need an equinox.  We could leave that to the services,
but then it's probably better if we can give some sensible
guidelines.  I could see either

  Referencence frames requiring an equinox append it after a single
  blank.  Use B to indicate a Besselian, J to indicate a Julian
  epoch, e.g., "FK4 B1950" or "FK5 J1975.0"

(which would provide maximum flexibility) or

  For legacy reference frames, it is recommended to just use the
  equinox with B indicating a Besselian, J to indicating a Julian
  epoch.  

This latter thing would help with, for instance I/122/bd a.k.a.
Bonner Durchmusterung -- though, of course, you could name its
(popular, in its day) frame in the first scheme by saying EQUATORIAL
B1855.0 just as well.

Out of curiosity: Gilles, do you have any idea on how many different
frames there are in VizieR?

           -- Markus


More information about the dal mailing list