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.


 

i. Abstract

This OGC® Standard specifies standard encoding representations of movement of geographic features. The primary use case is information exchange.

ii. Keywords

Ogcdoc, moving features, CSV

iii. Submitting organizations

The following organizations submitted this Document to the Open Geospatial Consortium (OGC):

Central Research Laboratory, Hitachi Ltd.
Center for Spatial Information Science, The University of Tokyo
Defense Systems Company, Hitachi, Ltd.

iv. Submitters

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

Name Representing OGC member
Akinori Asahara Central Research Laboratory, Hitachi Ltd. Yes
Ryosuke Shibasaki Center for Spatial Information Science, The University of Tokyo Yes
Nobuhiro Ishimaru Defense Systems Company, Hitachi Ltd. Yes
Hiroshi Kanasugi Center for Spatial Information Science, The University of Tokyo Yes
David Burggraf Individual Yes
Gianluca Luraschi EMSA (European Maritime Safety Agency) Yes
Frank Suykens Luciad Yes
Chris Little UK Met Office Yes
Nadeem Anjum Google Summer of Code representative through Apache No
Martin Desruisseaux GEOMATYS Yes
Ki-Joune Li Pusan National University Yes

v. Changes to the OGC® Abstract Specification

The OGC® Abstract Specification does not require changes to accommodate this OGC® standard.

vi. Foreword

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights. However, to date, no such rights have been claimed or identified.

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.

OGC Moving Features consists of the following parts under the general title Moving Features Encoding:

-      Part I:XML Core

-      Part II:Simple CSV

 

vii. Introduction

Applications using moving feature data, typically representing vehicles or pedestrians, are rapidly increasing. Innovative applications are expected to require the overlay and integration of moving feature data from different sources to create greater social and business value. Examples of applications that require integrated simulation are disaster risk management, traffic information services, security services, navigation for robots, aviation or maritime traffic monitoring, and wildlife tracking and conservation. Moreover, systems relying on single-source moving feature data are now evolving into more integrated systems. Integration of moving feature data from different sources is a key to developing more innovative and advanced applications.

 Efforts in this direction therefore should be encouraged by ensuring smoother data exchange because handling and integrating moving feature data will broaden the market for geo-spatial information such as Geospatial Big Data Analysis. ISO 19141:2008 is an existing abstract standard to model moving features; however encoding method is not provided.

Therefore, a comma-separated values (CSV) style encoding for Moving Features is standardized. The defined encoding standard should be ISO 19141:2008 Geographic Information – Schema for moving Features compliant implementation standard applicable for massive data handling.


1. Scope

This OGC® Standard specifies an encoding format to describe the geometries of many features that move as rigid bodies. This OGC® Standard is applicable to features having the following characteristics.

  1. Each moving feature can be described with Schema for Moving Features (ISO19141: 2008).
  2. The number of features simultaneously encoded with this format can be massive (many thousands of features).
  3. All features can be described using common space-time coordinates.

This standard does not address all types of moving features. Examples of features that are out of scope include the following:

  • Deforming features, such as flood water.
  • Feature’s geometric representation should not be encoded inline in a geometric complex that contains the geometric representations of other features, since this would require the other features’ representations to be updated as the feature moves.

This standard is focused on the encoding format, thus Web interface and inertial data models are out of scope also.

2. Conformance

Conformance with this specification shall be checked using all the relevant tests specified in Annex A (normative).

3. Normative References

The following normative documents contain provisions which, through reference in this text, constitute provisions of this part of OGC Moving Features. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. However, parties to agreements based on this part of OGC Moving Features are encouraged to investigate the possibility of applying the most recent editions of the normative documents indicated below. For undated references, the latest edition of the normative document referred to applies.

