XMML Geometry objects
Specialised Geometry objects for XMML
Specialised XMML Geometry components fall into the following categories:
- Compact representations of simple extensive geometries using vertices
- Infinite planes and lines
- Intervals
- A compact variant for Triangulated Surface
- Objects representing the intersection of a geometry with a surface
Schema
Model
- XMML Geometry elements (package: XGM) and some associated GML Geometry (package: GM):
- 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">
<complexType>
<sequence/>
<attribute name="v0" type="anyURI" use="required"/>
<attribute name="v1" type="anyURI" use="required"/>
<attribute name="v2" type="anyURI" use="required"/>
</complexType>
</element>
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.
Compact tri-surface variant
Models from
XmmlSchemaRepository:trunk/geo/0.1.0/geometry.xsd
Representative XML Spy schema-view diagrams
Explanation
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
Explanation
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
Model
Explanation
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" }%