"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

XMML Geometry objects


Related pages

Specialised Geometry objects for XMML

Specialised XMML Geometry components fall into the following categories:

  1. Compact representations of simple extensive geometries using vertices
  2. Infinite planes and lines
  3. Intervals
  4. A compact variant for Triangulated Surface
  5. Objects representing the intersection of a geometry with a surface



  • XMML Geometry elements (package: XGM) and some associated GML Geometry (package: GM):
    XMML Geometry elements (package: XGM) and the associated GML Geometry (package: GM)

  • XMML Interval + geometry aggregates:
    XMML Interval + geometry aggregates

  • XMML surfaces:

Compact higher-order geometries

As discussed in #GML_Geometry_Components, the standard representations of higher-order geometries result in deeply nested documents structures. As an alternative to explicitly indicating the geometry structures in the document instance, the structuring conventions may be recorded outside the instance document (i.e. in a specification or in the schema), which allows a more compact encoding.

Many geometry objects occuring in geoscience and engineering are composed from simple primitives which have a fixed, small, number of vertices. Provided that the vertices are understood to occur in a standard order, then the vertex list is sufficient to describe the higher-order geometry.

Compact node groups

In order to support this approach, a set of simple property elements are provided which merely carry references to nodes recorded elsewhere. Because these are "empty" complexType elements, in which the content is carried by XML attributes, the standard XML-Spy diagrams are not useful. Instead, consider the text form of the declaration of exterior3Points:

  <element name="exterior3Points">
      <attribute name="v0" type="anyURI" use="required"/>
      <attribute name="v1" type="anyURI" use="required"/>
      <attribute name="v2" type="anyURI" use="required"/>

This defines an empty element that might occur in an instance document as follows:

<xmml:exterior3Points v0="#p0" v1="#p3" v2="#p4"/>

where the attributes v0="#p0" etc are labelled (and thus ordered) references to three objects (presumably gml:Point elements) carrying gml:id="p0" .

The following property elements are defined in similar manner:
  • exterior3Points
  • exterior4Points
  • exterior5Points
  • exterior6Points
  • exterior8Points

Compact surface patches - Triangle, Quadrilateral

Models from XmmlSchemaRepository:trunk/geo/0.1.0/geometry.xsd



A Triangle is a surface patch defined by three exterior vertices, given in the sequence (v0, v1, v2) that is clockwise when looking along the positive normal.

A Quadrilateral is a surface patch defined by four exterior vertices, given in the sequence (v0, v1, v2, v3) that is clockwise when looking along the positive normal.

xmml:Triangle and xmml:Quadrilateral are in the substitution group headed by gml:_SurfacePatch, and thus may be used in gml:_Surface structures, etc.

Compact solids - Tetrahedron, Pyramid, Wedge, Hexahedron

A Tetrahedron is a solid defined by four exterior vertices, given in the sequence (v0, v1, v2, v3) shown in the perspective diagram below.

A Pyramid is a solid defined by five exterior vertices, given in the sequence (v0, v1, v2, v3, v4) shown in the perspective diagram below.

A Wedge is a solid defined by six exterior vertices, given in the sequence (v0, v1, v2, v3, v4, v5) shown in the perspective diagram below.

A Hexahedron is a solid defined by eight exterior vertices, given in the sequence (v0, v1, v2, v3, v4, v5, v6, v7) shown in the perspective diagram below.

xmml:Tetrahedron, xmml:Pyramid, xmml:Wedge, and xmml:Hexahedron are in the substitution group headed by gml:_Solid, and thus may be used in gml:CompositeSolid, gml:MultiSolid structures, etc.

Tetrahedron vertex order Pyramid vertex order Wedge vertex order Hexahedron vertex order

Compact tri-surface variant

Models from XmmlSchemaRepository:trunk/geo/0.1.0/geometry.xsd

Representative XML Spy schema-view diagrams



