IVOA

 International

    Virtual

    Observatory

Alliance


Referencing STC in VOTable
Version 0.5

IVOA Note 2007-09-10

This version:
http://www.ivoa.net/Documents/REC/VOTable/VOTableSTC-20070911.html

Latest version:
http://www.ivoa.net/Documents/latest/VOTableSTC.html

Previous version(s):
\Vpreviousversion

Editor(s):
François Ochsenbein

Author(s):
    François Ochsenbein   Observatoire Astronomique de Strasbourg, France
    Jonathan McDowell   Center for Astrophysics, Boston, USA
    Arnold Rots   Center for Astrophysics, Boston, USA
%

Abstract

This note describes the recommended way to reference the coordinate systems in usage in Astronomy for an accurate specification of spatial and temporal reference frames. It was made in agreement between the VOTable and the Data Models Working Groups.

Status of this document

This is an IVOA Note. It attempts to clarify how to reference unambiguously, in a VOTable document containing space- and/or time-related data, the reference systems in which these data are expressed, systems which are described by the STC data model.

This document is a preliminary note; comments are welcome.

Acknowledgments

This document is based on the W3C documentation standards, but has been adapted for the IVOA.

Contents:

1  Introduction

Astronomical catalogues are a very common source of tabular data, and among these the catalogs collecting astronomical sources observed at specific sky locations and epochs have routinely to be compared to other catalogues containing informations related to the same sources, but observed or modelled in different contexts: observations at different epochs, different wavelengths, simulated results, etc. An accurate knowledge of the meaning of the parameters included in these catalogues is therefore essential if one expects to derive scientifically significant conclusions from the comparisons of these data.

The VOTable format is an IVOA standard which ensures that large data collections, which can be structured as a set of tables, can efficiently be exchanged within the Virtual Observatory framework with a full understanding of the data meaning (the metadata). A lot of details may be required for a full description of the elements stored in these data collections, but the locations in space and time (the coordinates, spatial and temporal) are essential if any comparison of the sources observed is attempted.

The data in the context of the Virtual Observatory are described by data models, which formalize the context of the data for their accurate interpretation. Data described in this way can then be more efficiently compared with data of similar nature but coming out from other horizons, and valid conclusions or scientific results can be drawn with higher confidence.

2  The space-time coordinates

In the context of astronomical catalogues, spatial (location in the sky) and temporal (date/time) parameters are one characterisation of virtually any observation, and these parameters are therefore fundamental if one wishes to make any comparison of the behaviour of the astronomical sources described in different catalogs - typically catalogs of observations made in widely different wavelength regimes. Since several systems are currently in use to express the spatial coordinates, a dedicated COOSYS element was introduced in the original version (1.0) of VOTable: it did specify some minimal level of details about the coordinate system used in the table, and was merely an enumeration of the most commonly coordinate frames used in astronomy (ICRS, historical equatorial frames, galactic, ecliptic, etc) associated to a couple of parameters (equinox and epoch). This VOTable-specific way of specifying the frames used for spatial location is deprecated in VOTable version 1.2, in favor of a more generic way of specifying the space and time coordinates using the utype attributes and the GROUP constructs[1].

3  The utype attribute

VOTable is not a data model, it is more a container for data which can be structured as tables, with emphasis on a single description (the schema or metadata) for a potentially large number of elements (the tuples or rows). The description of the data cannot include all components of all the data models developed in the Virtual Observatory framework, but their accurate description requires to reference the data model, and to say how the various FIELDs composing the table are related to this data model. This relation -- referencing a data model -- is specified by the utype attribute, introduced in the version 1.1 of VOTable for this purpose; utype can also be an attibute of the PARAM, GROUP, TABLE and RESOURCE elements [1].

The syntax of the utype attribute has not yet been fixed in the Virtual Observatory context. This note assumes a syntax made from the model name (stc) followed by a colon (:), and the dot-separated hierarchy of elements, as e.g. stc:AstroCoords.Position2D.Value2.C1 to refer to first component of value of the position of the astronomical coordinate.

4   Specifying coordinate components in VOTable

The specification of an astronomical spatial and/or temporal coordinates requires essentially 2 definitions [2]:

  1. the definition of the coordinate system (the frame in which the coordinates are expressed), which can be an AstroCoordSystem (for astronomically defined frames) or a more generic CoordSys entity.
  2. what do the actual numbers represent in the coordinate system, which is defined by AstroCoords in the astronomical context, or in a more generic context by the Coords specification.

