Open Geospatial Consortium

Submission Date: 2019-07-30

Approval Date:   2020-02-22

Publication Date:   2020-06-02

External identifier of this OGC® document: http://www.opengis.net/doc/IS/mf-json/1.0

Additional Formats (informative):

Internal reference number of this OGC® document:    19-045r3

Version: 1.0

Category: OGC® Implementation Standard

Editor: Kyoung-Sook KIM, Nobuhiro ISHIMARU

OGC Moving Features Encoding Extension - JSON

Copyright notice

Copyright © 2020 Open Geospatial Consortium

To obtain additional rights of use, visit http://www.opengeospatial.org/legal/

Warning

This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis.

Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.

Document type:    OGC® Standard

Document subtype:  Encoding

Document stage:    Approved

Document language: English

License Agreement

Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.

If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.

THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.

THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.

This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.

Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.

Contents

i. Abstract

This standard defines how to encode and share the various movements of geographic features by using JavaScript Object Notation (JSON). It provides an alternative encoding for OGC Moving Features instead of that provided in the XML Core [OGC 14-083r2] and Simple CSV [OGC 14-084r2] standards. A moving feature, for instance a vehicle or a pedestrian, contains a temporal geometry whose location continuously changes over time and dynamic non-spatial attributes whose values vary with time. This Moving Features JSON encoding defines a set of keywords to implement the conceptual schema of moving features defined in ISO 19141:2008 [ISO 19141:2008], accompanied with IETF GeoJSON Format [IETF RFC 7946].

ii. Keywords

The following are keywords to be used by search engines and document catalogues.

ogcdoc, OGC document, moving features, encoding, JSON

iii. Preface

This document specifies JSON encodings for the implementation of the conceptual schema of moving features defined in ISO 19141:2008, i.e., features whose locations change over time. OGC Moving Features Encoding standards XML Core [OGC 14-083r2] and Simple CSV [14-084r2] have focused on the movement of 0-dimensional geometric primitives (Points), called trajectories. In addition, the ISO schema excludes deformation and changes of non-spatial attributes of the feature. However, there are requirements to represent and share the movements of 1-dimensional curve LineStrings, 2-dimensional surface Polygons, and 3-dimensional solid polyhedrons with time-varying non-spatial attributes in various application areas including: Location Based Services, Intelligent Transportation Systems, Disaster Risk Management Systems, and Smart City Applications. For example, the traffic congestion on roads and the hotspot of air pollution are typical moving features in the real world.

Therefore, OGC Moving Features JSON (MF-JSON) encodings define data members for one-parameter geometries and properties of the moving feature in time, not only trajectory. MF-JSON is inspired by the IETF GeoJSON Format [IETF RFC 7946].

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.

iv. Submitting organizations

The following organization have submitted this Document to the Open GeoSpatial Consortium, Inc.

  • Artificial Intelligence Research Center, National Institute of Advanced Industrial Science and Technology

  • Defense Systems Company, Hitachi, Ltd.

  • Pusan National University

v. Submitters

All questions regarding this submission should be directed to the editor or the submitters.

Name

Organization

Kyoung-Sook KIM

Artificial Intelligence Research Center, National Institute of Advanced Industrial Science and Technology

Taehoon KIM

Artificial Intelligence Research Center, National Institute of Advanced Industrial Science and Technology

Nobuhiro ISHIMARU

Defense Systems Company, Hitachi, Ltd.

Ki-Joune LI

Pusan National University

1. Scope

This document defines the structure and content of JSON (JavaScript Object Notation) [IETF RFC7159] encoding implementation of the conceptual model for moving features described in ISO 19141:2008. A moving feature is a geographic feature whose location changes over time containing zero or more thematic attributes. Such a feature may be a car, a pedestrian, an airplane, a ship, or something alike. The geometry of a moving feature to express its motion is defined as a one parameter set of geometries that may be viewed as a set of leaves or a set of trajectories as shown in the Figure 1. A leaf represents the geometry of the moving feature at a particular value of the parameter (e.g., a point in time) and a trajectory is a curve that represents the path of a point in the geometry of the moving feature as it moves with respect to the parameter (e.g., time).

