The SEDRIS Data Representation Model
APPENDIX A - Classes
Reference Surface

Class Name: Reference Surface

Superclass - <SEDRIS Abstract Base>

Subclasses

This DRM class is concrete and has no subclasses.

Definition

An instance of this DRM class specifies, for the hierarchy instance(s) of which it is a component, a surface which is to be used to resolve the elevation of <Location 2D> instances in the component tree rooted at each hierarchy instance.

In addition, a <Reference Surface> specifies how the surface is to be used in the resolution process.

A hierarchy instance requires a <Reference Surface> if

  1. there are <Location 2D> instances below the hierarchy,
  2. the <Location 2D> instances are in the scope of a 3D spatial reference frame, and
  3. the data provider wants the locations to lie on a surface other than the last default surface (The initial default is the spatial reference frame's vertical datum).
  4. A <Geometry Hierarchy>'s and <Reference Surface>'s field values define a surface for the resolution process as follows; there are several cases.

    1. The <Geometry Hierarchy> is a <Property Grid Hook Point> that aggregates at least one <Property Grid> with these qualifications:
      1. its <Classification Data> matches the <Reference Surface>'s classification field,
      2. it has 2 spatial axes corresponding to the horizontal coordinates of the SRF, and
      3. it has a < Table Property Description> for height, elevation, or bathymetry.

      If the <Property Grid> meets the above criteria, then it defines a resolution surface.

    2. The <Geometry Hierarchy> is a <Union Of Primitive Geometry> that aggregates <Surface Geometry> with <Classification Data> matching the <Reference Surface>'s classification field. In this case, all such <Surface Geometry> instances combine to form the resolution surface. (Note that the multiplicity_rule field deals with surface complexity).
    3. The <Geometry Hierarchy> is a Distance, Index, Map Scale, or Spatial Resolution < Level of Detail Related Geometry> that aggregates (directly or indirectly) <Geometry Hierarchy> cases 1 and/or 2 above under an LOD branch selected by the <Reference Surface> lod_rule field.
    4. The <Geometry Hierarchy> aggregates some combination of cases 1, 2, or 3.

    In general, the set of all <Surface Geometry> and <Property Grids> under the <Geometry Hierarchy> is culled by matching the <Reference Surface> classification field (and <Property Grid> qualifications) and matching LOD branches to the lod_rule field. The remaining geometry is the resolution surface used for ray intersections.

Primary Page in DRM Diagram:

Secondary Pages in DRM Diagram:

This class appears on only one page of the DRM class diagram.

Example

  1. An <Environment Root> has both a <Union Of Geometry Hierarchy> and a <Union Of Features> component.

    The <Union Of Geometry Hierarchy> contains a <Union Of Primitive Geometry> with a <Classification Data> (specifying ECC_TERRAIN_ELEVATION). This <Union Of Primitive Geometry> contains <Polygons>, which inherit the <Classification Data>. The <Union Of Features> has a <Reference Surface> component, which associates to the <Union of Primitive Geometry> and has these field values:
    multiplicity_rule SE_RS_ELEV_SEL_HIGHEST
    classification ECC_TERRAIN_ELEVATION
    lod_rule SE_RS_LOD_SEL_ALL

    Reference Surface, Example 1

    <Location 2D> instances found in the <Union of Features> aggregation tree use the terrain polygons to resolve elevation.

  2. Continuing example 1, the < Union Of Geometry Hierarchy> under the < Environment Root> contains another <Union Of Primitive Geometry> with <Polygons> classified as ECC_INLAND_WATER_ELEVATION. The <Union Of Features> aggregates a <Union Of Features>, which is classified as ECC_ENGINEERING_BRIDGE and contains <Linear Features> using <Location 2D> instances. The <Union Of Features> also contains a <Reference Surface> with <Classification Data> tagged as ECC_INLAND_WATER_ELEVATION, and associated to the < Union Of Primitive Geometry>.
  3. Suppose we have, as our < Reference Surface>'s geometry, a <Spatial Index Related Geometry> whose components are all < Classification Related Geometry>. Each < Classification Related Geometry> contains 3 <Union Of Primitive Geometry> instances: one for terrain surface polygons, one for road polygons (which may or may not be part of the road surface), and one for forest canopy polygons. <Reference Surface> would associate to the < Spatial Index Related Geometry>, and its classification field would be set to ECC_TERRAIN_ELEVATION. The resolution process then ignores the road and canopy polygons, but sees all the terrain polygons regardless of which union they're in. Consider a <Linear Feature> representing a road, which mostly stays on the road geometry but sometimes strays off. This <Linear Feature> is placed in a sub-<Union Of Features> aggregating a different <Reference Surface> instance, which associates to the same < Spatial Index Related Geometry> but has classification = ECC_ROAD. The resolution process for this <Reference Surface> sees the road <Polygons> and ignores the others. For <Feature Nodes> that stray off the road, the corresponding <Location 2Ds>' rays will fail to intersect any road polygon, so we are in case 3: empty intersection set. We then fall back to the previous override, which was the terrain surface.
  4. Using a specific plane for elevation resolution, such as a carrier deck, or a landing plate. Represent the plane with one or more <Polygons>. Put these <Polygons> under a <Union Of Primitive Geometry> and classify them. Use that <Union Of Primitive Geometry> for the <Reference Surface> associated <Geometry Hierarchy>, and use the same classification for the classification field.

  5. Terrain is organized in 3 minute regions, which are grouped into 1 degree cells, where the 1 degree cells are collected under one < Union Of Geometry Hierarchy>. In addition, <Features> and non-terrain <Geometry> are organized under a corresponding spatial organization. Each 3 minute hierarchy has a <Reference Surface> associated to the corresponding 3 minute terrain. Each 1 degree hierarchy has a <Reference Surface> associated to the corresponding 1 degree terrain. Each of the highest level feature and non-terrain geometry hierarchies has a <Reference Surface> associated to the terrain <Geometry Hierarchy>.

    In this scheme, a <Location 2D> in a 3 minute region finds its resolution surface in the corresponding 3 minute terrain. If a <Location 2D> "strays" outside its region (i.e., strict_organizing_principle=SE_FALSE), then the containing 1 degree terrain resolves the <Location 2D>. If the location ray fails to intersect the 1 degree surface, then the full terrain < Union Of Geometry Hierarchy> is used. If ray / surface intersection still fails, the elevation is resolved by the vertical datum.

FAQs

Why does a hierarchy need a <Reference Surface>? What do you mean by "elevations" for <Location 2D> instances? They don't have elevation.
In a 3D spatial reference frame, <Location 2Ds> are thought of as lying on a surface. Which surface is intended seems to be subjective at best. A cartographer may prefer the vertical datum as the <Location 2D> surface, while others prefer the "terrain surface". Terrain surface is also a subjective term, and terrain surfaces have been mapped to the DRM in a variety of ways. Even if one notion of surface for <Location 2Ds> were mandated, it would not meet everyone's requirements.

The solution is to mandate a clearly defined surface (the initial default) and provide a flexible mechanism to override the default for all or for selected parts of the transmittal.

How does a <Feature Hierarchy> or <Geometry Hierarchy> use a <Reference Surface> to resolve elevations for aggregated <Location 2Ds>?
Consider a <Reference Surface> that is associated to a <Geometry Hierarchy> that contains a surface. A <Location 2D> corresponds to the (unique) ray which is:
  1. normal to the surface of the SRF ellipsoid (*),
  2. intersects the ellipsoid at the same horizontal coordinates as the <Location 2D>, and
  3. extends below the surface of the ellipsoid to a depth equal to the minor radius of the ellipsoid.
(*) NOTE: For augmented Projected SRFs, this is the projection ellipsoid. For LSR, use the z=0 plane, where z is the coordinate axis specified by the SRM_LSR_Parameters_3D up_direction value.

The intersection of this ray with the resolution surface defines the candidate set for the corresponding 3D location. One 3D location is selected from the ray/surface intersection set according to the following three cases:

  1. If the set contains 1 and only 1 element, the spatial position of that point resolves the <Location 2D> instance.
  2. If the set contains more than one element, the <Reference Surface> field multiplicity_rule value is used to select exactly one element.
    (For instance, if several overlapping < Property Grids> with <Grid Overlap> components are part of the <Reference Surface>, use <Grid Overlap>'s rules to define the <Reference Surface> in the overlap region of two or more of the surface grids. If the intersection set still has more than one point, use multiplicity_rule.)
  3. If the intersection is empty, then look for other <Reference Surface> instances higher up the aggregation tree and repeat this resolution process with that surface instead. If there are no other <Reference Surface> instances higher up the aggregation tree, then use the vertical datum, which is guaranteed to be a case 1 surface. (See also example 5).

What if there is no single < Union Of Primitive Geometry> that defines the <Reference Surface>?
There is no requirement that the aggregate be free of non-reference surface geometry (See example 3). In this case, find the higher level <Geometry Hierarchy> that aggregates the desired < Union Of Primitive Geometry> sub-hierarchies, and use that for the <Reference Surface> association.

What happens to <LSR Location 2D> instances in an LSR <Model> when the <Model> is instanced by a model instance object in a non-LSR 3D spatial reference frame?
That depends on whether or not the scoping SRF supports <Location 2Ds>.

(Note 1): LSR models are not permitted to contain instances; see constraints.
(Note 2): Conformal behaviour may also be modeled with < LSR Location 3D Control Links>.

Can a <Geometry Model Instance> be used for a <Reference Surface> association?
Yes, if the <Model>'s spatial reference frame matches the currently scoped 'world' spatial reference frame.

How are <Location 2D> instances converted consuming data in a different spatial reference frame?
There are two cases.

Case 1 - both SRFs have the same horizontal datum.
Case 2 - The two SRFs have different horizontal datums.

In case 1 (Same horizontal datum), the ray determined by the <Location 2D> is invariant, so the horizontal coordinates are converted in the usual way.

In case 2 (Different horizontal datums), the ray may change, so three steps are needed:

Step 1 Resolve elevation in the originating SRF and convert the <Location 2D> to <Location 3D>.
Step 2 Convert the <Location 3D> to the second SRF (conversion not currently supported).
Step 3 Collapse the <Location 3D> to a <Location 2D>.

If I consume a transmittal in different SRF, should I resolve elevations in the originating or the consuming SRF?
It should not make a difference if the two SRFs are both "real world" or both Augmented Projected Coordinate Systems (APCS). In the case in which one is "real" world and the other is APCS, there are two ways to deal with the "conversion distortion" that tends to bend flat surfaces.

Consider a <Location 2D> whose ray intersects the resolution surface near the centre of exactly one triangular <Polygon>. The intersection point determines the elevation, and therefore a corresponding < Location 3D>. If you resolve in the first SRF, and then convert the <Location 3D>, the location will match the transmittal point, but it may no longer lie on the triangle's surface. On the other hand, if you convert the <Location 2D> and then resolve in the second SRF, the corresponding <Location 3D> will lie on the triangle's surface, but may differ a little in elevation from the originating point. Therefore if absolute location is more important than conformality, resolve in the originating SRF. If conformality is more important, resolve in the consuming SRF.

Constraints

Associated to (one-way)

Composed of (two-way)

Component of (two-way)

Inherited Field Elements

This class has no inherited field elements.

Field Elements

EDCS_Classification_Code classification; (notes)
SE_RS_Elevation_Select multiplicity_rule; (notes)
SE_RS_LOD_Select lod_rule; (notes)

Notes

Associated with Notes


Geometry_Hierarchy

 Specifies the <Geometry Hierarchy> containing the
 <Surface Geometry> and/or <Property Grids> to be used
 as the resolution surface.

Composed of Notes


Property_Value

 A <Reference Surface> instance has <Property Value> components
 only when the classification of the <Reference Surface> requires
 elaboration by <Property Value> instances.

Fields Notes


classification

 Within the resolution surface, use only geometry matching
 this (possibly elaborated) classification.

multiplicity_rule

 Rule to select a single point from multiple intersections of a
 ray with a resolution surface.

lod_rule

 Rule to select one LOD branch.

Prev: Reference Origin. Next: Reference Vector. Up:Index.

Last updated: October 1, 2002 Copyright © 2002 SEDRIS™