In a VOTable context, the utype attribute is used to precise the exact role of a specific field or parameter within the STC data model. The utype is an attribute of the FIELD element, and for instance the right ascension and declination components are defined by the attributes utype="stc:AstroCoords.Position2D.Value2.C1" and utype="stc:AstroCoords.Position2D.Value2.C2" respectively.

The full specification of the STC components in a VOTable is constructed with 2 GROUPs which follow the STC hierarchy:

  1. the coordinate system (AstroCoordSystem) is precised in a VOTable GROUP containing the necessary PARAMeters or PARAMrefs to completely define the coordinate system; this GROUP must have the attributes

  2. the coordinates are grouped in a GROUP element with the properties: This GROUP may include PARAMeters to qualify the coordinates if needed, and/or FIELDref references, see examples below.

  3. finally the individual coordinates, defined as FIELD elements, have the attributes

A few examples are given below to illustrate the referencing mechanism.

5  Examples

Three examples are given here. The first one uses the STClib described in the Appendix C of the STC model [2], the other two give a more complete definition of the coordinate system used.

In all examples, we emphasize with different colors the STC-related utypes and the corresponding ID/ref attributes to visualize their role in the XML output below. One could also notice the possibility of the double referencing, that is:

  1. each FIELD which is a component of the space-time coordinates is referencing the "AstroCoords" GROUP. This reference is required to ensure a correct interpretation (made by ref="Coo1" in the first example below)
  2. within the "AstroCoords" GROUP, the components may be enumerated by means of PARAMref elements. This second referencing is optional.

5.1  List of observations

This simple example of a VOTable document lists 3 observations made with a telescope; each observation is characterized by the location of the CCD center, date/time of observation, and the exposure time. The XML serialisation looks like the following:

<?xml version="1.0"?>
<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://www.ivoa.net/xml/VOTable/v1.2">

  <!-- This definition seems redundant !!! -->
  <GROUP utype="stc:AstroCoordSystem" ID="mainFrame">
    <PARAM name="STCspec" 
       xlink:href="ivo://STClib/CoordSys#UTC_ICRS_TOPO"
       xlink:type="locator"         
       datatype="char" arraysize="*"
       utype="stc:AstroCoordSystem.ID" 
       value="UTC_ICRS_TOPO"/> 
  </GROUP>

  <RESOURCE name="myObservations">
    <TABLE name="results">
      <DESCRIPTION>Observation log</DESCRIPTION>
      <PARAM name="Telescope" datatype="float" ucd="phys.size;instr.tel" 
             unit="m" value="3.6"/>
      <GROUP ID="Coo1" utype="stc:AstroCoords" ref="mainFrame">
        <PARAM name="cooframe" datatype="char" arraysize="*"
               utype="stc:AstroCoords.coord_sys_id"
               value="UTC_ICRS_TOPO"/> 
        <FIELDref ref="ObsStart" /> <!-- second referencing, optional -->
        <FIELDref ref="RAJ2000"/>   <!-- second referencing, optional -->
        <FIELDref ref="DEJ2000"/>   <!-- second referencing, optional -->
      </GROUP>
      <FIELD name="RAJ2000" ucd="pos.eq.ra;meta.main" ref="Coo1" 
             utype="stc:AstroCoords.Position2D.Value2.C1" 
             datatype="float" precision="4" unit="deg"
             />
      <FIELD name="DEJ2000" ucd="pos.eq.dec;meta.main" ref="Coo1"
             utype="stc:AstroCoords.Position2D.Value2.C2" 
             datatype="float" precision="4" unit="deg"
             />
      <FIELD name="ObsStart" ucd="time.start;obs" datatype="char" 
             arraysize="19" unit="s" ref="Coo1"
             utype="stc:AstroCoords.Time.TimeInstant.ISOTime"
             />
      </FIELD>
      <FIELD name="ExpTime" ucd="time.duration;obs.exposure" 
             datatype="float" width="6" precision="1" unit="s"/>
      <DATA>
        <TABLEDATA>
        <TR>
          <TD>035.0798</TD><TD>-05.2336</TD><TD>2005-11-01T12:00:55</TD><TD>1200</TD>
        </TR>
        <TR>
          <TD>035.0547</TD><TD>-05.2253</TD><TD>2005-11-01T12:25:20</TD><TD>600</TD>
        </TR>
        <TR>
          <TD>035.0463</TD><TD>-05.2503</TD><TD>2005-11-01T12:36:20</TD><TD>600</TD>
        </TR>
        </TABLEDATA>
      </DATA>
    </TABLE>
  </RESOURCE>
