I. Keywords
The following are keywords to be used by search engines and document catalogues.
3D, space, streaming, GeoPose, moving features, orbit, OGC API, glTF, 3D Tiles, BCRS, NOVAS, SOFA, Solar System, ISS, Voyager, special relativity, general relativity
II. Security considerations
No security considerations have been made for this document.
III. Abstract
This OGC Testbed 18 3D Plus Data Standards and Streaming Engineering Report (ER) reviews existing specifications that support interoperable descriptions of orbital and non-orbital space-based assets, objects, and observations as well as terrestrial observations. The ER suggests a framework consolidating these specifications as a foundation for modeling, representation, and serialization from space-based assets operating at any location in our solar system (3D+ data). This framework enables the streaming of 3D+ data to visualization devices (displays, AR, VR) for presentation.
IV. Summary
This Engineering Report presents the results of OGC Testbed 18 research performed as a component of the 3D+ Data Standards and Streaming thread. A review of existing standards pertaining to the efficient streaming and visualization of spatiotemporal 3D and 4D data was performed. This review also considered use cases in Space, including objects referenced relative to a spherical body other than Earth, in orbit, or in free flight within the Solar System, the Milky Way, or outside our galaxy.
The relevant standards and candidate standards identified include multiple OGC APIs, Khronos® glTF™ and OGC GeoPose. The OGC GeoPose and OGC API — Moving Features were reviewed, resulting in some recommendations to those standards. Existing coordinate systems for referencing objects in Space were reviewed and conversions were performed between the Barymetic Celestial Reference System (BCRS), the Geocentric Celestial Reference System (GCRS), Ecliptic coordinate systems (heliocentric and geocentric), the International Terrestrial Reference System (ITRS), and GeoPose. The NOVAS C library was used for these conversions and for developing a Solar System visual simulation. The demonstration also tracked and displayed the International Space Station (ISS) as well as the Voyager 1 space probe, integrating glTF™ models provided by NASA and the Gaia Sky in Colour from ESA. The applicability of the theory of special and general relativity to potential scenarios was explored. The concept of time dilation, the Lorentz factor, and Schwarzschild’s exact solution to Einstein’s field equations describing time dilation resulting from both velocity and gravitational fields are briefly introduced.
In addition to the recommendations specific to particular OGC standards that were provided, as an outcome of this work participants recommend the following for the OGC community:
learn more about the different inertial celestial reference systems standardized by the International Astronomical Union (IAU), such as the BCRS and GCRS, and define entries for them within the OGC CRS register under the IAU namespace (which currently only includes planetary CRSs);
perform additional practical experiments using software sanctioned by the IAU to manipulate these coordinate systems;
aim to better understand how to use these libraries correctly; and
validate results across different implementations, particularly in terms of obtaining high precision results and taking into consideration relativistic effects.
Testbed-18: 3D+ Data Streaming Engineering Report
2. Terms, definitions and abbreviated terms
No terms and definitions are listed in this document.
2.1. Abbreviated terms
API
Application Programming Interface
AR
Augmented Reality
AU
Astronomical Unit (149,597,870,700 meters, the distance from the Sun to Earth’s orbit)
BCRS
Barymetric Celestial Reference System
BCT
Barymetric Coordinate Time
BVH
Bounding Volume Hierarchy
CRS
Coordinate Reference System
ENU
East, North, Up (axes)
ER
Engineering Report
ESA
European Space Agency
ETC2
Ericsson Texture Compression 2
GCRS
Geocentric Celestial Reference System
GPS
Global Positioning System
glTF™
GL Transmission Format
IAU
International Astronomical Union
ISS
International Space Station
ITRF
International Terrestrial Reference Frame
ITRS
International Terrestrial Reference System
KTX
Khronos Texture
LTP
Local Tangent Plane
NASA
National Aeronautics and Space Administration
NOMAD
Naval Observatory Merged Astrometric Dataset
NOVAS
Naval Observatory Vector Astrometry Subroutines
OGC
Open Geospatial Consortium
SOFA
Standards of Fundamental Astronomy
VR
Virtual Reality
2DTMS
2D Tile Matrix Set
1. Introduction
This OGC Testbed 18 Engineering Report presents the result of research performed as a component of the 3D+ Data Standards and Streaming thread. A review of existing standards pertaining to the efficient streaming and visualization of spatiotemporal 3D and 4D data was performed. Use cases in space, including objects referenced relative to a spherical body other than Earth, in orbit, or in free flight within the Solar System, the Milky Way, or outside our galaxy were also considered.
The relevant standards and candidate standards identified include the following.
Multiple OGC APIs
OGC API — 3D GeoVolumes for streaming 3D content referenced to a spherical body
OGC API — Tiles for streaming arbitrary content referenced to a spherical body
OGC API — Moving Features for streaming the changing positions and properties of objects over time
OGC API — Connected Systems for streaming the positions of many objects or of objects moving rapidly
The OGC 2D Tile Matrix Set and Tileset Metadata as the foundation for OGC API — Tiles as well as the fixed tiling of 3D space requirements class of 3D GeoVolumes
OGC 3D Tiles and Khronos® glTF™ as payload for 3D content
Ericsson Texture Compression 2 (ETC2), Khronos® KTX texture formats, PNG and JPEG to encode textures
OGC GeoPose as a convenient way to encode both position and orientation information
ISO 19111 (OGC Abstract Topic 2) as the foundation for referencing by coordinates
As part of reviewing the GeoPose standard, issues were documented in the GeoPose GitHub repository. The relevant capabilities that would greatly improve the usability of the standard only exist in advanced targets of the standard which were found to be cumbersome and not a natural extension of the core capabilities of the simple target or of the JSON encoding itself. These capabilities include associating time stamps and identifiers with an individual pose, defining sequences of multiple GeoPoses, and defining a pose relative to a parent pose. A recommendation was made to consider defining these capabilities as extensions preserving the basic form of the simple target. Two space scenarios illustrate what this could look like in a JSON encoding. In one scenario, passengers are onboard a spaceship that is in free flight from Earth to Mars, and in the other, passengers are onboard an express train on the surface of Mars.
As part of reviewing the OGC API — Moving Features standard, issues were documented in the GitHub repository, including clarifying the possible synergy with the OGC GeoPose and OGC API — Connected Systems, and use cases for high performance queries.
The research also reviewed existing coordinate systems for referencing objects in Space and experimented with conversions between:
the equatorial Barymetic Celestial Reference System (BCRS) and Geocentric Celestial Reference System (GCRS);
ecliptic coordinate systems (heliocentric and geocentric);
the International Terrestrial Reference System (ITRS) which forms the basis of the EPSG:4978 (Cartesian) and EPSG:4979 (ellipsoidal) 3D coordinate systems; and
GeoPose (WGS84 / Local Tangent Plane — East/North/Up).
For several of these conversions, as well as for calculating the positions of the Sun, Earth, Moon, and planets in our Solar System at a given time, the NOVAS C library was used. A table summarizing the functions of the library used in this experiment is presented. The SOFA library is also mentioned as a potential alternative. The BCRS is described as the global standard reference system for objects located outside the gravitational vicinity of Earth on Wikipedia.
glTF™ models provided by NASA as well as the Gaia Sky in Colour from ESA were used to provide a situational awareness in space reflecting the camera position and orientation in a visual demonstration. A scenario tracking the position of the International Space Station (ISS) from a sequence of positions returned by a Web API was also demonstrated, using a detailed glTF™ model of the space station provided by NASA. Another scenario which displays and tracks the position of the Voyager 1 space probe along its journey across our Solar System since 1977 illustrates a use case extending deeper into space, again using a NASA glTF™ model as well as historical data.
Finally, the applicability of the theory of special and general relativity to potential scenarios is explored, also noting cases where it may not be applicable. The concept of time dilation is introduced and illustrated with the thought experiment of a light clock, from which the Lorentz factor is derived simply with the well-understood Pythagoras theorem. The scenario of Global Positioning Systems (GPS) is discussed, where the velocity and gravitational fields have opposite effects on time dilation for the on-board clocks compared to clocks on Earth. Schwarzschild’s exact solution to Einstein’s field equations is also presented, describing with a simple equation time dilation resulting from both velocity and gravitational fields.
3. Streaming static data referenced to spherical body
The majority of data collected concerns observations and measurements on or near the surface of a spherical body, in particular planet Earth. A large portion of that data is also static. This static data may provide useful situational context for visualizing both other static content, as well as tracking dynamic objects (e.g., visualizing the position of a satellite in orbit above satellite imagery of the Earth). This section explores data access specifications supporting the interoperable selection and transmission of such static information referenced to a particular spherical body, including Earth, but also other spherical bodies such as the Moon or Mars.
3.1. Streaming data with OGC API — 3D GeoVolumes
The OGC API — 3D GeoVolumes (draft) Core conformance class defines a mechanism to retrieve 3D content of different resolutions for flexible bounding volumes hierarchies, encoded using OGC specifications such as 3D Tiles or I3S.
Another conformance class supports the retrieval of data based on an implicit tiling scheme, such as a 2D Tile Matrix Set extended to three or more dimensions, based on the method described in the informative annex J of the 2D TileMatrix Set and TileSet Metadata Standard (2DTMS & TSMD).
3.2. Flexible Bounding Volume Hierarchy
Defining a flexible bounding volume hierarchy enables equal distribution of the amount of data in different tiles based on the data density at different locations. In this case, space partitioning depends upon the data. A disadvantage of this approach compared to implicitly defining the space occupied by tiles (partitioning the space irrespective of its content) is that it is then not possible to determine which tiles cover a pre-determined space volume, such as a view frustum (the region of space in the modeled world visible on the display device).
3.3. Implicit Tiles
With the implicit tiling scheme for 3D content in GeoVolumes, the orientation and positioning of the content for a particular tile of data is implied from the tile identifier, and a global multi-resolution tile set can be described using the TileSet metadata. The informative description from the 2DTMS & TSMD annex J to extend this TileSet metadata to additional dimensions will be standardized in the draft GeoVolumes standard for describing 3D content.
Three different approaches are supported as to how to handle the vertical dimensions:
extending the vertical dimension infinitely from the center of the spherical body to infinity outwards;
sub-dividing the vertical dimension based in fixed number of divisions at all resolution levels; and
progressively sub-dividing the vertical dimension into more divisions at higher resolution levels.
The OGC 3D Tiles Next Community Standard introduces support for implicit tilesets. However, the 3D Tiles implicit tiling mechanism is not fully aligned with the approach proposed in the 2D Tile Matrix Set and TileSet Metadata standard. This is because an implementation of 3D Tiles cannot express variable width tile matrix capabilities, still relies on complex hierarchies of tileset metadata for explicitly declaring tiles availability, and does not follow the convention of aligning local East, North, Upwards (ENU) axes with a plane tangent to the centroid of a tile. However, it is possible to define a 1.0 or 1.1 3D Tiles tileset declaring those transformations, so that the same 3D models whose local coordinate system is aligned with the ENU axes can be used with both the implicit tiling approach following a TileMatrixSet (including variable widths), as well as a TileSet defining a flexible Bounding Volume Hierarchy.
3.4. Batched 3D Models vs. points referencing 3D models
Two common approaches exist for storing detailed 3D model content within tiles. One approach is to encode the entire content of each tile as a single 3D model object. This improves streaming performance by avoiding several round-trips to the server when requesting a large number of models. Another approach is to encode for each tile a reference point for everywhere a model is positioned. This reference point can additionally specify an optional orientation and/or scaling parameter to transform the model. This second approach is most useful for instantiating the same model many times such as building a forest from just a few tree models. Another advantage is that these reference points can easily be clamped to the terrain elevation, including when multiple resolutions of terrain are used. This ensures that the models will always be positioned on the ground. However, this clamping mechanism may also be implemented with the first approach if separate object nodes are used within a higher-level object node.