Table of Contents

Model Files

TBD

Generalities

As for the other examples we provide two representations for the instances. One is expressed in a Domain Specific Language (DSL) that we are developing along with the VODML-related standards.

The DSL is independent of the serialization format, and allows to describe the instances in a simpler language without much boilerplate.

We also provide the VOTable serializations of those instances, which is what providers and clients will need to work with in practice.

Standard 1D Coordinates

Magnitude

DSL

File: /examples/coords/current/instances/magnitude.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(type: "coords:Standard1DCoord") {
        instance role: "cval", value: -0.28, type: "ivoa:RealQuantity"
    }
}

VOTable

File: /examples/coords/current/instances/magnitude.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:Standard1DCoord">
        <ATTRIBUTE dmrole="coords:Standard1DCoord.cval">
          <LITERAL value="-0.28" dmtype="ivoa:RealQuantity"/>
        </ATTRIBUTE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Space Coordinates

A: ICRS

DSL

File: /examples/coords/current/instances/long-lat-position-icrs.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_SPACE_FRAME", type: "coords:SpaceFrame") {
        instance role: "spaceRefFrame", value: "ICRS"
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
    }

    instance(type: "coords:Longitude") {
        instance role: "cval", value: 173.3482717153, unit: "deg", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }
    instance(type: "coords:Latitude") {
        instance role: "cval", value: 25.8341026280, unit: "deg", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/long-lat-position-icrs.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:SpaceFrame" ID="_SPACE_FRAME">
        <ATTRIBUTE dmrole="coords:SpaceFrame.spaceRefFrame">
          <LITERAL value="ICRS" dmtype="ivoa:string"/>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:SpaceFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:Longitude">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="173.3482717153" dmtype="ivoa:RealQuantity" unit="deg"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
      <INSTANCE dmtype="coords:Latitude">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="25.8341026280" dmtype="ivoa:RealQuantity" unit="deg"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

B: FK4

DSL

File: /examples/coords/current/instances/long-lat-position-fk4.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_SPACE_FRAME", type: "coords:SpaceFrame") {
        instance role: "spaceRefFrame", value: "FK4"
        instance role: "equinox", value: "B1950"
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
    }

    instance(type: "coords:Longitude") {
        instance role: "cval", value: 12.9768538031, unit: "deg", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }
    instance(type: "coords:Latitude") {
        instance role: "cval", value: -72.9580158133, unit: "deg", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/long-lat-position-fk4.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:SpaceFrame" ID="_SPACE_FRAME">
        <ATTRIBUTE dmrole="coords:SpaceFrame.spaceRefFrame">
          <LITERAL value="FK4" dmtype="ivoa:string"/>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:SpaceFrame.equinox">
          <LITERAL value="B1950" dmtype="coords:Epoch"/>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:SpaceFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:Longitude">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="12.9768538031" dmtype="ivoa:RealQuantity" unit="deg"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
      <INSTANCE dmtype="coords:Latitude">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="-72.9580158133" dmtype="ivoa:RealQuantity" unit="deg"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Custom Cartesian

DSL

File: /examples/coords/current/instances/cartesian-3d-position.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_SPACE_FRAME", type: "coords:SpaceFrame") {
        instance role: "spaceRefFrame", value: "CUSTOM"
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
    }

    instance(type: "coords:X") {
        instance role: "cval", value: 0.0, unit: "m", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }

    instance(type: "coords:Y") {
        instance role: "cval", value: 0.0, unit: "m", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }

    instance(type: "coords:Z") {
        instance role: "cval", value: 534.7, unit: "m", type: "ivoa:RealQuantity"
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/cartesian-3d-position.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:SpaceFrame" ID="_SPACE_FRAME">
        <ATTRIBUTE dmrole="coords:SpaceFrame.spaceRefFrame">
          <LITERAL value="CUSTOM" dmtype="ivoa:string"/>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:SpaceFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:X">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="0.0" dmtype="ivoa:RealQuantity" unit="m"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
      <INSTANCE dmtype="coords:Y">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="0.0" dmtype="ivoa:RealQuantity" unit="m"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
      <INSTANCE dmtype="coords:Z">
        <ATTRIBUTE dmrole="coords:SpaceCoord.cval">
          <LITERAL value="534.7" dmtype="ivoa:RealQuantity" unit="m"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Time Coordinates

A: ISOTime

DSL

File: /examples/coords/current/instances/tt-iso-time.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_TT_FRAME", type: "coords:TimeFrame") {
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
        instance role: "timescale", value: "TT"
    }

    instance (type: "coords:ISOTime") {
        instance role: "date", value: "2012-10-23T14:26:39"
        reference(role: "frame") {
            idref "_TT_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/tt-iso-time.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:TimeFrame" ID="_TT_FRAME">
        <ATTRIBUTE dmrole="coords:TimeFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:TimeFrame.timescale">
          <LITERAL value="TT" dmtype="ivoa:string"/>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:ISOTime">
        <ATTRIBUTE dmrole="coords:ISOTime.date">
          <LITERAL value="2012-10-23T14:26:39" dmtype="ivoa:datetime"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_TT_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

B: JD

DSL

File: /examples/coords/current/instances/tt-jd-time.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_TT_FRAME", type: "coords:TimeFrame") {
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
        instance role: "timescale", value: "TT"
    }

    instance (type: "coords:JD") {
        instance role: "date", value: 2450814.5
        reference(role: "frame") {
            idref "_TT_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/tt-jd-time.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:TimeFrame" ID="_TT_FRAME">
        <ATTRIBUTE dmrole="coords:TimeFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:TimeFrame.timescale">
          <LITERAL value="TT" dmtype="ivoa:string"/>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:JD">
        <ATTRIBUTE dmrole="coords:JD.date">
          <LITERAL value="2450814.5" dmtype="ivoa:real"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_TT_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

C: MJD

DSL

File: /examples/coords/current/instances/tt-mjd-time.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_TT_FRAME", type: "coords:TimeFrame") {
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
        instance role: "timescale", value: "TT"
    }

    instance (type: "coords:MJD") {
        instance role: "date", value: 50814.0
        reference(role: "frame") {
            idref "_TT_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/tt-mjd-time.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:TimeFrame" ID="_TT_FRAME">
        <ATTRIBUTE dmrole="coords:TimeFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:TimeFrame.timescale">
          <LITERAL value="TT" dmtype="ivoa:string"/>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:MJD">
        <ATTRIBUTE dmrole="coords:MJD.date">
          <LITERAL value="50814.0" dmtype="ivoa:real"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_TT_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

D: TimeOffset

DSL

File: /examples/coords/current/instances/tt-met-time.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_TT_FRAME", type: "coords:TimeFrame") {
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
        instance role: "timescale", value: "TT"
    }

    instance(type: "coords:TimeOffset") {
        instance role: "time", value: 162753157.938826888, unit: "s"
        instance(role: "time0", type: "coords:JD") {
            instance role: "date", value: 5.0814000000000E+04
            reference(role: "frame") {
                idref "_TT_FRAME"
            }
        }
        reference(role: "frame") {
            idref "_TT_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/tt-met-time.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:TimeFrame" ID="_TT_FRAME">
        <ATTRIBUTE dmrole="coords:TimeFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:TimeFrame.timescale">
          <LITERAL value="TT" dmtype="ivoa:string"/>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:TimeOffset">
        <ATTRIBUTE dmrole="coords:TimeOffset.time">
          <LITERAL value="162753157.938826888" dmtype="ivoa:RealQuantity" unit="s"/>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:TimeOffset.time0">
          <INSTANCE dmtype="coords:JD">
            <ATTRIBUTE dmrole="coords:JD.date">
              <LITERAL value="50814.000000000" dmtype="ivoa:real"/>
            </ATTRIBUTE>
            <REFERENCE dmrole="coords:Coordinate.frame">
              <IDREF>_TT_FRAME</IDREF>
            </REFERENCE>
          </INSTANCE>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_TT_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Generic Coordinates

Continuous/Physical

DSL

File: /examples/coords/current/instances/space-gen-chip.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(id: "_CHIP_FRAME", type: "coords:SpaceFrame") {
        instance role: "spaceRefFrame", value: "CUSTOM"
        instance(role: "refPosition", type: "coords:StdRefLocation") {
            instance role: "position", value: "TOPOCENTER"
        }
    }

    instance(type: "coords:CoordSpace") {
        instance(id: "_CHIP_X_AXIS", role: "axis", type: "coords:ContinuousAxis") {
            instance role: "name", value: "chipx"
            instance role: "domainMin", value: -0.5
            instance role: "domainMax", value: 1024.5
            instance role: "cyclic", value: "FALSE"
        }
        instance(id: "_CHIP_Y_AXIS", role: "axis", type: "coords:ContinuousAxis") {
            instance role: "name", value: "chipy"
            instance role: "domainMin", value: -0.5
            instance role: "domainMax", value: 1024.5
            instance role: "cyclic", value: "FALSE"
        }
    }

    instance(type: "coords:CompositeCoord2D") {
        instance(role: "cmpt", type: "coords:PhysicalCoordValue") {
            instance role: "cval", value: 784.5419
            reference(role: "axis") {
                idref "_CHIP_X_AXIS"
            }
        }
        instance(role: "cmpt", type: "coords:PhysicalCoordValue") {
            instance role: "cval", value: 203.4455
            reference(role: "axis") {
                idref "_CHIP_Y_AXIS"
            }
        }
        reference(role: "frame") {
            idref "_SPACE_FRAME"
        }
    }
}

VOTable

File: /examples/coords/current/instances/space-gen-chip.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:SpaceFrame" ID="_CHIP_FRAME">
        <ATTRIBUTE dmrole="coords:SpaceFrame.spaceRefFrame">
          <LITERAL value="CUSTOM" dmtype="ivoa:string"/>
        </ATTRIBUTE>
        <ATTRIBUTE dmrole="coords:SpaceFrame.refPosition">
          <INSTANCE dmtype="coords:StdRefLocation">
            <ATTRIBUTE dmrole="coords:StdRefLocation.position">
              <LITERAL value="TOPOCENTER" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </ATTRIBUTE>
      </INSTANCE>
      <INSTANCE dmtype="coords:CoordSpace">
        <COMPOSITION dmrole="coords:CoordSpace.axis">
          <INSTANCE dmtype="coords:ContinuousAxis" ID="_CHIP_X_AXIS">
            <ATTRIBUTE dmrole="coords:Axis.name">
              <LITERAL value="chipx" dmtype="ivoa:string"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:ContinuousAxis.domainMin">
              <LITERAL value="-0.5" dmtype="ivoa:Quantity"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:ContinuousAxis.domainMax">
              <LITERAL value="1024.5" dmtype="ivoa:Quantity"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:ContinuousAxis.cyclic">
              <LITERAL value="FALSE" dmtype="ivoa:boolean"/>
            </ATTRIBUTE>
          </INSTANCE>
          <INSTANCE dmtype="coords:ContinuousAxis" ID="_CHIP_Y_AXIS">
            <ATTRIBUTE dmrole="coords:Axis.name">
              <LITERAL value="chipy" dmtype="ivoa:string"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:ContinuousAxis.domainMin">
              <LITERAL value="-0.5" dmtype="ivoa:Quantity"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:ContinuousAxis.domainMax">
              <LITERAL value="1024.5" dmtype="ivoa:Quantity"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:ContinuousAxis.cyclic">
              <LITERAL value="FALSE" dmtype="ivoa:boolean"/>
            </ATTRIBUTE>
          </INSTANCE>
        </COMPOSITION>
      </INSTANCE>
      <INSTANCE dmtype="coords:CompositeCoord2D">
        <ATTRIBUTE dmrole="coords:CompositeCoordinate.cmpt">
          <INSTANCE dmtype="coords:PhysicalCoordValue">
            <ATTRIBUTE dmrole="coords:PhysicalCoordValue.cval">
              <LITERAL value="784.5419" dmtype="ivoa:Quantity"/>
            </ATTRIBUTE>
            <REFERENCE dmrole="coords:GenericCoordValue.axis">
              <IDREF>_CHIP_X_AXIS</IDREF>
            </REFERENCE>
          </INSTANCE>
          <INSTANCE dmtype="coords:PhysicalCoordValue">
            <ATTRIBUTE dmrole="coords:PhysicalCoordValue.cval">
              <LITERAL value="203.4455" dmtype="ivoa:Quantity"/>
            </ATTRIBUTE>
            <REFERENCE dmrole="coords:GenericCoordValue.axis">
              <IDREF>_CHIP_Y_AXIS</IDREF>
            </REFERENCE>
          </INSTANCE>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:Coordinate.frame">
          <IDREF>_SPACE_FRAME</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Binned/Binned

DSL

File: /examples/coords/current/instances/binned-axis.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(type: "coords:CoordSpace") {
        instance(id: "_PHA_AXIS", role: "axis", type: "coords:BinnedAxis") {
            instance role: "name", value: "pha"
            instance role: "length", value: 36855
        }
    }

    instance(type: "coords:BinnedCoordValue") {
        instance role: "cval", value: 3572
        reference(role: "axis") {
            idref "_PHA_AXIS"
        }
    }
}

VOTable

File: /examples/coords/current/instances/binned-axis.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:CoordSpace">
        <COMPOSITION dmrole="coords:CoordSpace.axis">
          <INSTANCE dmtype="coords:BinnedAxis" ID="_PHA_AXIS">
            <ATTRIBUTE dmrole="coords:Axis.name">
              <LITERAL value="pha" dmtype="ivoa:string"/>
            </ATTRIBUTE>
            <ATTRIBUTE dmrole="coords:BinnedAxis.length">
              <LITERAL value="36855" dmtype="ivoa:nonnegativeInteger"/>
            </ATTRIBUTE>
          </INSTANCE>
        </COMPOSITION>
      </INSTANCE>
      <INSTANCE dmtype="coords:BinnedCoordValue">
        <ATTRIBUTE dmrole="coords:BinnedCoordValue.cval">
          <LITERAL value="3572" dmtype="ivoa:integer"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:GenericCoordValue.axis">
          <IDREF>_PHA_AXIS</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Discrete (Polarization)

DSL

File: /examples/coords/current/instances/discrete-axis.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(type: "coords:CoordSpace") {
        instance(id: "_POLARIZATION_AXIS", role: "axis", type: "coords:DiscreteSetAxis") {
            instance role: "name", value: "polarization"
        }
    }

    instance(type: "coords:PolStokes") {
        instance role: "cval", value: "PolStokesEnum.I"
        reference(role: "axis") {
            idref "_POLARIZATION_AXIS"
        }
    }
}

VOTable

File: /examples/coords/current/instances/discrete-axis.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:CoordSpace">
        <COMPOSITION dmrole="coords:CoordSpace.axis">
          <INSTANCE dmtype="coords:DiscreteSetAxis" ID="_POLARIZATION_AXIS">
            <ATTRIBUTE dmrole="coords:Axis.name">
              <LITERAL value="polarization" dmtype="ivoa:string"/>
            </ATTRIBUTE>
          </INSTANCE>
        </COMPOSITION>
      </INSTANCE>
      <INSTANCE dmtype="coords:PolStokes">
        <ATTRIBUTE dmrole="coords:PolStokes.cval">
          <LITERAL value="PolStokesEnum.I" dmtype="coords:PolStokesEnum"/>
        </ATTRIBUTE>
        <REFERENCE dmrole="coords:GenericCoordValue.axis">
          <IDREF>_POLARIZATION_AXIS</IDREF>
        </REFERENCE>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>

Pixel Coordinates

DSL

File: /examples/coords/current/instances/pixel-coordinates.jovial

def modelsFolder = "file:../models"
def voluteFolder = "https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/"

def coordsLocation = new URL("$modelsFolder/STC_coords-v1.0.vo-dml.xml")
def ivoaLocation = new URL("$voluteFolder/ivoa/vo-dml/IVOA-v1.0.vo-dml.xml")

dmInstance {
    model(vodmlURL: coordsLocation)
    model(vodmlURL: ivoaLocation)

    instance(type: "coords:PixelCoordSystem") {
        instance(role:"pixelSpace", type: "coords:PixelSpace") {
            instance(id: "_1", role: "axis", type: "coords:BinnedAxis") {
                instance role: "name", value: "#1"
                instance role: "length", value: 512
            }
            instance(id: "_2", role: "axis", type: "coords:BinnedAxis") {
                instance role: "name", value: "#2"
                instance role: "length", value: 512
            }
            instance(id: "_3", role: "axis", type: "coords:BinnedAxis") {
                instance role: "name", value: "#3"
                instance role: "length", value: 26
            }
            instance(id: "_4", role: "axis", type: "coords:BinnedAxis") {
                instance role: "name", value: "#4"
                instance role: "length", value: 1
            }
        }
    }
}

VOTable

File: /examples/coords/current/instances/pixel-coordinates.vot.xml

<?xml version="1.0" encoding="UTF-8"?><VOTABLE xmlns="http://www.ivoa.net/xml/VOTable/v1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <VODML>
    <MODEL>
      <NAME>coords</NAME>
      <URL>file:../models/STC_coords-v1.0.vo-dml.xml</URL>
    </MODEL>
    <MODEL>
      <NAME>ivoa</NAME>
      <URL>https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models//ivoa/vo-dml/IVOA-v1.0.vo-dml.xml</URL>
    </MODEL>
    <GLOBALS>
      <INSTANCE dmtype="coords:PixelCoordSystem">
        <COMPOSITION dmrole="coords:PixelCoordSystem.pixelSpace">
          <INSTANCE dmtype="coords:PixelSpace">
            <COMPOSITION dmrole="coords:CoordSpace.axis">
              <INSTANCE dmtype="coords:BinnedAxis" ID="_1">
                <ATTRIBUTE dmrole="coords:Axis.name">
                  <LITERAL value="#1" dmtype="ivoa:string"/>
                </ATTRIBUTE>
                <ATTRIBUTE dmrole="coords:BinnedAxis.length">
                  <LITERAL value="512" dmtype="ivoa:nonnegativeInteger"/>
                </ATTRIBUTE>
              </INSTANCE>
              <INSTANCE dmtype="coords:BinnedAxis" ID="_2">
                <ATTRIBUTE dmrole="coords:Axis.name">
                  <LITERAL value="#2" dmtype="ivoa:string"/>
                </ATTRIBUTE>
                <ATTRIBUTE dmrole="coords:BinnedAxis.length">
                  <LITERAL value="512" dmtype="ivoa:nonnegativeInteger"/>
                </ATTRIBUTE>
              </INSTANCE>
              <INSTANCE dmtype="coords:BinnedAxis" ID="_3">
                <ATTRIBUTE dmrole="coords:Axis.name">
                  <LITERAL value="#3" dmtype="ivoa:string"/>
                </ATTRIBUTE>
                <ATTRIBUTE dmrole="coords:BinnedAxis.length">
                  <LITERAL value="26" dmtype="ivoa:nonnegativeInteger"/>
                </ATTRIBUTE>
              </INSTANCE>
              <INSTANCE dmtype="coords:BinnedAxis" ID="_4">
                <ATTRIBUTE dmrole="coords:Axis.name">
                  <LITERAL value="#4" dmtype="ivoa:string"/>
                </ATTRIBUTE>
                <ATTRIBUTE dmrole="coords:BinnedAxis.length">
                  <LITERAL value="1" dmtype="ivoa:nonnegativeInteger"/>
                </ATTRIBUTE>
              </INSTANCE>
            </COMPOSITION>
          </INSTANCE>
        </COMPOSITION>
      </INSTANCE>
    </GLOBALS>
  </VODML>
  <RESOURCE ID="EMPTY"/>
</VOTABLE>