[IETF RFC 4180] Y. Shafranovich, “Common Format and MIME Type for Comma-Separated Values (CSV) Files”, IETF RFC 4180, October 2005, available at < http://www.ietf.org/rfc/rfc4180.txt>
[IETF RFC 3629] F. Yergeau, “UTF-8, a transformation format of ISO 10646”, IETF RFC 3629, November 2003, available at <http://tools.ietf.org/html/rfc3629>
[IETF RFC 2396] IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax. (August 1998)
[ISO 19141:2008] ISO 19141:2008, Geographic information – Schema for moving features
[ISO 19107:2003] ISO 19107:2003, Geographic information – Spatial schema
[ISO 19123:2005] ISO 19123:2005, Geographic information – Schema for coverage geometry and functions
[XMLSchema-2] W3C XMLSchema-2, XML Schema Part 2: Datatypes. W3C Recommendation (28 Oct 2004)

4. Terms and Definitions

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

4.1 Moving feature

representation, using a local origin and local ordinate vectors, of a geometric objectat a given reference time

 [ISO 19141:2008]

4.2 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.3 geometric object

spatial object representing a geometric set

[ISO 19107:2003]

4.4 leaf

<one parameter set of geometries>

geometry at a particular value of the parameter

[ISO 19141:2008]

4.5 trajectory

path of a moving point described by a one parameter set of points

[ISIO19141:2008]

4.6 one parameter set of geometries

function f from an interval t ∈ [a, b] such that f(t) is a geometry and for each point P ∈ f(a) there is a one parameter set of points (called the trajectory of P) P(t) : [a, b] →P(t) such that P(t) ∈ f(t)

[ISO 19141:2008]

4.7 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.8 period

one-dimensional geometric primitiverepresenting extent in time

[ISO 19141:2008]

4.9 point

0-dimensional geometric primitive, representing a position

[ISO 19107:2003]

4.10 geometric primitive

geometric object representing a single, connected, homogeneous element of space

[ISO 19107:2003]

4.11 vector

quantity having direction as well as magnitude

[ISO 19123:2005]

5. Conventions

5.1 Abbreviated terms

The following symbols and abbreviated are used in this standard;

ISO
     International Organization for Standardization
OGC
     Open Geospatial Consortium
1D
     One Dimensional
2D
     Two Dimensional
3D
     Three Dimensional
CSV
     Comma Separated Values

6. Overview

6.1 Concepts and standard modularity

Figure 1 illustrates the standard components for encoding and communicating Moving Features data.  The four boxes drawn in the figure portray the four modules defined in the OGC® Moving Features standard.

 OGC® Moving Features Simple CSV Encoding and OGC® Moving Features Simple Binary Encoding define most fundamental and are data formats to describe moving points and their trajectories. The formats are designed to encode trajectories of moving points compactly as application schemas of IETF RFC 4180 (CSV), NetCDF Discrete Sampling Geometry and so on.

OGC® Moving Features Core, defined in this document, is represented by an XML data encoding for moving points and their trajectories. The format is an extensible format to model and encode movement data for features encoded as pointgeometries.

OGC® Moving Features 1D/2D Geometry and OGC® Moving Features 3D Geometry are defined to encode moving features that have more complex geometries.

Two UML packages are defined in ISO 19141:2008[ISO 19141:2008]: “Geometry Types” and “Prism Geometry”.  “Geometry Types” defines the description model of movements including the paths. “Prism Geometry” defines the moving geometry. Two squares drawn with broken lines in Fig. 1 correspond to these packages. The square labelled as “<<Prism Geometry>>” is an implementation of “Prism Geometry”; the square labelled as “<<Geometry Types>>” is an implementation of “Geometry Types.”

OGC® Moving Features modularity
Figure : OGC® Moving Features modularity

 

6.2 Data model

The data model used by the CSV encoding is equivalent to that used by [Moving Features Core XML]. Figure 2 shows an example for trajectories of three moving points A, B and C. Each trajectory has the start time and the end time. At t=0 (start of all data), all points start moving. Then, at t =1, the movement of A is changed. In the case, the trajectory of A from t=0 to t=1, the trajectory of A from t=1 to t=2, the trajectory of B from t=0 to t=2, and the trajectory of C from t=0 to t=2 are encoded.

 