Following the compact representations of surface patches described above, the XMML TriSurface provides a variant to the gml:TriangulatedSurface (#2_D_geometry_components). This allows xmml:Triangle to appear as an alternative to gml:Triangle. The xmml:Triangle provides a more compact encoding, using references to the vertex nodes carried as the values of attributes on the exterior3Points property, instead of gml:Triangle which has the gml:exterior property containing a gml:_Ring structure.

Lines and Planes

Models from XmmlSchemaRepository:trunk/geo/0.1.0/geometry.xsd


GML Surface models (#2_D_geometry_components) are based on
  • complexes of surface patches, each of which has an (optional) exteriorRing, or
  • parametric surfaces, based on grids of control points, with cylinder, cone and sphere implemented in concrete form directly.
While these may in principle describe unbounded surfaces, including planes, using the GML implementation is cumbersome for the latter.

The XMML model illustrated here declares the elements
  • xmml:_Plane (abstract) which acts as the head of a substitution group for elements describing planes
  • xmml:PlaneByVector which adds the properties
    • containedPoint - a direct position, of the same type as used by the gml:pos element (#0_D_geometry_components), and
    • normalVector - a simple vector, using gml:VectorType (see #Vector).

Objects intersecting surfaces

Models from XmmlSchemaRepository:trunk/geo/0.1.0/geometrySurfaces.xsd





When collecting data about features with 3-D shapes, the complete shape can rarely be measured directly. In practice, however, the shape of the intersection of the object with one or more particular surfaces - such as the "map" surface, a pit-wall, a seismic section, etc - can often be described. This provides a discrete sample of the shape of the object, which may be used to construct an estimate of the shape, using some algorithm or interpretation method. Curves intersect a surface in a point or set of points, surfaces in a set of curves, and solids in a set of surface patches.

A set of standardised elements representing these geometries, and property models using these, are provided, following the pattern illustrated. The general pattern for GeometrysInSurface adds two properties to gml:_Geometry:
  • shape - a geometry aggregate containing a set of geometries of the appropriate type
  • containingSurface - the surface within these are projected or sampled.

The following specific geometries are provided:
  • PointsInSurface
  • CurvesInSurface
  • SurfacesInSurface

These objects will normally be used as the value of a property of an observed feature. XML Schema types are defined for the geometries listed above, following the pattern shown. For example, a stratigraphic horizon may be sampled in a seismic section, with the geometry recorded as a trace defined:

<element name="trace" type="xmml:CurvesInSurfacePropertyType"/>

For examples of some generic feature types using this capability, see MappedFeatures.

Issues and change requests

Readers are invited to add issues to this table - select [Edit Table] below. It is not mandatory to enter a solution, but change requests are more likely to be implemented if a concrete solution is proposed.

%EDITTABLE{ header="| # | By | Timestamp | Component(s) | Description of issue | Proposed solution | Resolution |" format="| row, -1 | text, 25, Unknown | label, 0, 25 May 2019 16:16 | textarea, 3x25, Component(s) | textarea, 3x25, Description | textarea, 3x25, Proposal | select, 1, Unaddressed, Progressing, Resolved |" changerows="on" }%
# By Timestamp Component(s) Description of issue Proposed solution Resolution
1 My org 14 May 2004 collar location A big whinge a proposed solution Unaddressed

Topic attachments
I Attachment Action Size Date Who Comment
geometry.PNGPNG geometry.PNG manage 12.6 K 27 Feb 2005 - 10:18 SimonCox XMML Geometry elements (package: XGM) and the associated GML Geometry (package: GM)
geometrySurfaces.PNGPNG geometrySurfaces.PNG manage 10.9 K 08 Feb 2005 - 09:05 SimonCox GML and XMML surfaces
interval.PNGPNG interval.PNG manage 3.6 K 08 Feb 2005 - 15:04 SimonCox XMML Interval + geometry aggregates
shape.PNGPNG shape.PNG manage 17.8 K 19 May 2005 - 17:14 SimonCox XMML geometry (shape classes)
surfaces.PNGPNG surfaces.PNG manage 6.2 K 19 May 2005 - 17:14 SimonCox XMML surface geometries
Topic revision: r8 - 15 Oct 2010, UnknownUser

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).