</VOTABLE>
The spherical coordinates (RAJ2000, DEJ2000) defined as FIELDs have their utype attribute which specify their position in the STC model; their ref="Coo1" attribute designates the GROUP having the attribute ID="Coo1", which in turn gives the details about the coordinate system: here it refers to GROUP having the attribute ID="mainFrame".

NOTE: one could (should?) remove the first GROUP with utype="stc:AstroCoordSystem" which is highly redundant.

5.2  Extract of the Hipparcos catalog

The Hipparcos catalog is the catalog which represents the basis of the ICRS system in the optical regime. Its positions and proper motions are given for the epoch J1991.25 (roughly the mid-point of the mission). The astrometric frame is barycentric (the barycenter of the Solar system is assumed to be the origin of the frame); and the times used throughout the Hipparcos catalog (for the epoch photometry) is the geocentric terrestrial time [3].

Notice that the GROUP defining the coordinate system (first group below) is itself made of 2 groups, one for the definition of the time axis, and the second for the definition of the spatial axes.

<?xml version="1.0"?>
<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://www.ivoa.net/xml/VOTable/v1.2">

  <GROUP utype="stc:AstroCoordSystem" ID="HIP">
    <PARAM name="STC_ID" datatype="char" arraysize="*"
           utype="stc:AstroCoordSystem.ID" 
           value="ICRS_original"/> 
    <!-- The time axis has the position origin at the center of Earth -->
    <GROUP utype="stc:AstroCoordSystem.TimeFrame" >
      <PARAM name="TimeScale" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.TimeFrame.TimeScale" value="TT"  />
      <PARAM name="refPosition" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.TimeFrame.stdRefPos"
             value="GEOCENTER" />
    </GROUP>
    <!-- The spatial frame is barycentric -->
    <GROUP utype="stc:AstroCoordSystem.SpaceFrame" >
      <PARAM name="CooFrame" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" 
             value="ICRS"  />
      <PARAM name="CooFrameOrigin" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.SpaceFrame.ReferencePosition" 
             value="BARYCENTER" />
      <PARAM name="CooType" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.SpaceFrame.CoordFlavor" 
             value="SPHERICAL"  />
    </GROUP>
  </GROUP>

  <RESOURCE name="hip_main">
    <TABLE name="hip_main_excerpt">
      <DESCRIPTION>A (tiny) excerpt from the Hipparcos catalog</DESCRIPTION>
      <GROUP ID="HIPcoo" utype="stc:AstroCoords" ref="HIP">
        <PARAM name="HIPcoordinates" datatype="char" arraysize="*"
               utype="stc:AstroCoords.coord_sys_id"
               value="ICRS_original"/> 
        <PARAM name="epoch" datatype="double" unit="yr"
          utype="stc:AstroCoordSystem.SpaceFrame.epoch" 
          value="1991.25"  />  <!-- Julian time scale ?? -->
        <FIELDref ref="RA1"/>  <!-- second referencing, optional -->
        <FIELDref ref="DE1"/>  <!-- second referencing, optional -->
        <FIELDref ref="pm1"/>  <!-- second referencing, optional -->
        <FIELDref ref="pm2"/>  <!-- second referencing, optional -->
      </GROUP>
      <FIELD name="HIP" ucd="meta.id;meta.main" datatype="int" width="6">
        <DESCRIPTION>Identifier (HIP number) (H1)</DESCRIPTION>
      </FIELD>
      <FIELD name="Vmag" ucd="phot.mag;em.opt.V" datatype="float" 
             width="5" precision="2" unit="mag">
        <DESCRIPTION>Magnitude in Johnson V (H5)</DESCRIPTION>
        <VALUES null="" />
      </FIELD>
      <FIELD name="RA(ICRS)" ucd="pos.eq.ra;meta.main" ref="HIPcoo" 
             ID="RA1" utype="stc:AstroCoords.Position2D.Value2.C1" 
             datatype="double" width="12" precision="8" unit="deg">
        <DESCRIPTION>alpha, degrees (ICRS, Epoch=J1991.25) (H8)</DESCRIPTION>
      </FIELD>
      <FIELD name="DE(ICRS)" ucd="pos.eq.dec;meta.main" ref="HIPcoo"
             ID="DE1" utype="stc:AstroCoords.Position2D.Value2.C2" 
             datatype="double" width="12" precision="8" unit="deg">
        <DESCRIPTION>delta, degrees (ICRS, Epoch=J1991.25) (H9)</DESCRIPTION>
      </FIELD>
      <FIELD name="Plx" ucd="pos.parallax.trig" datatype="float" width="7" 
             precision="2" unit="mas">
        <DESCRIPTION>? Trigonometric parallax (H11)</DESCRIPTION>
      </FIELD>
      <FIELD name="pmRA" ucd="pos.pm;pos.eq.ra" ref="HIPcoo"
             ID="pm1" utype="stc:AstroCoords.Value2.C1" 
             datatype="double" width="8" precision="2" unit="mas/yr">
        <DESCRIPTION>Proper motion mu_alpha.cos(delta) ICRS(H12) 
                     (for J1991.25 epoch)</DESCRIPTION>
      </FIELD>
      <FIELD name="pmDE" ucd="pos.pm;pos.eq.dec" ref="HIPcoo"
             ID="pm2" utype="stc:AstroCoords.Value2.C2" 
             datatype="double" width="8" precision="2" unit="mas/yr">
        <DESCRIPTION>? Proper motion mu_delta, ICRS (H13) 
                      (for J1991.25 epoch)</DESCRIPTION>
      </FIELD>
      <FIELD name="e_Plx" ucd="stat.error" datatype="float" width="6"
             precision="2" unit="mas">
        <DESCRIPTION>Standard error in Plx (H16)</DESCRIPTION>
      </FIELD>
      <DATA>
        <TABLEDATA>
          <TR>
            <TD>1</TD><TD>9.10</TD><TD>0.00091185</TD><TD>1.08901332</TD>
            <TD>3.54</TD><TD>-5.20</TD><TD>-1.88</TD><TD>1.39</TD>
          </TR>
          <TR>
            <TD>2</TD><TD>9.27</TD><TD>0.00379737</TD><TD>-19.49883745</TD>
            <TD>21.90</TD><TD>181.21</TD><TD>-0.93</TD><TD>3.10</TD>
          </TR>
          <TR>
            <TD>3</TD><TD>6.61</TD><TD>0.00500795</TD><TD>38.85928608</TD>
            <TD>2.81</TD><TD>5.24</TD><TD>-2.91</TD><TD>0.63</TD>
          </TR>
          <TR>
            <TD>4</TD><TD>8.06</TD><TD>0.00838170</TD><TD>-51.89354612</TD>
            <TD>7.75</TD><TD>62.85</TD><TD>0.16</TD><TD>0.97</TD>
          </TR>
          <TR>
            <TD>5</TD><TD>8.55</TD><TD>0.00996534</TD><TD>-40.59122440</TD>
            <TD>2.87</TD><TD>2.53</TD><TD>9.07</TD><TD>1.11</TD>
          </TR>
        </TABLEDATA>
      </DATA>
    </TABLE>
  </RESOURCE>