Example for three trajectories
Figure : Example for three trajectories

 

7. Fundamental rules

7.1 Data structure

OGC Moving Features Simple CSV is based on [IETF RFC4180] (Common Format and MIME Type for Comma-Separated Values (CSV) Files) except the meta-information like definition of each column.  Basic encoding-rules are listed in Table 1.

Requirement 7.1 (req/simplecsv/csv_valid):

The encoding restrictions of Moving Features Simple CSV are following.

  1. Any line shall be encoded by UTF-8 with LF or CR+LF as the new line character.
  2. The separators shall be comma (,).
  3. Columns shall start and end with double quotations (”) if  the column include double quotations (”).
  4. Any double quotation (”) in a column shall be replaced with two double quotations (””) except the first letter and the final letter of the column.

 

Table 1. Basic encoding-rules (see also [IETF RFC4180])
# property title property setting
1 Character encoding UTF-8 [IETF RFC 3629]
2 New line character either LF or CR+LF
3 Separators comma (, ) [0x2C]
4 Columns Each column starts with a double quotation (“) [] and ends with a double quotation. The double quotations can be omitted if the content does not include any double quotation.
5 Escape sequence A double quotation included by the column content must be replaced to two double quotations (“”).

 

The meta-information is described by “header lines,” which start with “@”[0x40], shown at the top of the moving features data. “Trajectory lines,” which describe trajectories of the moving features, follow the header lines. The structure is illustrated in Figure 3. Several header lines are shown at first. Following the header lines, trajectory lines are written.

Requirement 7.2 (req/simplecsv/overall_structure):

Header lines shall be shown before Trajectory lines.

 

CSV structure
Figure : CSV structure

 

 

 

7.2 Omissible columns

Some types of columns defined by the Moving Features Simple CSV Encoding are omissible. The omitted column is written as an empty column, for example,

@stboundedby,urn:x-ogc:def:crs:EPSG:6.6:4326,2D,50.23 9.23,50.31 9.27,2012-01-17T12:33:41Z,2012-01-17T12:37:00Z,,

 

The last column of the above line is omitted. The omitted column is interpreted as the default value.

8. Header lines

8.1 structure

@[metadata name],[value 1], [value 2]...

 

8.1.1 Description

A header line contains a metadata-name-column and several value-columns. The metadata-name-column, which starts with “@”, specifies type of the meta-information which this line defines. The value-columns set values of the meta-information. For example, if “@stboundedby” is shown, the line defines the spatio-temporal bounding-box of the moving features. The value-columns following “@stboundedby” explicit the geometry of the spatial bounding-box and the time period of the moving features.

Requirement 8.1 (req/simplecsv/headerline):

Any header lines shall start with “@”.

 

8.2 Contents

8.2.1 @stboundedby

@stboundedby,[srid],[dim],[upper_left],[lower_right],[start
  time],[end time],[time encode]

 

The @stboundedby line determines the spatio-temporal boundary of moving features. This line is equivalent to mf:STBoundedBy defined by [OGC Moving Features Core].

Requirement 8.2 (req/simplecsv/stboundedby):

One “@stboundedby” line consistent with the trajectory lines shall be included by the header lines.

 

srid

The spatial reference system used in the moving feature is specified.

dim (omissible)

This column specifies the dimension of geometries.  

-       “2D”(default): 2D data are included

-        “3D”: 3D data are included

upper left

The upper-left corner of the spatial boundary is stated here. x-coordinate and y-coordinate are sequentially written with a separator “ “(white-space).

lower right

The lower-right corner of the spatial boundary is stated here. x-coordinate and y-coordinate are sequentially written with a separator “ “(white-space).

start time

The time before starting of all movements is written in xsd:dateTime style.

end time

The time after ending of all movements is written in xsd:dateTime style

time encode (omissible)

The column shows the unit of time used in the Trajectory lines. “start time” and “end time” are described the offset from the “start time” specified by the @stboundedby line.

-       “sec”(default): the offset described in seconds is encoded in xsd:decimal style.