Conceptual Moving Feature
Figure 1. Feature Movement: trajectory, leaf, foliation, and prism [ISO 19141:2008]

In the illustration above, a 2D rectangle moves, rotates, and shrink through time. Each representation of the rectangle at a given time (e.g., stem 69ac49315fb75559bc7125a373ed5735, stem 76a9c0f8e913d97ec097e88ed8232da5, and stem 990bbd241420ec38a3a9ce341c2838e9) is a leaf. The path traced by each corner point of the rectangle (and by each of its other points) is a trajectory. The set of points contained in all of the leaves, and in all of the trajectories, forms a prism. The set of leaves also forms a foliation, meaning that there is a complete and separate representation of the geometry of the feature for each specific time. If viewed in a 4 dimensional spatiotemporal coordinate system, the points on the feature’s geometry at different times are different points.

This standard for Moving Features JSON encodings is inspired by IETF GeoJSON Format [IETF RFC 7946] to describe two types of dynamic attribute of a feature or feature collection in a JSON document as follows:

  • Temporal geometry: The spatial change over time, representing the movement of the rigid or nonrigid body of a feature; and

  • Temporal property: The thematic change over time, representing the variation of the value of any descriptive characteristic of a feature.

This JSON encoding provides an alternative to the OGC® Moving Features Encodings XML Core [OGC 14-083r2] and Simple Comma Separated Values (CSV) [OGC 14-084r2] standards by using IETF GeoJSON [IETF RFC 7946]. Moreover, this encoding can encompass the movement of 1-dimensional, 2-dimensional, 3-dimensional geometric primitives, and their aggregation, as well as moving points and their trajectories. For example, the representation of the following phenomena in a spatiotemporal domain is in the scope of this standard:

  • Discrete phenomena, which exist only on a set of instants, such as road accidents;

  • Step phenomena, where the changes of locations are abrupt at an instant, such as administrative boundaries; and

  • Continuous phenomena, whose locations move continuously for a period in time, such as vehicles, typhoons, or floods.

This standard does not address partial motions of parts of bodies in a primitive movement and the dimensional deformation of the feature (e.g., from 1-d geometry to 0-d geometry). Also, the succession of either features or their association(s) is out of scope in this standard.

2. Conformance

This standard defines 2 requirements classes with URIs:

with two accompanying conformance classes with URIs:

Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site.

3. References

The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.

  • OGC: OGC 18-005r4, OGC Abstract Specifications - Topic 2 - Spatial referencing by coordinates, version 5.0, 2019.

  • OGC: OGC 15-042r3, TimeseriesML 1.0 – XML Encoding of the Timeseries Profile of Observations and Measurements, version 1.0, 2016.

  • OGC: OGC 14-083r2, OGC Moving Features Encoding Part I: XML Core, 2015.

  • OGC: OGC 14-084r2, OGC Moving Features Encoding Extension: Simple Comma Separated Values (CSV), 2015.

  • ISO: ISO/IEC Directives, Part 2. Rules for the structure and drafting of International Standards

  • ISO: ISO 8601:2004, Data elements and interchange formats - Information interchange - Representation of dates and time, 2004.

  • ISO: ISO 19101:2014, Geographic information — Reference model — Part 1: Fundamentals, 2014.

  • ISO: ISO 19107:2003, Geographic Information - Spatial schema, 2003.

  • ISO: ISO 19108:2002, Geographic Information - Temporal schema, 2002.

  • ISO: ISO 19141:2008, Geographic information - Schema for moving features, 2008.

  • ISO/IEC: ISO 11179-1:2004, Information technology — Metadata registries (MDR) — Part 1: Framework, 2004.

  • IETF: IETF RFC 3339, Date and Time on the Internet: Timestamps, 2002.

  • IETF: IETF RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, 2005.

  • IETF: IETF RFC 7159, The JavaScript Object Notation (JSON) Data Interchange Format, 2014.

  • IETF: IETF RFC 7464, JavaScript Object Notation (JSON) Text Sequences, 2015.

  • IETF: IETF RFC 7946, The GeoJSON Format, 2016.