</VOTABLE>
Questions:

5.3  Ephemeride of Comets

This example gives the position of the comet 125P as a function of time. Notice that the planetary model used is added there via a PARAM having utype="stc:AstroCoordSystem.SpaceFrame.stdRefPosType.PlanetaryEphem"

<?xml version="1.0"?>
<VOTABLE version="1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="http://www.ivoa.net/xml/VOTable/v1.2">

  <GROUP utype="stc:AstroCoordSystem" ID="J2000_DE405">
    <PARAM name="STC_ID" datatype="char" arraysize="*"
       utype="stc:AstroCoordSystem.ID" 
       value="UTC_ICRS_GEO"/> 
    <!-- Times refer to the local observations -->
    <GROUP utype="stc:AstroCoordSystem.TimeFrame" >
      <PARAM name="TimeScale" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.TimeFrame.TimeScale" value="UTC" />
      <PARAM name="refPosition" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.TimeFrame.stdRefPos"
             value="GEOCENTER" />
    </GROUP>
    <!-- Distance is geocentric -->
    <GROUP utype="stc:AstroCoordSystem.SpaceFrame" >
      <PARAM name="CooFrame" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.SpaceFrame.CoordRefFrame" 
             value="ICRS"  />
      <PARAM name="CooFrameOrigin" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.SpaceFrame.ReferencePosition" 
             value="GEOCENTER" />
      <PARAM name="Ephemeris" datatype="char" arraysize="*"
         utype="stc:AstroCoordSystem.SpaceFrame.stdRefPosType.PlanetaryEphem"
         value="DE405/LE405">
         <DESCRIPTION>Planetary model used for the Earth motion</DESCRIPTION>
      </PARAM>
      <PARAM name="CooType" datatype="char" arraysize="*"
             utype="stc:AstroCoordSystem.SpaceFrame.CoordFlavor" 
	     value="SPHERICAL" />
    </GROUP>
  </GROUP>

  <RESOURCE name="125P">
    <TABLE name="Ephemeris">
      <DESCRIPTION>Ephemeris of comet 125P in July 2007</DESCRIPTION>
      <GROUP ID="Ephem" utype="stc:AstroCoords" ref="J2000_DE405">
        <PARAM name="Ephemerides" datatype="char" arraysize="*"
               utype="stc:AstroCoords.coord_sys_id"
               value="UTC_ICRS_GEO"/> 
        <FIELDref ref="RA1"/>   <!-- second referencing, optional -->
        <FIELDref ref="DE1"/>   <!-- second referencing, optional -->
        <FIELDref ref="Dist1"/> <!-- second referencing, optional -->
      </GROUP>
      <FIELD name="UTC" ucd="time.epoch" datatype="double" ref="Ephem"
                   utype="stc:AstroCoords.Time.TimeInstant.JDTime"
                   width="9" precision="1">
        <DESCRIPTIONint>Date UTC </DESCRIPTION>
      <FIELD name="RA" ucd="pos.eq.ra" ref="Ephem" 
             ID="RA1" utype="stc:AstroCoords.Position3D.Value3.C1" 
             datatype="double" width="12" precision="8" unit="deg">
        <DESCRIPTION>alpha, degrees</DESCRIPTION>
      </FIELD>
      <FIELD name="DE" ucd="pos.eq.dec" ref="Ephem"
             ID="DE1" utype="stc:AstroCoords.Position3D.Value3.C2" 
             datatype="double" width="12" precision="8" unit="deg">
        <DESCRIPTION>delta, degrees</DESCRIPTION>
      </FIELD>
      <FIELD name="Dist" ucd="pos.distance" ref="Ephem"
             ID="Dist1" utype="stc:AstroCoords.Position3D.Value3.C3" 
             datatype="double" width="12" precision="9" unit="AU">
        <DESCRIPTION>Distance from geocenter </DESCRIPTION>
      </FIELD>
      <FIELD name="Vmag" ucd="phot.mag;em.opt.V" datatype="float" 
             width="5" precision="2" unit="mag">
        <DESCRIPTION>Visual magnitude</DESCRIPTION>
      </FIELD>
      <DATA>
        <TABLEDATA>
          <TR>
            <TD>2454284.0</TD><TD>180.1745177</TD><TD>+10.2710289</TD>
            <TD>1.468825725</TD><TD>17.06</TD>
          </TR>
          <TR>
            <TD>2454286.0</TD><TD>181.2970157</TD><TD>+09.8077289</TD>
            <TD>1.476798829</TD><TD>17.07</TD>
          </TR>
          <TR>
            <TD>2454288.0</TD><TD>182.4335757</TD><TD>+09.3344139</TD>
            <TD>1.484770578 </TD><TD>17.09</TD>
          </TR>
          <TR>
            <TD>2454290.0</TD><TD>183.5839061</TD><TD>+08.8513908</TD>
            <TD>1.492750033</TD><TD>17.11</TD>
          </TR>
          <TR>
            <TD>2454292.0</TD><TD>184.7477408</TD><TD>+08.3589893</TD>
            <TD>1.500745242</TD><TD>17.13</TD>
          </TR>
        </TABLEDATA>
      </DATA>
    </TABLE>
  </RESOURCE>
</VOTABLE>

6  References

[1] François Ochsenbein, et al. VOTable Recommendation
http://ivoa.net/Documents/latest/VOTable.html

[2] Arnold Rots Space-Time Coordinate Metadata for the Virtual Observatory
http://ivoa.net/Documents/latest/STC.html

[3] The Hipparcos and Tycho Catalogues, ESA SP1200 June 1997, Vol.1, section 1.2 (also available in PDF)