-       “minute”: the offset described in minutes is encoded in xsd:decimal style.

-       “absolute”: an absolute date time is encoded by xsd:dateTime style.

 

8.2.2 @columns

@columns,”mfidref”,”trajectory”,[VaryingAttrDef(1)
  Name], [VaryingAttrDef(1) Type],…, [VaryingAttrDef(n) Name],
  [VaryingAttrDef(n) Type]

 

Requirement 8.3 (req/simplecsv/column):

Only one “@columns” line shall be included by the header lines.

 

“mfidref”

“mfidref”, which is the first row of each datum, is used in order to identify the moving feature. Thus the first column of the header is always fixed as “mfidref”.

“trajectory”

The second column defines the spatio-temporal geometry of moving features.

VaryingAttrDef(n) Name/Type

The column which defines an attribute used in the foliation is equivalent to mf:VaryingAttrDef [Moving Features Core]. If the moving features do not have any variable attributes, these columns can be omitted.

A pair of the “VaryingAttrDef(n) Name” column and “VaryingAttrDef(n) Type” column defines one varying attribute. “VaryingAttrDef(n) Name” defines the name of the attribute with a xsd:token style text. The “VaryingAttrDef(n) Type” column following the “VaryingAttrDef(n) Name”, which the XSD data type (defined in [XMLSchema-2]  as built-in data types)is used to specify, defines the type of the attribute value. The supported data types used in Moving Features Encoding Simple CSV are listed in the following table.

Table 2. Supported data types
# XSD data type
1 xsd:boolean
2 xsd:decimal
3 xsd:integer
4 xsd:string
5 xsd:dateTime
6 xsd:anyURI

 

Multiple VaryingAttrDef column-pairs can be included by the @columns line in order to define multiple attributes.

 

8.2.3 @foliation (omissible)

@foliation,[order]

 

A @foliation line defines properties of the foliation described in the CSV data. The @foliation line is omissible if all values are set default values.

 

order

Order column defines appearing order of trajectories. The possible values are enumerated in the following code table.

Table 3. code-table for “order” attribute
Attribute values Definitions Default
Time mf:Trajectory elements ordered by time strictly Yes
Sequential mf:Trajectory elements which are parts of one track are ordered by time  

 

9. Trajectory lines (Data body)

9.1 Structure

[mfidref],[start
  time], [end time],[points of linestring],[attr]

 

Description

Trajectory lines contain the spatio-temporal geometries for moving features. The data model of the trajectory lines is equivalent to that of mf:LinearTrajectory defined in [Moving Features Core XML].  mf:LinearTrajectory element is the spatio-temporal line-string, which is similar to gml:LineString. The mf:LinearTrack is a special trajectory that consists of a single segment with linear interpolation.

Requirement 9.1 (req/simplecsv/trajectoryline):

The trajectory lines shall statisfy the following restrictions.

  • The number of columns and the datatype of the columns are consistent with the definition in the header line part.
  • The order of the trajectory lines is consistent with the restriction stated by the @foliation line in the header line part.
  • Any pair of trajectory lines having common ‘mfid’ satisfies the following condition:  start time of one trajectory line is later than or equal to end time of another trajectory line  otherwise end time of one trajectory line is earlier than or equal to start time of another trajectory line.

 

 

9.2 Contents

Trajectory

mfidref

The texts specifying the moving feature (i.e. person ID, vehicle ID, etc.)

start time

The column specifies the start time of the movement. The encoding style is determined in the @stboundedby line.

end time

The column specifies the end time of the movement. The encoding style is determined in the @stboundedby line.

points of linestring

The positions of the trajectory are specified. The x-coordinate value (or longitude),  the y-coordinate value (or latitude) and the z-coordinate value (or elevation) are separated by whitespace characters. A separator between points is similarly a whitespace. If SRS specifies the 2D space, the following encoding style is applied.

[x-coordinate (1)] [y-coordinate (1)] [x-coordinate (2)] [y-coordinate (2)] …