4. Terms and Definitions

This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “SHALL” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.

For the purposes of this document, the following additional terms and definitions apply.

4.1. base representation

<moving features> representation, using a local origin and local ordinate vectors, of a geometric object at a given reference time
[ ISO 19141:2008 ]

NOTE 1: A rigid geometric object may undergo translation or rotation, but remains congruent with its base representation.
NOTE 2: The local origin and ordinate vectors establish an engineering coordinate reference system (ISO 19111), also called a local frame or a local Euclidean coordinate system.

4.2. coordinate

one of a sequence of n numbers designating the position of a point in n-dimensional space
[ OGC 18-005r4 ]

NOTE: In a coordinate reference system, the coordinate numbers are qualified by units.

4.3. coordinate reference system

coordinate system that is related to an object by a datum
[ OGC 18-005r4 ]

NOTE: For geodetic and vertical datums, the object will be the Earth.

4.4. curve

1-dimensional geometric primitive, representing the continuous image of a line
[ ISO 19107:2003 ]

NOTE: The boundary of a curve is the set of points at either end of the curve. If the curve is a cycle, the two ends are identical, and the curve (if topologically closed) is considered to not have a boundary. The first point is called the start point, and the last is the end point. Connectivity of the curve is guaranteed by the "continuous image of a line" clause. A topological theorem states that a continuous image of a connected set is connected.

4.5. domain

well-defined set
[ ISO 19109:2015 ]

4.6. dynamic attribute

characteristic of a feature in which its value taken from the domain of the feature attribute type varies with time

4.7. encoding

conversion of data into a series of codes
[ ISO 11179-1:2004 ]

4.8. engineering coordinate reference system

coordinate reference system based on an engineering datum
[ OGC 18-005r4 ]

EXAMPLES: Local engineering and architectural grids; coordinate reference system local to a ship or an orbiting spacecraft.

4.9. feature

abstraction of real world phenomena
[ ISO 19101:2014 ]

4.10. feature attribute

characteristic of a feature
[ ISO 19109:2015 ]

Note: A feature attribute type has a name, a data type, and a domain associated with it. A feature attribute instance has an attribute value taken from the domain of the feature attribute type.

4.11. feature collection; collection

a set of features from a dataset

NOTE: In this specification, 'collection' is used as a synonym for 'feature collection.'
This is done to make, for example, URI path expressions shorter and easier to understand for those who are not geo-experts.

4.12. foliation

one parameter set of geometries such that each point in the prism of the set is in one and only one trajectory and in one and only one leaf
[ ISO 19141:2008 ]

4.13. geometric object

spatial object representing a geometric set
[ ISO 19107:2003 ]

NOTE: A geometric object consists of a geometric primitive, a collection of geometric primitives, or a geometric complex treated as a single entity. A geometric object may be the spatial representation of an object such as a feature or a significant part of a feature.

4.14. geometric primitive

geometric object representing a single, connected, homogeneous element of space
[ ISO 19107:2003 ]

NOTE: Geometric primitives are non-decomposed objects that present information about geometric configuration. They include points, curves, surfaces, and solids.

4.15. instant

zero-dimensional geometric primitive representing position in time
[ ISO 19108:2002 ]

4.16. leaf

<one parameter set of geometries> geometry at a particular value of the parameter
[ ISO 19141:2008 ]

4.17. life span

period during which something exists
[ ISO 19108:2002 ]

4.18. motion

a change in position measured by distance and time

4.19. moving feature