Otherwise, if SRS specifies 3D space, the following encoding style is applied.

[x-coordinate (1)] [y-coordinate (1)] [z-coordinate (1)] [x-coordinate (2)] [y-coordinate (2)] [z-coordinate (2)]…

 

attr

Attr consists of multiple columns which describe the attribute values. An example is following.

12.0,313.1,,4,5,a&lt;b,123

Some characters may need to be escaped here. < (less than), > (greater than), “ (double quotation), ‘ (single quotation), and & (ampersand) must be replaced with the entity references defined in XML. Space, tab, and comma are written in escape sequences \s, \t, and \b, respectively. If the value equals the previous value, the text for the value can be omitted.

10. Example codes

10.1 Example 1: people movements


  @stboundedby,urn:x-ogc:def:crs:EPSG:6.6:4326,2D,50.23 9.23,50.31 9.27,2012-01-17T12:33:41Z,2012-01-17T12:37:00Z,sec
  @columns,mfidref,trajectory,state,xsd:token,”type code”,xsd:integer
  a,10,150,11.0 2.0 12.0 3.0,walking,1
  b,10,190,10.0 2.0 11.0 3.0,walking,2
  a,150,190,12.0 3.0 10.0 3.0,walking,2
  c,10,190,12.0 1.0 10.0 2.0 11.0 3.0,vechicle,1

 

Annex A
(Normative)

Abstract Test Suite

This Annex specifies an Abstract Test Suite which shall be passed in completeness by any implementation claiming conformance with this Moving Features XML Core. Test identifiers below are relative to

http://www.opengis.net/spec/MovingFeatures/1.0/conf/

A.1 Conformance Class:

The OGC URI Identifier of this conformance classes is

http://www.opengis.net/spec/MovingFeatures/1.0/conf/simplecsv

 

A.1.1 CSV Validity
Test id conf/simplecsv/csv-valid
Requirements 7.1 req/simplecsv/csv_valid
Test Purpose Verify that any line of the document is well-formed as CSV .
Test Method Validate the document conformant with IETF RFC4180.

 

A.1.2 Overall structure
Test id conf/simplecsv/overall_structure
Requirements
  • 7.1 req/simplecsv/overall_structure
  • 8.1 req/simplecsv/headerline
Test Purpose Verify that the document consists of header lines and trajectory lines .
Test Method Validate the document has two part. The first part consists of header lines which start with “@” and the second part consists of trajectory lines which do not start with “@”.

 

A.1.3 Spatio-temporal boundary
Test id conf/simplecsv/stboundedby
Requirements 8.2 req/simplecsv/stboundedby
Test Purpose Verify the spatio-temporal boundary is defined.
Test Method Validate that a line starting with @stboundedby is included in the headerlines.

 

A.1.4 Column definition
Test id conf/simplecsv/column
Requirements 8.3 req/simplecsv/column
Test Purpose Verify the spatio-temporal boundary is defined.
Test Method Validate that a line starting with @columns is included in the headerlines.

 

A.1.5 Trajectory definition
Test id conf/simplecsv/trajectory
Requirements 9.1 req/simplecsv/trajectory
Test Purpose Verify that all trajectory lines are valid and consistent with attribute definition at the header line part. In addition, verify the uniqueness of “mfid” at a temporal snapshot.
Test Method Validate that the following conditions are satisfied.
  • The order of trajectory lines is consistent with the @foliation line.
  • The trajectory lines are consistent with attribute definition at the “@columns” line of header line part, namely, the consistency of the number of columns and the data type.
  • Any pair of trajectory lines having common ‘mfid’ satisfies following condition: start time of one trajectory line is later than or equal to end time of another trajectory line, otherwise end time of one trajectory line is earlier than or equal to start time of another trajectory line.

 

 

Revision History

Date Release Author Paragraph modified Description
2014/11/13 OGC 14-084r2 Akinori Asahara 3 W3C XMLSchema-2 was added
2014/11/13 OGC 14-084r2 Akinori Asahara 8.2.3.2 A reference to xsd data types were added