feature whose position changes over time

NOTE: The base representation for a moving feature uses a local origin and local coordinate vectors of a geometric object at a given reference time.

4.20. one parameter set of geometries

function stem 8fa14cdd754f91cc6554c9e71929cce7 from an interval stem 7ff2f9c2833bd24ced8b8a54454bcd5e[stem 51718398f14c2c7248fa166b1c749400] such that stem d6e3af948a34fd5f432cb9d377a98ef0 is a geometry and for each point stem b7497c178959ce52db95699f08f6157a there is a one parameter set of points (called the trajectory of stem 44c29edb103a2872f519ad0c9a0fdaaa) stem 5c144bce6a6c3751eaca0a1e85db07ac: [stem 51718398f14c2c7248fa166b1c749400] stem 93445139bf1a1d233d286dcdd07665e0 such that stem b4bda91854c268b02905e8246016231f
[ ISO 19141:2008 ]

EXAMPLE: A curve C with constructive parameter (variable) t is a one parameter set of points c(t).

4.21. one parameter set of values

function stem 8fa14cdd754f91cc6554c9e71929cce7 from an interval stem 7ff2f9c2833bd24ced8b8a54454bcd5e[stem 51718398f14c2c7248fa166b1c749400] such that stem d6e3af948a34fd5f432cb9d377a98ef0 is a measure value stem 6f8f57715090da2632453988d9a1501b in a plane with coordinate stem b4f3e878d2ea92761b7584abb6bc48b7

4.22. parametric coordinate reference system

coordinate reference system based on a parametric datum
[ OGC 18-005r4 ]

4.23. parametric datum

datum describing the relationship of a parametric coordinate system to an object
[ OGC 18-005r4 ]

NOTE The object is normally the Earth.

4.24. period

one-dimensional geometric primitive representing extent in time
[ ISO 19108:2002 ]

NOTE: A period is bounded by two different temporal positions.

4.25. position

data type that describes a point or geometry potentially occupied by an object

4.26. prism

<one parameter set of geometries> set of points in the union of the geometries (or the union of the trajectories) of a one parameter set of geometries
[ ISO 19141:2008 ]

4.27. temporal coordinate reference system

coordinate reference system based on a temporal datum

4.28. temporal datum

datum describing the relationship of a temporal coordinate system to an object

4.29. temporal geometry

one parameter set of geometries in which the parameter is time

4.30. trajectory

path of a moving point described by a one parameter set of points
[ ISO 19141:2008 ]

4.31. value

element of a type domain
[ ISO/IEC 19501:2005 ]

5. Conventions

This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, or special notes regarding how to read the document.

5.1. Identifiers

The normative provisions in this specification are denoted by the URI

All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.

All examples in this document are informative only.

5.2. JSON notation

The notation of JSON in this document is based on the specification of [RFC 7159].

The ordering of the members of any JSON object must be considered irrelevant. Some examples use a JavaScript single line comment (//) and an ellipsis (…​) as placeholder notation for a specific JSON instance. Whitespace is used in the examples inside this document to help illustrate the data structures, but is not required. Unquoted whitespace is not significant in JSON.

5.3. UML notation

Unified Modeling Language (UML) static structure diagrams appearing in this document are used as described in Subclause 5.2 of OGC Web Services Common [OGC 06-121r9].

5.4. Abbreviated terms

The following symbols and abbreviated terms are used in this standard:

CRS

Coordinate Reference Systems

CSV

Comma Separated Values

IETF

Internet Engineering Task Force

ISO

International Organization for Standardization

JSON

JavaScript Object Notation

OGC

Open Geospatial Consortium

UML

Unified Modeling Language

URI

Uniform Resource Identifiers

URL

Uniform Resource Locators

XML

Extensible Markup Language

0D

Zero Dimensional

1D

One Dimensional

2D

Two Dimensional

3D

Three Dimensional

6. Overview of Moving Features JSON Encodings (Informative)

This document provides an alternative to the OGC® Moving Features Encodings XML Core [OGC 14-083r2] and Simple Comma Separated Values (CSV) [OGC 14-084r2] standards by using JSON objects that are easily readable by machines and by humans. The JSON encoding formats for sharing moving feature data specified in this document leverages IETF GeoJSON [IETF RFC 7946] that has already been commonly used in many applications and is well-supported by tools and software libraries. This standard defines two JSON encoding forms: MF-JSON Trajectory and MF-JSON Prism. If an application focuses on only the linear movement (i.e., the spatiotemporal line string) of moving points based on World Geodetic System 1984, with longitude and latitude units of decimal degrees, and the ISO 8601 standard for representation of dates and times using the Gregorian calendar, the application can share the trajectory data by using only IETF GeoJSON, called MF-JSON Trajectory. For other cases, MF-JSON Prism can be used for expressing more complex movements of moving features. MF-JSON Prism is a GeoJSON-like format reserving new members of JSON objects (`"temporalGeometry," "temporalProperties," "crs," "trs," "time," and others) as "foreign members" to represent spatiotemporal geometries, variations of measure, coordinate reference systems, and the particular period of moving features in a JSON document. Figure 2 presents the overview of two forms of Moving Features JSON encodings.

mf-encodings
Figure 2. JSON encodings for moving feature data
Coordinate Reference System (CRS)
The IETF GeoJSON format recommends a single coordinate reference system based on World Geodetic System 1984, with longitude and latitude units of decimal degrees. However, a moving feature needs a temporal coordinate system and may require an engineering coordinate reference system or parametric coordinate reference system to represent the movement of the geometry of the feature in the case of an application request. Therefore, MF-JSON Prism includes the "crs" field as described in GeoJSON "prior arrangement" (also known as GeoJSON:2008[4]).
The existing GeoJSON implementation can ignore the new members of "temporalGeometry", "temporalProperties", "trs", and "time" in an MF-JSON document if there is no processing module for foreign members.

Figure 3 illustrates an example of the movement of a hurricane with a time-varying 2-dimensional geometry as a moving feature. Suppose the pressure centroid of the hurricane reported four locations at time stem e31bffac2b0ef4519858e670c4bf2814, and stem 364e0a98fc167ee2428b1da6b2b0485f. Its trajectory may be drawn (depending on the interpolation method) between two consecutive locations, such as stem 7fc56270e7a70fa81a5935b72eacbe29 (linear) or stem 9d5ed678fe57bcca610140957afab571 (Quadratic). ISO 19141:2008 defines a conceptual schema of a moving feature based on geometry types as shown in Figure 4. The ISO conceptual schema represents the motion consisting of translation and/or rotation of a moving feature, but not including deformation of the geometry, over time.

mf-hurricane
Figure 3. Example of a moving feature: a hurricane and its properties
Components
Figure 4. Components of the moving feature packages in ISO 19141:2008

The data model defined in ISO 19141:2008 is based on two geometric types: MF_OneParamGeometry and MF_Trajectory. MF_OneParamGeometry is the type to describe a function stem 8fa14cdd754f91cc6554c9e71929cce7 from an interval stem 7ff2f9c2833bd24ced8b8a54454bcd5e[stem 51718398f14c2c7248fa166b1c749400] such that stem d6e3af948a34fd5f432cb9d377a98ef0 is a geometry. A leaf of a one parameter set of geometries is the geometry stem d6e3af948a34fd5f432cb9d377a98ef0 at a particular value stem e358efa489f58062f10dd7316b65649e of the parameter. MF_Trajectory describes a one-parameter geometry whose cross section is a point as a leaf. MF_OneParamGeometry and MF_Trajectory is specialized as MF_TemporalGeometry and MF_TemporalTrajectory respectively, when the parameter is time representing a multiple of a single unit of measure such as year, day, or second for those types. MF_TemporalTrajectory is also a sub-type of MF_TemporalGeometry. The OGC Moving Features XML and CSV standards only provide the encoding formats to represent linear trajectories of moving points as instances of MF_TemporalTrajectory, typically representing vehicles or pedestrians. A sample data of OGC Moving Features XML and CSV encoding is provided in Annex B.1. However, Moving Features JSON Encodings can cover MF_TemporalGeometry, MF_PrismGeometry, and MF_RigidTemporalGeometry.

7. Moving Features JSON Encodings

This clause specifies the structure and content of the JSON [IETF RFC7159] encoding implementation for the conceptual model of moving features described in ISO 19141:2008. MF-JSON has two encoding formats: MF-JSON Trajectory for instances of the MF_TemporalGeometry type with linear interpolation and MF-JSON Prism that contains new members to describe instances of the MF_PrismGeometry (or MF_RigidTemporalGeometry) type in the ISO conceptual model.

An object in this specification is a JSON object. The JSON object is an unordered collection of zero or more name/value pairs, where a name is a string and a value can be a JSON null, true, false, string, number, array, or object. An array consists of elements where each element is a value as a JSON null, true, false, string, number, array, or object.

In an MF-JSON object, there are three types of members: MANDATORY, OPTIONAL, and DEFAULT.

MANDATORY

If an object member is mandatory, its value SHALL NOT be a JSON null value. The mandatory member of an object and its value SHALL appear in a MF-JSON document.

DEFAULT

If an object member is default, the member is mandatory and has a default value defined in this specification when its pair (member/value) does not appear in a MF-JSON document.

OPTIONAL

If an object member is optional, its value allows a JSON null value. If the number has a JSON null value, its pair can be omitted from a MF-JSON document.

7.1. MF-JSON Trajectory Encoding

MF-JSON Trajectory specifies how to map/interpret linear trajectories of moving points into/from the GeoJSON [IETF RFC 7946] object. This encoding is based on the data model of mf:MovingFeatures defined in OGC Moving Features XML Core [OGC 14-083r2].

The mf:MovingFeatures Class is implemented by mf:Foliation including movements of moving points, which are instances of mf:LinearTrajectory. In XML Core, the mf:LinearTrajectory Class is expressed by a single spatiotemporal segment with linear interpolation, having two elements of gml:PosList and mf:Attr, as well as three attributes of mfIdRef, start, and end. The mfIdRef attribute is the text specifying the moving feature (i.e., person ID, vehicle ID, etc.). The start and end attribute of mf:LinearTrajectory describes the temporal offset from the gml:beginPosition element in the mf:sTBoundedBy Class. Two or more coordinate tuples are specified in gml:posList and linearly interpolated from time start to end. The mf:Attr element contains the attribute information as a text. The values of the attributes are constant while the feature moves along the mf:LinearTrajectory. The detailed description refers to OGC Moving Features XML Core[OGC 14-083r2].

The UML diagram for MF-JSON Trajectory is depicted in Figure 5.

mf-trajectory-uml
Figure 5. Class diagram for MF-JSON Trajectory

Comparing to the segment-based encodings of OGC XML Core and CSV, MF-JSON Trajectory encodes a spatiotemporal linestring or a collection of linestrings to reduce the size of a GeoJSON document. The spatiotemporal linestring is a one-dimensional object representing a sequence of spatiotemporal points and the trajectory segments connecting them. The GeoJSON encoding rules of MF-JSON Trajectory are set as follows:

  • An MF-JSON Trajectory document presents an instance of the mf:LinearTrajectory Class or as a GeoJSON Feature or a set of those instances as a GeoJSON FeatureCollection object. An mf:LinearTrajectory instance is mapped into a GeoJSON Feature object with a linestring geometry; i.e., the value of member "type" in the Geometry object is "LineString".

    (GeoJSON) A Feature object represents a spatially bounded thing. A Feature object has, at least 3 members: a "type" member with the value "Feature," a "geometry" member, and a "properties" member. Geometry only has 2 members: "type" and "coordinates." The "type" value of geometry can be one of "Point," "MultiPoint," "LineString," "MultiLineString," "Polygon," "MultiPolygon," and "GeometryCollection." The GeoJSON extensibility is limited by the interpretation of the sentence in the IETF RFC 7946 "Implementations MUST NOT extend the fixed set of GeoJSON types: FeatureCollection, Feature, Point, LineString, MultiPoint, Polygon, MultiLineString, MultiPolygon, and GeometryCollection."
  • The identifier of a moving feature (i.e., mfIdRef) is mapped into the member named "id" of the GeoJSON Feature object.

    (GeoJSON) If a Feature has a commonly used identifier, that identifier is included as a member of the Feature object with the name "id," and the value of this member is either a JSON string or number.
  • The value of the "coordinates" member of a linestring geometry object has two or more positions that draws a sequence of trajectory segments. Each position is each projection in the spatial domain. All trajectory segments that have the same identifier are merged into a linestring geometry object as long as any consecutive segments meet each other at a time instant.

    (GeoJSON) A position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element. The coordinate reference system for all GeoJSON coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84)[1] datum, with longitude and latitude units of decimal degrees.
  • The "properties" member of a GeoJSON Feature object has a member with the name "datetimes". The value of the "datetimes" member is an array of a sequence of monotonic increasing time instants, having the same number of positions of the "coordinates" member. The value of a time instant is a JSON string using Z (e.g., 1985-04-12T23:20:50.52Z) encoded by IETF RFC 3339, an Internet profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar, or a numeric value of milliseconds since midnight (00:00 a.m.) on January 1, 1970 in UTC (e.g., 1465621816590).

    (GeoJSON) A Feature object has a member with the name "properties." The value of the properties member is an object (any JSON object or a JSON null value).
  • If a Feature has any variable attribute by time and its value (i.e., mf:AttrDef and mf:Attr), the attribute can be a member inside the "properties" member with the value of a JSON array, the size of its array can be distinguished into three types as below:

    • The array of a time-varying attribute with step interpolation has elements with one less than the number of positions of the "datetimes" member;

    • The array of a time-varying attribute with linear interpolation has elements with the same number of positions of the "datetimes" member; and

    • The array of a fixed attribute during the whole of "datetimes" has only one element.

      MF-JSON Trajectory considers that a member in the "properties" which has a JSON-array value is a temporal attribute.
  • A set of mf:LinearTrajectory instances is packed in the elements of the "features" member of a FeatureCollection object.

    (GeoJSON) A FeatureCollection object has a member with the name "features". The value of "features" is a JSON array of Feature objects. It is possible for this array to be empty.

A sample data of MF-JSON Trajectory is provided in Annex B.2.

Requirements Class: MF-JSON Trajectory

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory

Target type

JSON object

Dependency

  • ISO 19141

  • IETF RFC 3339

  • IETF RFC 7946

Requirement 1.1

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/GeoJSON
A MF-JSON Trajectory file SHALL contain a LinearTrajectory object or a set of LinearTrajectory objects having a compliance with GeoJSON[IETF RFC 7946].

Requirement 1.2

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/lineartrajectory
A LinearTrajectory object SHALL be a GeoJSON Feature object that has two MANDATORY members of "geometry" and "properties".

Requirement 1.3

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/geometry
The value of the "geometry" member SHALL be a LineString Geometry object, having "type" = "LineString". The number of elements in the array of the "coordinates" value in the Geometry object SHALL more than two positions.

Requirement 1.4

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/properties
The value of the "properties" member SHALL be a GeoJSON object that has at least a member with the named "datetimes". The value of the "datetimes" member is a JSON array. If a Feature has any variable attribute by time and its value, the attribute can be a member inside the "properties" member with the value of a JSON array, the size of its array SHALL be same as 1 (const), N-1 (step), or N (linear). Note that N is the number of elements in the array of the "datetimes" value.

Requirement 1.5

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/datetimes
Each element in the array of the "datetimes" value SHALL be an instant object. An instant object SHALL be only a JSON string to represent a timestamp encoded by the IETF RFC 3339 format using Z or the numeric value of milliseconds since midnight (00:00 a.m.) on January 1, 1970, in UTC.

Requirement 1.6

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/datetimes/monotonic
The array of the "datetimes" value SHALL be a monotonic increasing sequence. There SHALL be no instant object that has the same value as any other element.

Requirement 1.7

http://www.opengis.net/spec/movingfeatures/json/1.0/req/trajectory/constraints
The number of elements in both arrays of the "coordinates" value and the "datetimes" value SHALL be equal.

7.2. MF-JSON Prism Encoding

This clause specifies the format of MF-JSON Prism to implement the package of Prism Geometry defined in ISO 19141:2008 (Figure 6). The package contains five types used to describe the prism of a moving geometric object: MF_PrismGeometry, MF_RigidTemporalGeometry, MF_LocalGeometry, MF_TemporalOrientation, and MF_RotationMatrix. The type MF_PrismGeometry represents the movement of an object through geographic space. MF_RigidTemporalGeometry specializes MF_PrismGeometry, which in turn specializes MF_TemporalGeometry for the case of an object that moves without deformation, where the object’s basic shape is immutable and may be translated or rotated over time. The type MF_LocalGeometry is a geometric object to define the local geometry of the moving object in a engineering coordinate reference system (usually 3D). The engineering coordinate reference system is accessible through the Coordinate Reference System association inherited from GM_Object. The remaining types support description of the possible rotation of such an object.

mf-isoprism
Figure 6. Types of the package of Prism Geomety in ISO 19141:2008

The MF-JSON Prism encoding can represent the movement of MF_PrismGeometry and MF_RigidTemporalGeometry of a feature which may be 0D, 1D, 2D, 3D geometric primitives, or their aggregations. MF-JSON Prism reserves the following members as foreign members in a GeoJSON Feature object that represents a moving feature:

  • The "temporalGeometry" member describes a movement of a moving feature;

  • The "temporalProperties" member describes a set of dynamic non-spatial attributes and their time-dependent values of a moving feature;

  • The "time" member describes the life time of a moving feature;

  • The "trs" member describes a Temporal Coordinate Reference System object referred by time-expression to indicate the time of positions or attributes' values; and

  • The "crs" member describes a Spatial Coordinate Reference System object which relates the positions of features in the real world.

Coordinate Reference System (CRS)
The IETF GeoJSON format recommends a single coordinate reference system based on World Geodetic System 1984, with longitude and latitude units of decimal degrees. However, a moving feature needs a temporal coordinate system and may require an engineering/parametric coordinate reference system to represent the movement of the feature’s geometry (positions) in the case of an application request.

A MF-JSON Prism document may contain JSON objects that represent instances with the following types, as well as primitives types of JSON null, true, false, string, number, and array.

  • TemporalGeometry object (see 7.2.1)

    • TemporalPrimitiveGeometry object (see 7.2.1.1)

    • TemporalComplexGeometry object (see 7.2.1.2)

  • TemporalProperties object (see 7.2.2)

    • ParametricValues object (see 7.2.2.1)

  • CoordinateReferenceSystem object (see 7.2.3)

  • MovingFeature object (see 7.2.4)

  • MovingFeatureCollection object (see 7.2.5)

  • LifeSpan object (see 7.2.6)

  • BoundingBox object (see 7.2.7)

  • Geometry object (see 7.2.8)

  • Properties object (see 7.2.9)

  • MotionCurve object (see 7.2.10)

The schema of MF-JSON Prism is depicted by a UML diagram as shown in Figure 7.