Open Geospatial Consortium |
Submission Date: 2023-05-22 |
Approval Date: 2023-12-19 |
Publication Date: 2026-01-06 |
External identifier of this OGC® document: http://www.opengis.net/doc/IS/CDB-core/2.0 |
Internal reference number of this OGC® document: 23-034 |
Version: 2.0 |
Category: OGC® Implementation Standard |
Editor: Carl Reed, PhD |
OGC CDB Version 2 - Part 1: Core Standard |
Copyright notice |
Copyright © 2026 Open Geospatial Consortium |
To obtain additional rights of use, visit http://www.ogc.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: |
Document stage: Approved |
Document language: English |
License Agreement
Use of this document is subject to the license agreement at https://www.ogc.org/license
Suggested additions, changes and comments on this document are welcome and encouraged. Such suggestions may be submitted using the online change request form on OGC web site: http://ogc.standardstracker.org/
- 1. Introduction: CDB 2.X Key Concepts and Terminology
- 2. Conformance
- 3. References
- 4. Conventions
- 5. Scope and Introduction - Informative
- 6. CDB 2.0 Core Requirements Classes
- 7. Additional Parts - Future Work
- 7.1. Attribution
- 7.2. Coverages
- 7.3. Coordinate Reference System (CRS) Requirements Module
- 7.4. Resource Path and File Naming Requirements Module
- 7.5. File Hierarchy Structure
- 7.6. Geometry
- 7.7. Links
- 7.8. Media Types
- 7.9. CDB Global and Local Resource/Dataset Metadata
- 7.10. Tiling Requirements Module (Abstract)
- 7.11. Tiling Extension (TE) - CDB Global Grid
- 7.11.1. CDB Tiling and the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (Informative)
- 7.11.2. CDB 2.0 CDB1GlobalGridTiling Extension overview (Informative)
- 7.11.3. Tiling Extension Requirements Class
- 7.11.3.1. Conformance with this Clause
- 7.11.3.2. Conformance with OGC Tile Matrix Standard
- 7.11.3.3. Conformance with EPSG:4326 Coordinate Reference System
- 7.11.3.4. Units of measure rule for tile orgins, tile boundaries, and so forth
- 7.11.3.5. Level of Detail (LoD) level 0 rule
- 7.11.3.6. LoD Hierarchy/Tessellation rule
- 7.12. Tiling Extension (TCE) - GNOSISGlobalGrid
- 7.12.1. CDB Tiling and the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (Informative)
- 7.12.2. CDB 2.0 GNOSISGlobalGrid Tiling Extension overview (Informative)
- 7.12.3. Tiling Extension Requirements Class
- 7.12.3.1. Conformance with this Clause
- 7.12.3.2. Conformance with OGC Tile Matrix Standard and GNOSISGlobalGrid definition
- 7.12.3.3. Conformance with EPSG:4326 Coordinate Reference System
- 7.12.3.4. Units of measure rule for tile orgins, tile boundaries, and so forth
- 7.12.3.5. Level of Detail (LoD) level 0 rule
- 7.12.4. Additional Information
- 7.13. Topology Core Requirements Module
- 7.14. Versioning
- Annex A: Abstract Test Suite (Normative)
- Annex B: Annex CDB Design Principles
- Annex C: Annex C Description of the High Level Architecture
- Annex D: Revision History
- Annex E: Bibliography
i. Abstract
CDB Version 2.0 is a major revision to the CDB Standard. The CDB Version 2.0: Core Standard specifies requirements (rules) defining a standardized model and structure for a single, versionable, virtual representation of the earth. The full CDB Standard is comprised of a fundamental core, Parts (extensions to the core), and profiles. The core consists of a suite of mandatory and optional requirements classes and conformance classes that are components in any extension, profile, and implementation. Core requirements can be profiled (restricted). An overarching design principle is that a CDB data store is focused on the ability to store, manage, and access extremely large volumes of geographic content and related assets such as model definitions in as deterministic manner as possible.
A CDB compliant structured data store provides a geospatial content and model repository that is plug-and-play interoperable between applications within a domain and potentially between domains. In the CDB context, a domain represents an information community, such as gaming, tactical analysis, or simulation, that has a common set of requirements for data content including access.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
ogcdoc, OGC document, CDB, simulation, synthetic environment, virtual, gaming, 3D
iii. Preface
This major revision to the OGC CDB Standard is the result of numerous OGC interoperability experiments, "sprints", SWG discussions, and general input and feedback from the OGC Membership, the CDB User base, and the broader Simulation Community. Further, there was a requirement for alignment of the CDB standard with the OGC/ISO standards baseline. In CDB Version 1.0, effort was invested to begin aligning terminology and concepts with the OGC Standards baseline, specifically in the coordinate reference system discussions and requirements. For CDB version 1.1, the primary effort was focused on resolving several Change Requests and adding guidance on incorporating metadata into a CDB data store. Version 1.2 provided requirements and best practices for using the OGC GeoPackage Standard to specify containers for CDB content. The CDB 2.0 major revision completes that trend.
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 organizations submitted this Document to the Open Geospatial Consortium (OGC):
-
CAE Inc.
-
Carl Reed, OGC Individual Member
-
FlightSafety
Organization name(s)
v. Contributors and Endorsing Members
Name |
Affiliation |
Role |
Carl Reed |
Carl Reed & Associates |
Editor |
David Graham |
CAE |
Editor and Contributor |
William Aycock |
The Joint staff |
Contribtior |
Kevin Bentley |
Cognitics |
Contributor |
Paul Foley |
KaDSci LLC |
Contributor |
Ryan Franz |
FlightSafety |
Contributor |
Jérôme Jacovella-St-Louis |
Ecere |
Contributor |
Chris Little |
UK Met Office |
Contributor |
Greg Peele |
Geometric Progress |
Contributor |
Please submit your comments using the following email address: requests@list.opengeospatial.org. The link provided above should include a standard template in the message body. If the preloaded message body does not work properly using your mail client, please refer to the official template for the message body. Please direct comments to the editors named above.
vi. Security Considerations
Security considerations for implementations of a CDB 2.0 compliant datastore are in the domain of the implementing application, deployment platform, operating system and networking environment. The CDB 2.0 Standard does not place any constraints on application, platform, operating system level, or network security.
vi. Future work
The CDB community understands that additional standardization work is required to define and document additional Parts, extensions, profiles, and content appropriate to targeted applications, new use cases, and application in new domains.
The requirements for a CDB data store are focused on the ability to store, manage, and access extremely large volumes of geographic content and related model definitions.
vii. A note on using a CDB Data Store with OGC Standards
The U.S. Department of Defense (DoD) developed the Joint Training Data Services (JTDS) to support rapid scenario generation for the U.S. DoD M&S training community [1]. The recently developed (2014) and deployed JTDS Common Terrain Generation Service (C-TGS) is a cloud-based service for the war fighter. C-TGS provides a robust capability to search, discover and retrieve Modeling and Simulation (M&S) terrain data. JTDS based the C-TGS standard data structure on OGC-approved formats served by OGC Web Services. The goal for the Terrain Generation Service (TGS): Eliminate the current paradigm where every simulation uses a different proprietary format. Current data efforts are fraught with simulation issues and errors, and data mining, correlation and processing to support multiple simulation formats is manpower intensive.
The TGS Solution: Have a repository and user interface that provides access to a single source of data through a persistent web service AND set and enforce a standard data structure based on industry standard Open Geospatial Consortium (OGC) approved formats, to normalize terrain data across Force Development simulations.
The above figure, DoD C-TGS Architecture (Chambers and Sherman, 2014), represents the implementation architecture for C-TGS. Implementation software represents a mix of commercial/proprietary and open source. At the heart of the C-TGS are two data stores: A CDB structured data store and a 3D model data store. All applications at the Visualization and Dissemination level interface the data stores via OGC service interfaces.
Connecting OGC Web Services to an open, simulation-optimized terrain data store, such as a CDB structured data store, results in high-end performance for serving and rendering geospatial content, the ability to dynamically modify terrain and support for all levels of simulation. a high-end simulation system using CDB can dynamically update the terrain (such as a bomb crater) and have that dynamically updated terrain instantly served by the Geospatial Discovery Service to any OGC compliant system, such as Esri® ArcMap, QGIS, or a mobile web page. The underlying architecture and framework of the C-TGS provide a mechanism to move high-end simulation to the point where data sharing, crowd-sourcing, and dynamic terrain are in-sync with GIS tools and simulation system edits of the terrain repository.
1. Introduction: CDB 2.X Key Concepts and Terminology
1.1. Background
This section details key concepts and terminology in the CDB 2.0 Standard and beyond.
1.2. Key Concepts
The following key concepts and definitions are critical to understanding how to read the CDB 2.X Standard, understanding the CDB architecture, and how to define implementable application profiles.
1.2.1. Analysis Ready Data (ARD)
Data that have been processed to a minimum set of requirements and organized into a form that allows immediate use with a minimum of additional user effort for further interoperability both through time and with other datasets. (source: CEOS http://ceos.org/document_management/Meetings/Plenary/30/Documents/5.5_CEOS-CARD4L-Description_v.22.docx). ARD is an abstract concept that can only be implemented in the context of a common domain of application. The CDB 1.x standard specifies how to structure, attribute, and curate geospatial (2d and 3d) data to make that data ready for the simulation domain of application.
Other characteristics of ARD include the following.
-
There is an effort made by the producer to reduce the need for pre-processing by integrating the necessary correction(s) in the product production chain. These corrections are based on the rules (requirements) for generating ARD.
-
Data are made available in easy-to-use formats. These are commonly known and well documented formats that are supported in multiple software products.
-
The product is well documented (metadata) at the product level as well as other levels (such as a layer).
In terms of the architecture, ARD fits well with the requirements specified in an application profile. An application profile of the CDB Core would provide requirements for data content and structure for a given domain, such as simulation or tactical.
1.2.2. Authoritative data
Officially recognized data that can be certified and is provided by an authoritative source.
(SOURCE: Authority and Authoritative Sources: Clarification of Terms and Concepts for Cadastral Data. FGDC/NIST 2008)
1.2.3. Authoritative data source
An information technology (IT) term used by system designers to identify a system process that assures the veracity of data sources. These IT processes should be followed by all geospatial data providers. The data may be original or it may come from one or more external sources all of which are validated for quality and accuracy.
(SOURCE: Authority and Authoritative Sources: Clarification of Terms and Concepts for Cadastral Data. FGDC/NIST 2008)
1.2.4. Data store
A data store is a repository for persistently storing and managing collections of data which include not just repositories such as databases, but also simpler store types such as simple files, metadata, models, etc.
1.2.5. Extension
Requirements class which has a direct dependency on another requirements class.
|
Note
|
Here extension is defined on requirements class so that their implementation may be software extensions in a manner analogous to the extension relation between the requirements classes. A common mechanism to extend the functionality of a specification is to define extensions, which may be either local or encompass other standards. Specifications should use extensions where feasible, but should never hinder them. |
1.2.6. Foundation data
Authoritative data and models that have been curated and stored in a CDB repository. Foundation data uses known and agreed to controlled vocabularies for attribution, has been curated based on the requirements as stated in the CDB standard or some other authoritative source, and supported by required metadata.
For example, as per the CDB 1.3 Standard (and industry best practice), a road network (RoadNetwork dataset in CDB 1.3) could be considered as foundation data. In CDB 1.3, there are a set of requirements associated with how the roads data are structured and attributed and stored in a CDB repository. The specification of any foundation data layer (such as RoadNetwork) at the logical model level can be 100% independent from the storage environment, end user use case(s), and so on while at the same time also having the requirements based on industry knowledge and use case requirements.
Any CDB 2.X foundation data requirements should not mention the actual storage structure, enabling software, storage formats, tiling structure, and so forth.
1.2.7. Profile
Specification or standard consisting of a set of references to one or more base standards and/or other profiles, and the identification of any chosen conformance test classes, conforming subsets, options and parameters of those base standards, or profiles necessary to accomplish a particular function. [ISO/IEC TR 10000-1] In the usage of this standard, a profile will be a set of or extensions to requirements classes or conformance classes (either preexisting or locally defined) of the base standards.
In the CDB 2.0 Standard and later, the requirements and any related extensions are based on the use cases and interoperability requirements of a specific domain or information community. Some example Profiles are could be for tactical training, for gaming, and for flight simulation. All of these and any other defined profiles shall implement and be consistent with conformance classes as defined in the CDB Core Standard.
1.2.8. Standardization target
entity to which some requirements of a standard apply. (The Specification Model — A Standard for Modular specifications)
For the CDB Standard, the standardization target for the core would be any extension, application profile and implementation of a CDB data store conformant with the core. So, for example, the standardization target for an extension would be the core conformance class. Specifically, every requirements class in a standard shall have a standardization target type which is a subtype of that of the core and shall have the core as a direct dependency.
|
Note
|
The standardization target is the entity which may receive a certificate of conformance for a requirements class. |
2. Conformance
This CDB 2.0 Core Standard defines a minimal Abstract Test Suite in Annex A.
The standardization target type for all Core requirements modules and requirements is a CDB Datastore.
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.
The CDB 2.0 Core is comprised of a set of requirements modules. Each requirements module specifies requirements and recommendations that an implementation of a CDB Application Profile may have to implement. The single conformance class in this Standard specifies the minimum set of requirements classes that SHALL be implemented in any CDB 2.0 and later CDB datastore.
The following are the Mandatory Requirements classes. Any (application) profile or profile with extensions of the CDB 2.0 and later core requirements classes SHALL specify conformance classes for these mandatory requirements classes.
| Requirements class | Suggested URI |
|---|---|
http://www.opengis.net/spec/CDB/2.0/conf/<name>file-structure |
|
|
Note
|
The <name> refers to the name of the application profile (profile or profile with extensions). For example, if the application profile specifies the requirements for a CDB datastore based on the OGC GeoPackage Standard, then <name> could be gpkg.
|
|
Note
|
The CDB 2.0 Core Standard does not mandate a specific encoding or format for representing any content. |
3. References
Normative References
-
Internet Engineering Task Force (IETF). RFC 3339: Date and Time on the Internet: Timestamps [online]. Edited by G. Klyne, C. Newman. 2002 [viewed 2020-03-16]. Available at http://tools.ietf.org/rfc/rfc3339.txt
-
Berners-Lee, T., Fielding, R., Masinter, L: IETF RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, http://tools.ietf.org/rfc/rfc3986.txt
-
Internet Engineering Task Force (IETF). RFC 8288: Web Linking [online]. Edited by M. Nottingham. 2017 [viewed 2020-03-16]. Available at http://tools.ietf.org/rfc/rfc8288.txt
-
ISO 8601-1:2019, Date and time - Representations for information interchange - Part 1: Basic rules
-
ISO/OGC: ISO 19111:2019 and OGC 18-005r4 OGC Abstract Specification Topic 2: Referencing by coordinates, 2019 http://docs.opengeospatial.org/as/18-005r4/18-005r4.html
-
ISO/TC 211: ISO 19115-1:2014 Geographic information — Metadata — Part 1: Fundamentals, 2014 https://www.iso.org/standard/53798.html
-
ISO/TC 211: ISO/WD 19123-1 Geographic information — Schema for coverage geometry and functions — Part 1: Fundamentals, 2005 https://www.iso.org/standard/70743.html
-
Whiteside, A., Greenwood, J.: OGC Web Services Common Standard, version 2.0, OGC 06-121r9
-
OGC: OGC 12-128r15, GeoPackage Encoding Standard - with Corrigendum, 2018 https://www.opengeospatial.org/standards/geopackage
-
Herring, J.: OGC 06-104r4,OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option, http://portal.opengeospatial.org/files/?artifact_id=25354
-
van den Brink, L., Portele, C., Vretanos, P.: OGC 10-100r3, Geography Markup Language (GML) Simple Features Profile, http://portal.opengeospatial.org/files/?artifact_id=42729
-
Reed, C. 19-014r3, OGC Abstract Specification Topic 22 - Core Tiling Conceptual and Logical Models for 2D Euclidean Space, 2020-10-12, https://docs.ogc.org/as/19-014r3/19-014r3.html
4. Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML or JSON schema, or special notes regarding how to read the document.
4.1. Standards Document Terms
Many of the terms used in the CDB Standard, such as requirement and requirements class, are used to ensure that any OGC Standards document is specified as clearly and unambiguously as possible. For example, a requirement is an "expression in the content of a document conveying criteria to be fulfilled if compliance with the
document is to be claimed and from which no deviation is permitted". The standards terms are defined in the OGC Specification Model — A Standard for Modular specifications [OGC-08-131r3]
As many readers of this Standard may not be familiar with the OGC Modular Specification, some key terms and definitions from the Mod Spec used in the CDB Standard are provided here.
conformance test: set of conformance tests that must be applied to be considered conformant. Typically each stated requirements class will have a related conformance class.
core requirements class: one of more unique requirements classes that must be satisfied by any conformant standardization targets associated to the standard. The CDB Core Standard specifies a related suite of core requirements classes group into requirements modules.
direct dependency (of a requirements class): another requirements class (the dependency) whose requirements are defined to also be requirements of this requirements class. An example in the CDB Core is that the Geometry Requirements Module has a dependency on the OGC Simple Features Standard which itself has a dependency on the ISO/OGC 19107, Geographic information ⎯ Spatial schema.
extension (of a requirements class): requirements class which has a direct dependency on another requirements class that may or may not be part of the core. In the CDB Standard, an extension is defined on requirements class so that their implementation may be software extensions in a manner analogous to the extension relation between the requirements classes.
profile: In the usage of this standard, a profile will be a set of requirements classes or conformance classes (either preexisting or locally defined) of the base standards. This is typically referred to as a restricted subset.
recommendation: expression in the content of a document conveying that among several possibilities one is
recommended as particularly suitable, without mentioning or excluding others, or that a certain
course of action is preferred but not necessarily required, or that (in the negative form) a certain
possibility or course of action is deprecated but not prohibited.
requirement: expression in the content of a standard conveying criteria to be fulfilled if compliance with the
standard is to be claimed and from which no deviation is permitted.
requirements class: aggregate of all requirement modules that must all be satisfied to satisfy a conformance test class.
requirements module: aggregate of requirements and recommendations of a standard against a single
standardization target type.
standardization target: entity to which some requirements of a standard apply. In CDB, the standardization target is a CDB Compliant Data Store.
4.2. Identifiers
The normative provisions in this standard are denoted by the URI namespace
http://www.opengis.net/spec/cdb/2.0/core
All requirements that appear in this document are denoted by partial URIs which are relative to the namespace shown above.
For the sake of brevity, the use of “req” in a requirement URI denotes:
http://www.opengis.net/spec/cdb/2.0
An example might be:
/req/core/crs
All conformance tests that appear in this document are denoted by partial URIs which are relative to the namespace shown above.
For the sake of brevity, the use of “conf” in a requirement URI denotes:
http://www.opengis.net/spec/cdb/2.0/core
4.4. HTTP URIs
This document does not restrict the lexical space of URIs used in the API beyond the requirements of the HTTP and URI Syntax IETF RFCs. If URIs include reserved characters that are delimiters in the URI subcomponent, these have to be percent-encoded. See Clause 2 of RFC 3986 for details.
4.5. CDB XML Schema Definitions
Historically, the CDB standard made extensive use of XML. XML was used to:
-
Describe CDB metadata,
-
Encode controlled vocabularies and enumerations,
-
Encode global metadata,
-
Add attributes,
-
Add information to 3d models, such as an OpenFlight model,
-
To describe base and composite materials,
-
And other key information.
In the CDB 2.0 Core modules, specific encoding technologies such as XML or JSON are not specified. The Core requirements are agnostic to any particular encoding. This is because metadata, vocabularies, enumerations, and so forth could be encoded in any number of technologies including database tables. As such, CDB application profiles restrict and define which encoding technology is used.
Regardless of the encoding technology, CDB 2.0 (and later) still provides a number of controlled vocabularies and enumerations. These were integral to the success of earlier CDB versions and are provided in version 2.x as optional but recommended. In CDB 1.2 and earlier, these files were located in the \CDB\Metadata\Schema subdirectory of a CDB datastore.
In CDB 2.x, these vocabularies may be referenced by URI, stored in a database table, or stored in some file in a file system (including the Cloud). The traditional XML metadata and controlled vocabulary schema and files are provided as part of the CDB 2.x Standard. They are identical to those provided in CDB 1.3.
The schemas provided with the CDB Standard that can be used as is, replaced, or extended are:
Vocabulary/Schema Name |
O/C/M |
Description |
BaseMaterialTable.xsd |
C |
Defines the format of the CDB Base Material Table |
Materials.xml |
C |
The CDB Base Material Table. This file contains the base material names for a CDB datastore. |
CompositeMaterialTable.xsd |
C |
Defines the format of a CDB Composite Material Table (CMT) - a collection of substrates each made of base materials. |
Configuration.xsd |
O |
Defines the configuration of one logical CDB |
Configuration.xml |
O |
An example is provided with the CDB standard of what could be in this file. |
Datasets.xsd |
M |
XML Schema to define and validate the content of Datasets.xml |
Datasets.xml |
M |
Dataset type enumeration |
Defaults.xsd |
O |
XML Schema to define and validate the content of Defaults.xml |
Defaults.xml |
O |
Defaults values for key attributes or data layers in a CDB datastore. |
DIS_Country_codes.xsd |
C |
Schema to define and validate the content of the country code controlled vocabulary |
DIS_Country_codes.xml |
C |
ISO COuntry Codes as used in CDB version 1.2 |
FeatureDataDictionary.xsd |
M |
Defines the format of the CDB Feature Data Dictionary. |
FeatureDataDictionary.xml |
M |
DIGEST Feature Data Dictionary |
Globalgeometadata.<ext> |
O |
Global geospatial metadata |
Lights .xsd |
C |
Schema to define and validate the content of the CDB Light Names Hierarchy |
Lights.xml |
C |
Lights Hierarchy as defined and use in CDB version 1.3. |
LightsTuning.xsd |
O |
Schema to define and validate the content of a CDB Light Tuning enumeration. |
LightsTuning.xml |
O |
Example of the type of parameters that can be specified for light tuning visualization and modelling. |
Globalgeometadata.<ext> |
O |
Global geospatial metadata |
Model_Components.xsd |
C |
Schema to define and validate CDB Model Components. |
Model_Components.xml |
C |
Sample list of Model Components provided with CDB 1.3 |
Moving_Model_Codes.xsd |
C |
Schema to define and validate the content of the moving model code enumeration. |
Moving_Model_Codes.xml |
C |
Moving model codes as provided in CDB 1.3 |
Model_Metadata.xsd |
O |
Schema defines the metadata associated with 3D models. |
Vector_Attributes.xsd |
O |
Schema to define and validate CDB, Geomatics, and Vendor Vector Attributes as defined in Clause 10 of CDB Volume 1 |
Version.xsd |
M |
All CDB Versions are identified by a file called Version.xml. This schema defines the format of this file. |
|
Note
|
These files/schema have a download location of - Need download location once we know. |
|
Note
|
Type: CV = Controlled Vocabulary, M = Metadata, E = Enumeration |
|
Note
|
M/O: [M = Mandatory, O = Optional, C = Conditional] Conditional indicates that if a specific optional requirements module, such as Lights, is specified in an application profile than that specific controlled vocabulary or enumeration SHALL be used (although modified and.or extended as required) |
|
Note
|
<ext> could be xml for XML, jsn for JSON, and other extensions based on the encoding technology used for the geospatial metadata |
Each of these files is described in more detail later in either a specific core requirements module, such as for Lights, or in a specific application profile.
How these schemas are provided and accessed in a physical implementation of a CDB datastore is specified in the requirements clauses of a CDB Application Profile. However, the CDB 2.x Standard specify requirements and recommendations for naming, accessing, and processing these schemas.
4.5.1. The CDB Namespace
The CDB standard makes use of namespaces to isolate the definitions of required schemas. The name of these namespaces is built around the base CDB URL.
4.5.2. Accessing the CDB global metadata files, controlled vocabularies, and enumerations.
The following is in reference to how global metadata, vocabularies, and enumerations are provided as part of the CDB Standard on the OGC website. These schemas can be used as the source to populate the global metadata folder in a CDB datastore.
The target namespace of all CDB schemas for vocabularies and enumerations follow this pattern:
"http://opengis.net/cdb/Version/Name
Where the Name is identical to the filename or URI portion of the file containing the schema and Version is the version number of the schema.
To illustrate how a target namespace/URI is composed, here is the target namespace for the Lights vocabulary provided as XML schema:
"http://opengis.net/cdb/2.0/Lights.xml"
4.6. CDB Metadata, Controlled Vocabulary, and Metadata Files
There are a number of CDB files that are stored and referenced from the CDB metadata folder. First, some terms are defined
In addition to "traditional metadata" for describing geospatial and other resources, CDB implementations make extensive use of one or more additional controlled vocabularies and enumerations. In CDB 1.1 and earlier, all of these datasets were referred to as metadata. From CDB version 1.2 and later, a distinction is made between metadata about a resource, such as a description, and controlled vocabularies/enumerations.
4.6.1. What is a Controlled Vocabulary?
Controlled vocabularies provide a way to organize knowledge for subsequent retrieval and use. They are used in subject indexing schemes, subject headings, thesauri, taxonomies and other forms of knowledge organization systems. Controlled vocabulary schemes mandate the use of predefined, authorized terms that have been preselected by the designers of the schemes, in contrast to natural language vocabularies, which have no such restriction. The use of controlled vocabularies in standards such as CDB can significantly increase interoperability and consistent understanding of the semantics. Controlled vocabularies typically are managed through formal processes and official governance.
4.6.2. What is an Enumeration?
In computer programming, an enumerated type (also called an enumeration) is a data type consisting of a set of named values called elements, members, or enumerators of the type. The enumerator names are usually identifiers that behave as constants in the language. Similarly, in a database enumerated (enum) types are data types that comprise a static, ordered set of values. They are equivalent to the enum types supported in a number of programming languages. An example of an enum type might be the days of the week, or a set of status values for a piece of data.
4.7. A note CDB Directory File Naming and Structure
A CDB datastore directory and folder structure is defined by a combination of requirements defined:
-
In the File Naming Requirements Class and the File Structure Requirements Class. All content in a single physical CDB datastore instance shall be accessible via the root location structured as sub-directories, folders, or some other hierarchial structure.
-
Additional structure and naming requirements as defined in any CDB 2.0 application profiles or profiles with extensions.
Please note that these requirements can be extended to meet any specific domain or community specific requirements.
The following file extensions are used:
| File Format | Minimal Version Number | Extension |
|---|---|---|
TIFF |
6.0 |
*.tif |
SGI Image |
1.0 |
*.rgb |
JPEG 2000 |
1.0 |
*.jp2 |
OpenFlight |
16.0 |
*.flt |
Shapefile |
Esri White Paper, July 98 |
*.shp, *.shx |
dBASE |
III+ |
*.dbf, *.dbt |
XML |
1.0 and later |
*.xml, *.xsd |
ZIP |
6.3.1 and later |
*.zip |
GeoPackage |
1.1 and later |
*.gpkg |
5. Scope and Introduction - Informative
5.1. Scope
The CDB 2.0 Core Standard defines the mandatory and optional requirements, recommendations, and conformance classes that must be profiled or profiled and extended in any CDB 2.0 and later compliant application profile or implementation. In the CDB 2.0 Standard, requirements and recommendations are organized as aggregates in requirements modules. Some requirements modules, such as Topology, are optional. However if an application profile mandates the use of the Topology requirements module and related conformance classes, then that application profile shall be conformant with the Core Topology Requirements Module.
|
Note
|
The CDB 2.0 Core is abstract and cannot be directly implemented. Therefore, application profiles need to be specified that restrict or restrict and extend requirements that can actually be implemented in an operational environment. For example, the CRS Requirements Module does not specify what CRS should be used for a given CDB datastore. An application profile would clearly state which CRS, such as EPSG 4326, is to be used for a CDB datastore instance. More details are provided below. |
5.2. Introduction - High level CDB 2.0 Architecture
The following figure portrays, at a high level, the CDB 2.0 architecture.
|
Note
|
This diagram is abstract and does not incorporate all aspects and requirements classes defined in the CDB 2.0 Core. |
The OGC CDB 2.0 Standard is comprised of a fundamental core and multiple Parts, each Part being a separate standard. This part, the "Core," specifies the core capabilities and is restricted to being able to define a CDB datastore where geometries and coverages represented in a given CRS represented can be structured, referenced, and stored. Additional capabilities that address more advanced requirements will be specified in additional Parts. Examples include support for Materials, Lights, and textures.
|
Note
|
The Core as specified cannot be directly implemented. The specification of profiles and profiles with extensions are required to provide a requirements framework that can be implemented. That said, the fundamental core does provide and specify two tiling extensions that can be implemented. |
5.2.1. What is a datastore?
The following is from Technopedia.
A datastore is a repository for storing, managing and distributing datasets typically at an enterprise level. Datastore is a broad term that incorporates all types of data that is produced, stored and used by an organization. The term references data that is at rest and used by one or more data-driven applications, services, or individuals.
A datastore may include data from end user database applications, files or documents, or the random data property of an organization or an information system. Data may be structured, unstructured, or in another electronic format.
Depending on the organization, a datastore may be classified as an application-specific datastore, operational datastore or centralized datastore. Moreover, a datastore may be designed and implemented by using purpose-built software or through typical database applications.
5.2.2. Foundation Standards
The CDB 2.0 Standard is grounded in a number of OGC Abstract Specifications, ISO TC 211 91xxx series International Standards, and standards from other Standards Development Organization such as the W3C and the IETF. The OGC Abstract Specification and ISO 19xxx Standards provide the conceptual foundation for many OGC standards development activities. They also provide a conceptual (abstract) foundation for many other geospatial standards development activities in the IETF, W3C, OASIS, and a large number of government organizations. Open interfaces and protocols can be designed, built, and referenced against the Abstract Specification, thus enabling interoperability between different platforms, applications, and different spatial processing systems. The Abstract Specification provides a reference model for the development of standards that can be implemented.
5.2.3. CDB 2 Core
The CDB Core consists of core requirements modules and corresponding conformance classes that any extension, application profile, or implementation of the CDB Standard shall be conformant with. For example, any implementation of an Application Profile (aka Profile) shall inherit and be dependent on the conformance classes as defined and implemented in the Core. In the above diagram, several requirements modules are mandatory. Any application profile (including extensions) shall conform with the requirements stated in those modules. However, if an optional core module is specified in an application profile (including extensions) then that profile shall conform with the requirements stated in those modules.
The CDB Fundamental Core is comprised of a set of abstract requirements modules and related conformance modules. These requirements modules are defined by an aggregate of requirements and recommendations that are abstract in the sense that they cannot be directly implemented. Instead, they need to be profiled or profiled with extensions in order to be implemented. However, any profile, profile with extensions, or implementation of any given requirements class shall be conformant with that core requirements class.
Another key design concept of the Core is that each specified requirements module - as defined by one or more requirements classes - has no dependencies on any other core requirements module. For example the CRS Core Requirements Module has no dependencies on Geometry and visa-versa. The only exception is the metadata core module. More on that below.
|
Note
|
There are very few interdependencies between the core modules. The only exceptions are related to metadata and coordinate reference systems. |
5.2.4. Application Profiles
The CDB 2.0 core is not implementable. While the core consists of requirements classes and related conformance classes, profiles that restrict any given requirement or requirements module are necessary to create a set of requirements and conformance classes that can be implemented. In CDB 2.0, these are called application profiles.
For example, CDB 2.0 Core specifies a Coordinate Reference System (CRS) Requirements Module]. This requirements Module does not mandate which CRS is to be used for a given implementation instance or profile. Instead, that restriction would be specified in a profile or profile with extensions. The CRS requirements module also specifies requirements such as that the ISO/OGC Well Known Text for CRS (WKT for CRS) shall be used to encode the CRS metadata for storage in a CDB datastore.
5.3. Metadata and the CDB Core
The majority of the requirements modules specified in the CDB Core are metadata centric. For example the requirements modules for tiling, feature attribution, or coordinate reference systems are focused on metadata related to the actual tiling structure or the CRS of a given CDB datastore. There are also requirements modules specifically focused on is considered more traditional metadata such as metadata for a given resource (dataset). Additional Parts to the CDB Standard will specify requirements modules related to specific controlled vocabularies such as Lights and Navigation Aids. Again, however, in a broad sense a controlled vocabulary is also metadata.
The determinism design principle is one reason for the focus on metadata in the CDB Core. Metadata elements defined in an application profile of the Core, such as for tiling, feature attribution, and the CRS, provide a well known and documented deterministic structure for both service and client access.
Note: The CDB Core does not address specific metadata required for a given resource or dataset type. For example, the Core does not provide requirements or guidance on all imagery metadata other than a few key metadata elements required for discovery.
5.4. Overview of the CDB Storage Structure
The CDB 2.0 specified storage structure supports efficient searching, retrieval and storage of any information contained within a CDB structured data store. Storage structure aspects include descriptions of each information field used within CDB conformant files, including data types and data type descriptions. The CDB Standard relies on three important concepts to organize a CDB compliant datastore.
-
Tiles: The tiling structure specifies how to geographically divide the world into geodetic tiles (each tile bounded by latitude and longitude), each tile containing a specific set of features (such as terrain altimetry, vectors) and models (such as 3d models and radar cross section models), which are in turn represented by individual datasets. The datasets define the basic storage unit used in a CDB data store. The geographic granularity is at the tile level while the information granularity is at the dataset level. As a result, the CDB storage structure permits flexible and efficient updates due to the different levels of granularity with which the information can be stored or retrieved
-
Layers: The CDB model is also logically organized as distinct layers of information. The layers are notionally independent from each other (i.e., changes in one layer do not impose changes in other layers).
-
Levels-of-Detail (LODs): The use of LOD representations is critical for high performance. Most client-devices can readily take advantage of an LOD structure because, in many cases, less detail/information is necessary at increasing distances from the user perspective. As a result, many client-devices can reduce (by 100-fold or more) the required bandwidth to access data in real-time. The availability of levels-of-detail permits client-devices to deal with data stores having big-data levels of content. The CDB storage model supports a LOD hierarchy consisting of up to 34 LODs. The CDB Standard requires that each geographic area be reduced into a LOD hierarchy in accordance to the availability of source data.
The CDB Standard does not define or enforce an operating system or file system.
6. CDB 2.0 Core Requirements Classes
This clause specifies the requirements classes that comprise the abstract core of the CDB-2.0 Standard. The core requirements classes are unique requirements classes that must be satisfied by any conformant standardization targets associated with the CDB 2.0 and later Standard. Standardization targets may be extensions to this Standard, application profiles based on the core, and implementations of the Standard.
Some of the requirements classes are mandatory (M) for any application profile and implementation. Other requirements classes are optional (O), but any application profile or implementation using the optional requirements classes must be conformant with those classes.
| Requirements Class | M/O | Description |
|---|---|---|
O |
Requirements for encoding and storing attributes in a CDB datastore. |
|
O |
Requirements for specifying coverages in a CDB datastore. |
|
M |
Requirements for the coordinate reference system of a CDB datastore. |
|
M |
Requirements for naming assets in a CDB datastore. |
|
M |
Requirements for the file structure in a CDB datastore. |
|
O |
Requirements for specifying geometry in a CDB datastore. |
|
M |
Specifies requirements for how links are structured. |
|
O |
Specifies enumerations of CDB 2.0 Media Types. |
|
M |
Specifies requirements classes and requirements for global and resource metadata used in a CDB datastore. |
|
O |
Specifies requirements classes and requirements for tiling a CDB datastore at the abstract level. |
|
O |
Requirements module for implementing the CDBGlobalGrid tiling extension. |
|
O |
Requirements module for implementing the GNOSISGlobalGrid tiling extension. |
|
O |
Specifies requirements for topology primitives used in a CDB datastore. |
|
O |
Specifies requirements for versioning used in a CDB datastore implementation. |
7. Additional Parts - Future Work
The OGC CDB 2.0 Standard consists of a fundamental core of mandatory and optional requirements classes and a number of additional Parts. These additional Parts define the requirements classes for such features as Materials and Textures. These Parts have been identified as future work. Many are in draft form but work will not be completed until the fundamental core is approved as an official OGC Standard.
| Module | O/M | Description |
|---|---|---|
3D Models |
O |
Requirements for specifying 3D Models in a CDB datastore. |
Lights |
O |
Requirements for the structure of a lights controlled vocabulary and how new Light types and related metadata can be added to the Lights controlled vocabulary. |
Generation of Materials |
O |
Specifies core requirements for physical materials. |
Textures |
O |
Specifies the requirements for textures in a CDB datastore. |
7.1. Attribution
In the OGC CDB 2.0 and later Standards, each feature can be described by a set of attributes. Attributes are typically nonspatial information about a geographic feature in a GIS, usually stored in a table and linked to the feature by a unique identifier. For example, attributes of a river might include its name, length, and sediment load at a gauging station.
An attribution schema is used to clearly define the characteristics, structure, and internal relationships for attributes for a feature collection. Attribution schemas can be very simple (e.g. and ID and a name) or quite complex (e.g. NSG Application Schema (NAS)). Attribution schemas are the method to handle different types of attributes. CDB attribution schemas files are encoded using either the Extensible Markup Language (XML) or JSON formats. Quite often, intnerational standards exist for classification schemes and their related attribute schemas. Examples are:
-
The Land Cover Classification System (LCCS) developed by FAO to provide a consistent framework for the classification and mapping of land cover.
-
Classification of Wetlands and Deepwater Habitats of the United States
7.1.1. Special consideration
A CDB 2.0 compliant datastore can be implemented using the Attribution rules and requirements as specified in the CDB 1.3 Standard. An example of this approach is provided in the CDB Version 2.0 GeoPackage Profile for CDB 1.x Datastores Standard.
7.1.2. Core Attributes Requirements Class
If the CDB 1.3 approach to attribution is not desired, then the following requirements class should be used.
The following is the CDB 2.0 Attributes Requirements Class.
Requirements Class - Attribution |
|
/req/core/attributes |
|
Target type |
Operations |
Dependency |
Classification scheme or controlled vocabulary |
Requirement Attr1 |
/req/core/attribute-model |
Requirement PAttr1 |
/per/core/attribute-schema-uri |
Requirement Attr2 |
/req/core/attribute-model-content |
7.1.2.1. Attribute Model
An attribute or classification scheme needs to specified. This scheme will be used for all feature data in a given CDB datastore.
Requirement Attr1 |
/req/core/attribute-model |
A |
Any CDB implementation, profile, extension, or application profile specifying and/or implementing attribution for features SHALL specify an attribute model. Examples are provided above. |
B |
The attribute model information SHALL be stored in the |
C |
The name of the attribute model schema file SHALL be |
7.1.2.2. URI - External loation of attribution schema
The following is a permission that a URI may be used to specify the location of the attribution schema.
Permission PAttr1 |
/per/core/attribute-model |
A |
The |
7.1.2.3. Attribute Model Content
A minimal amount of information needs to be contained in the attribution schema.
Requirement Attr2 |
/req/core/attribute-model-content |
A |
Any CDB attribute schema SHALL at a minimum specify elements (fields) as defined below. |
B |
Each attribute in the model SHALL have a unique identifier. |
C |
Each attribute in the model SHALL have a name. |
D |
Each attribute in the model SHALL have a description. |
An example of the mandatory information elements is:
ID |
Name |
Description |
1 |
StreetName |
Name of a street as an alphanumeric string |
2 |
StreetType |
Type street as an alphanumeric string (Interstate, Arterial, . . .) |
3 |
StreetWidth |
Width of street in feet as an integer number) |
7.2. Coverages
In the CDB 1.x series of Standards, raster datasets, elevation models, and other raster/gridded data sets were an integral component of any CDB datastore. As such, the use of these data types is of high importance in any CDB 2.0 and later datastore.
The standard term for these data types is coverage. A coverage is a feature that acts as a function to return values from its range for any direct position within its spatiotemporal domain, as defined in OGC Abstract Topic 6: Schema for coverage geometry and functions
Coverages are represented by some binary or ASCII serialization, specified by some data (encoding) format. Arguably the most popular type of coverage is that of a regular gridded coverage. Gridded coverages have a grid as their domain set describing the direct positions in multi-dimensional coordinate space, depending on the type of grid. For example, satellite imagery and elevation models are typically modeled as a gridded coverage.
Coverages can be encoded in any suitable format such as:
-
The OGC/ISO Geography Markup Language (GML),
-
The OGC GeoTIFF Standard,
-
TIFF,
-
The OGC NetCDF Standard.
Coverage content can also be stored in a database oriented datastore, such as defined in the OGC GeoPackage Tiled Gridded Coverage Standard.
Coverages can be partitioned, such as for a time-interleaved representation. Coverages are independent from service definitions and, therefore, can be accessed through a variety of OGC services types, such as the Web Coverage Service (WCS) Standard or an implementation instance of the OGC API - Coverages Standard. The coverage structure can serve a wide range of coverage application domains, thereby contributing to harmonization and interoperability between and across these domains.
The CDB 2.0 Coverages core requirements module is abstract and optional. However, any extension, application profile or implementation that requires use of coverage data SHALL (Requirement 1 below) comply with the requirements stated in this module.
7.2.1. Terms and definitions relevant to this module
For the purposes of this document, the following additional terms and definitions apply. The definitions for “height” and “depth” are meant to be general and are derived from ISO 19111. However, the reader should note that there ma be domain specific variations or enhancements of the definitions used in this standard.
- Continuous coverage
-
coverage that returns different values for the same feature attribute at different direct positions within a single spatial object, temporal object or spatiotemporal object in its domain. [ISO 19123]
|
Note
|
A continuous (grid) coverage has values not only at the direct positions themselves, but also at any location between the direct positions. In other words, an application can apply interpolation methods to obtain values between direct positions. |
- Coordinate Reference System (CRS)
-
A coordinate system that is related to the real world by a datum. [ISO 19111]
- Coverage
-
A coverage is a function that describe characteristics of real-world phenomena that vary over space and/or time. Typical examples are temperature, elevation and precipitation. A coverage is typically represented as a data structure containing a set of such values, each associated with one of the elements in a spatial, temporal or spatiotemporal domain. Typical spatial domains are point sets (e.g. sensor locations), curve sets (e.g. contour lines), grids (e.g. orthoimages, elevation models), etc. A property whose value varies as a function of time may be represented as a temporal coverage or time-series [ISO-19109].
|
Note
|
A feature that acts as a function to return values from its range for any direct position within its spatiotemporal domain, as defined in OGC Abstract Topic 6 [ISO 19123]. |
- Discrete Coverage
-
Coverage that returns the same feature attribute values for every direct position within any single spatial object, temporal object, or spatiotemporal object in its domain [ISO 19123/OGC Topic 6]
- Depth
-
Distance of a point from a chosen reference surface measured upward along a line perpendicular to that surface. [ISO 19111]
|
Note
|
Note 1: The line direction may be straight, or be dependent on the Earth’s gravity field or other physical phenomena. |
- Direct Position
-
The position described by a single set of coordinates within a coordinate reference system. [ISO 19123]
- Elevation
-
Synonym for “height”
- Grid
-
Grid network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in an algorithmic way. NOTE: The curves partition a space into grid cells. [ISO 19123]
- Grid point
-
Point located at the intersection of two or more curves in a grid. [ISO 19123:2005]
- Height
-
Distance of a point from a chosen reference surface measured upward along a line perpendicular to that surface. [ISO 19111] Note 1 to entry: A height below the reference surface will have a negative value, which would embrace both gravity-related heights and ellipsoidal heights.
- Irregular grid
-
A grid whose grid lines have individual distances along each grid axis.
- Regular grid
-
Grid whose grid lines have a constant distance along each grid axis
7.2.2. Coverages Requirements Class
Requirements Class - Coverages |
|
/req/core/coverages- |
|
Target type |
Operations |
Dependency |
ISO 19123/OGC Abstract Spec Topic 6 |
Dependency |
cdb-core-crs-requirements-class.adoc[CDB Core CRS Requirements Module] |
Dependency |
|
Requirement Coverages1 |
/req/core/coverages-rule |
Requirement Coverages2 |
/req/core/coverage-topic6 |
Requirement Coverages3 |
/req/core/coverages-conformance |
Requirement Coverages4 |
/req/core/coverages-crs |
Requirement Coverages5 |
/req/core/coverages-min-metadata |
Requirement Coverages6 |
/req/core/coverages-domainSet |
Recommendation Coverages7 |
/req/core/coverages-tiling |
Recommendation Coverages8 |
/req/core/coverages |
7.2.3. Requirements
7.2.3.1. When to use coverage rule
If this Coverages Core Requiments Module is used, then the following requirement applies.
Requirement Coverages1 |
/req/core/coverage-rule |
A |
Any coverage (such as elevation) content SHALL be encoded according to the requirements specified in this CDB 2 abstract coverage requirements module. |
7.2.3.2. Consistent with Topic 06
This Coverages requirements module has a dependency to OGC Abstract Specification Topic 6: Schema for coverage geometry and functions. This means that all terms and definitions and coverage models related to coverages in the CDB 2.0 Standard shall comply with Topic 6.
Requirement Coverages2 |
/req/core/coverage-topic06 |
A |
Any CDB implementation, profile, extension, or application profile that implements or references coverages SHALL be consistent with and conform to the terms and definitions and logical models as defined in OGC Abstract Specification Topic 6: Schema for coverage geometry and functions. |
7.2.3.3. Conformance with this Clause
Requirement Coverages3 |
/req/core/coverage-conformance |
A |
Any CDB implementation, profile, extension, or application profile that implements or references coverages SHALL be consistent with and conform to all other requirements specified in this Coverages Abstract Requirements Module. |
7.2.4. CRS Consistency
The CRS for any Coverage content in a CDB datastore has to be the same as specified by the global CRS metadata defined as per the CRS Requirements module.
Requirement Coverages4 |
/req/core/coverage-crs |
A |
Any CDB implementation, profile, extension, or application profile that implements or references coverages SHALL be consistent with and conform to all other requirements specified in CDB Core Coordinate Reference System Module. |
At a minimum any Coverage content must have a minimum set of resource (dataset) metadata as defined in the CDB Core Metadata Module.
7.2.5. Resource Metadata
Requirement Coverages5 |
/req/core/coverage-min-metadata |
A |
Any given coverage instance in a CDB datastore SHALL have resource metadata (dataset) elements as specified in the CDB Core Metadata Requirements Module, Resource Metadata sub-clause. |
7.2.6. domainSet
Requirement Coverages6 |
/req/core/coverage-domainSet |
Any given coverage instance in a CDB datastore SHALL have the following domainSet metadata elements. |
|
A |
UoM - Units of Measure for values in the grid cell/pixel coverage. The UoM for any given coverage instance SHALL be the same. |
B |
precision - The smallest value that has meaning for a given coverage instance. Default is 1. |
C |
scale - Scale as a multiple relative to the unit of measure. Default is 1. |
D |
offset - The offset to the 0 value. Default is 0. |
E |
data_null - The value that indicates NULL. |
F |
grid_cell_encoding - Specifies how a value is assigned to a grid cell (pixel) in a given coverage instance. Default is value-is-center. See below for more information. If value-is-corner is specified, then an additional metadata element _SHALL be specifed stating which corner the value is related to. Possible values are lower-left-corner, upper-left-corner, lower-right-corner, or upper-right-corner. |
G |
field_type - Uniquely identifies the type of Coverage Data. The default is Height aka elevation. |
H |
quantity_definition - Description of the values contained in the Coverage instance. |
|
Note
|
If elements that have defaults are not specified then the default values are assumed. |
The following provides additional information on the domainSet metadata elements.
7.2.6.1. Units of Measure
The default is the units of measure as defined in the vertical CRS metadata, such as for heights (elevations). However, for many types of grid coverage data there will not be a vertical CRS defined in EPSG or other registries. Examples of such phenomenon are temperature, pressure, and wind speed. The formal (normative) definition for these phenomenon should be specified based on some well know accepted registry, ontology, or other community accepted units of measurement definitions. Currently, UCUM is used as the normative UoM reference in the OGC standards baseline. Some examples from UCUM are:
Cel - Celsius, degree – temperature
[degF] – degree Fahrenheit – temperature
mbar - millibar – pressure
B[uV] - microvolt, bel – electric potential level
There are other normative sources for UoM definitions, such as the World Meteorological codes registry and the NASA QUDT semantic definitions.
An additional consideration is that a CDB data store may be used in a disconnected environment. Therefore, the UoM specification should not be a URN or URI to some external resource. Consequently, the UoM code used should also have a specific field name and quantity definition.
This field is mandatory.
7.2.6.2. Using the Scale and Offset Values
Integer values MAY be scaled and offset in order to make more efficient use of 16-bit integer space available in some image storage formats such as .png. The scale and offset MAY be applied to the entire coverage and/or the individual tile. The scale and offset do not apply to the data_null value.
7.2.6.3. Grid Cell/Pixel Encoding
There is a small set of possible ways in how a value is actually assigned to a given grid cell or pixel. For example, a value could be assigned to the center of a cell, a corner of a cell, and so forth. Additionally, a value can be assigned to the entire cell. The OGC standards baseline currently states the use of pixel-is-point: GMLJP2 follows the definition of grids in GML 3.2.1 [OGC 07-036] clause 19.2.2: “When a grid point is used to represent a sample space (e.g. image pixel), the grid point represents the center of the sample space (see ISO 19123:2005, 8.2.2)”.
For the purposes of grid coverage GeoPackage extension, the following values are allowed.
value-is-center: This is the default. Assume the value is the center of the cell/pixel.
value-is-area – Assume the entire grid cell/pixel has the same value.
value-is-corner – A typical use case is for a mesh of elevation values as specified in the OGC CDB 1.x Standard.
As other sampling methods are identified, the list of enumeration types can be expanded.
7.2.6.4. field_name
Each “field” attribute in a given coverage instance is identified by a name that is unique to the coverage instance. For example, if the field_name is “temperature”, then the entire coverage instance is “temperature”. Therefore, in a CDB data store, there is only one field attribute and one instance.
7.2.6.5. quantity_definition
Associated with the field name is a definition of that field/attribute. In SWE Common this is defined in the Quantity class. In the above example, navigating to http://mmisw.org/ont/cf/parameter/air_temperature provides a very specific definition of what is meant by “temperature”.
Please note that in a disconnected environment, the use of URNs and URIs is discouraged. Instead, use the text field to provide the quantity definition for the UoM being used. For example, for the above example the Marine Metadata registry provides the following: “Air temperature is the bulk temperature of the air, not the surface (skin) temperature”.
This metadata element/column is required if the values contained in a grid coverage are anything other than height (elevation). This is a text string that describes the field (type). This could be an http uri to an ontology or enumeration, such as “http://sweet.jpl.nasa.gov/2.0/spaceExtent.owl#Height"
7.2.7. Tiling Requirements
While there is no a specific CDB requirement that a coverage be tiled, for the vast majority of use cases coverages are tiled. This requirement is driven by performance requirements. There, tiling coverages in a CDB datastore is recommended. As such, if a coverage is tiled then the following requirements are mandatory.
Recommendation Coverages7 |
/req/core/coverage-tiling-abstract |
A |
Any Coverages dataset in a CDB datastore that is tiled SHALL be tiled in a manner consistent with and conform to all requirements specified in CDB Core Tiling Requirements Module (Abstract). |
7.2.8. Tiling Extension
Recommendation Coverages8 |
/req/core/coverage-tiling-extension |
A |
Any Coverages dataset in a CDB datastore that is tiled SHALL implement the tiling rules as defined in a single tiling extension module. Currently available tiling extension requirements modules are defined in CDB Core 2.0 Tiling Requirements Module (Abstract) Recommendation Tiling 1. |
7.3. Coordinate Reference System (CRS) Requirements Module
This clause defines the CDB Core CRS Requirements Module. Any CRS may be used - not just WGS-84 - to define the CRS for a CDB conformant data store. Specific CRS types and restrictions are defined in extensions and profiles of this core requirements class. The storage CRS for a CDB data store is the CRS identifier that may be used to retrieve objects, models, coverages, and/or features from that data store without the need to apply a CRS transformation. Any CRS transformations would occur in the client or other down stream applications. Note that if the coordinate epoch is unknown that coordinates referenced to a dynamic CRS are ambiguous. Please see the Epoch requirement below for additional information.
The example below is how CRS could be expressed in a CDB application profiles. Very specific statements are made that restrict the more general core requirements classes. For example, the simulation application profile might state:
Coordinates in a CDB datastore SHALL be expressed using WGS-84 (World Geodetic System 1984), equivalent to EPSG (European Petroleum Survey Group) code 4326 (2 dimensions) and EPSG code 4979 (3 dimensions). If a geographic location also has a height or depth, the height or depth SHALL be expressed relative to the WGS-84 reference.
This is a restriction of a CDB Core requirement.
7.3.1. CDB CRS Core Requirements Class and Requirements
The following is the CDB Core CRS requirements class.
Requirements Class - Coordinate Reference System (CRS) Specification and Representation. |
|
/req/core/data-representation |
|
Target type |
Operations |
Dependency |
OGC Abstract Specification Topic 2: Referencing by coordinates (ISO 19111:2019) |
Dependency |
EPSG Geodetic Parameter Dataset |
Dependency |
Geographic information — Well-known text representation of coordinate reference systems |
Dependency |
ISO 19115: Geographic Information - Metadata |
Requirement CRS2 |
/req/core/crs/crs-topic2 |
Requirement CRS3 |
/req/core/crs/crsStorage |
Requirement CRS4 |
/req/core/crs/storageCrs-valid-value |
Requirement CRS5 |
/req/core/crs/crsMetadata |
Requirement CRS6 |
/req/core/crs/uom |
Requirement CRS7 |
/req/core/crs/crsEpoch |
7.3.1.1. Abstract Specification (ISO Standard)
The following requirement states that any and all CRS requirements derive from the OGC (and ISO) Topic 2 Abstract Specification for spatial referencing by coordinates.
Requirement CRS2 |
/req/core/crs/crs-topic2 |
7.3.1.2. CDB one CRS per data store instance
The following requirement states that any CDB data store compliant with this standard specifies only one CRS. This requirement when combined with Requirement 5 (CRS Metadata) ensures that rigorous coordinate transformations as stated in OGC Topic 2 can be successfully performed without loss of data.
Requirement CRS3 |
/req/core/crs/crsStorage NOTE: While specific datasets may be local in nature, the structure of a CDB data store is designed to be global (full earth or planet). |
7.3.1.3. CRS Type
The following requirement specifies that the CRS definition has to be non-projected and earth centric.
Requirement CRS4 |
/req/core/crs/storageCrs-valid-value NOTE: In simple terms: A geographic coordinate system defines where the data is located on the earth. A projected coordinate "tells" how data is to be drawn on a flat surface, such as on a paper map or a computer screen. |
Recommendation |
/rec/core/crs/crs-definition NOTE: The above recommendation is for backwards compatibility with previous versions of the CDB standard. |
7.3.1.4. CRS Metadata
The following requirement specifies that CRS metadata is to be encoded and stored in the single CDB global metadata file in a CDB data store. This information would be stored once as the same CRS is used for an entire CDB data store. In CDB 1.x, such metadata is in the metadata folder.
Requirement CRS5 |
/req/2.0/core/crs/crsMetadata |
The following is an example using WKT-2 for CRS for EPSG 4326 (WGS-84, 2D) :
COMPOUNDCRS ["I3S Compound CRS",
GEODCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1.0]]],
CS[ellipsoidal,2],
AXIS["latitude",north,ORDER[1]],
AXIS["longitude",east,ORDER[2]],
ANGLEUNIT["degree",0.01745329252],
ID["EPSG",4326]]
VERTCRS["EGM2008 height",
VDATUM["EGM2008 geoid"],
CS[vertical,1],
AXIS["gravity-related height (H)",up],
LENGTHUNIT["metre",1.0],
ID["EPSG",3855]]]
and
A static geographic CRS with prime meridian other than IRM and ellipsoidal 2D coordinate system in grads (Using Version 2 of the standard):
GEOGCRS["NTF (Paris)",
DATUM["Nouvelle Triangulation Francaise",
ELLIPSOID["Clarke 1880 (IGN)",6378249.2,293.4660213]
],
PRIMEM["Paris",2.5969213],
CS[ellipsoidal,2],
AXIS["latitude",north,ORDER[1]],
AXIS["longitude",east,ORDER[2]],
ANGLEUNIT["grad",0.015707963267949],
REMARK["Nouvelle Triangulation Française"]
]
7.3.1.5. Units of Measure of the CRS
The following requirement is optional and allows for the specification of the Units of Measure (UoM) for a CRS if either:
1.) The UoM is not specified in the CRS metadata or
2.) the UoM to be used is not what is specified in the CRS metadata.
For example, if the CRS is EPSG 4326, the UoM in the provided CRS metadata is decimal degrees.
Requirement CRS6 |
/req/2.0/core/crs/uom All CRS Units of Measure (UoM) in a CDB conformant data store SHALL be the same for all geospatial coordinates for the entire data store regardless of feature type or geometry type. |
|
Note
|
The CRS UoM requirement does not apply to models that may be in local (engineering) coordinate systems. |
7.3.1.6. Data Store Epoch
The earth is not static. Plate tecktonics and other geological and geomorphological processes cause locations (and features) to change over time. This is called displacement. For example, some locations in California can move 3 to 4 inches a year as the Pacific plate moves north. Previous versions of the CDB Standard assumed a static datum. However, to accommodate the dynamic nature of the earth, CDB 2.0 and later recommends the use of dynamic datums.
CDB 2.0 and later mandates the use of a reference epoch for any CRS that is dynamic. In this document “Epoch” is a point in time. For example, WGS84 is a dynamic reference frame. At the beginning of each year, the NGA updates station coordinates of the seventeen sites. The coordinates are adjusted to an epoch at the half year mark to account for plate tectonic motion.
There are two levels of epoch metadata that should be provided in a CDB data store: The epoch at the time the data store is created and the coordinate epoch for when any image or vector data was collected. The former is a global metadata element and should be used when there is no epoch metadata available for a given data set in the data store. The latter is specified at the data set level and provides the epoch of the coordinates in a given CDB data set.
Requirement CRS7 |
/req/core/crs/crsEpoch |
A |
Any CDB 2.0 and later data store that implements a dynamic datum (reference frame) SHALL specify an epoch as part of the CRS metadata. |
B |
The epoch SHALL be specified as a decimal year in the Gregorian calendar, with yyyy.00 being midnight at the start of the 1st January of year “yyyy”. |
|
Note
|
In a dynamic CRS, coordinates of a point on the surface of the Earth may change with time. To be unambiguous the coordinates must always be qualified with the epoch at which they are valid. This is often expressed in the form “<CRS_name> at epoch T”, “<CRS_name> epoch T” or “<CRS_name>@T”. |
EXAMPLES
-
ITRF2008 at epoch 2017.53
-
ITRF2008 epoch 2017.53
-
WGS 84 (G1762) @ 2017.53
By providing an epoch along with a coordinate epoch, the necessary metadata is available to perform deformation transformations to not only calculate the current location but also to predict future locations.
7.3.1.7. Vertical CRS - Optional Class
This clause defines an optional Requirements for defining a Vertical Coordinate Reference System (VCRS) for a CDB data store. The VCRS may either be ellipsoidal (height defined with respect to a reference ellipsoid) or gravity-related height (height defined with respect to a reference geoid/gravity surface). This approach supports the use of CDB 2.0 and later with a VCRS across a diverse range of fields and applications where the definition of height is of importance.
This is an optional requirements class. However, any application profile, extension, or implementation that specifies the use of a VCRS SHALL be conformant with this requirements class.
Requirements Class - Vertical Coordinate Reference System (VCRS) Specification and Representation. |
|
/req/core/data-representation |
|
Target type |
Operations |
Dependency |
OGC Abstract Specification Topic 2: Referencing by coordinates (ISO 19111:2019) |
Dependency |
EPSG Geodetic Parameter Dataset |
Dependency |
Geographic information — Well-known text representation of coordinate reference systems |
Requirement VCRS 1 |
/req/core/crs/vcrs-topic2 |
Requirement VCRS 2 |
/req/core/crs/vcrs-encoding |
Requirement VCRS 3 |
/req/core/crs/vcrs-units |
The following requirement states that any and all Vertical CRS requirements derive from the OGC (and ISO) Topic 2 Abstract Specification for spatial referencing by coordinates.
Requirement VCRS 1 |
/req/core/crs/vcrs-topic2 |
A |
Any CDB implementation, profile, extension, or application profile specifying a VCRS SHALL be consistent with and conform to the terms and definitions and logical models as defined in OGC Abstract Specification Topic 2: Referencing by coordinates (ISO 19111:2019) |
B |
AND SHALL also comply with all other requirements specified in the CRS Requirements Class. |
The following requirement states that ISO 19125 Geographic information — Well-known text representation of coordinate reference systems SHALL be used for encoding VCRS data.
Requirement VCRS 2 |
/req/core/crs/vcrs-wkts-crs |
A |
Any CDB implementation, profile, extension, or application profile specifying a VCRS SHALL encode VCRS as defined in Geographic information — Well-known text representation of coordinate reference systems. |
7.3.1.8. Default vertical CRS units
Requirement VCRS 3 |
/req/core/crs/vcrs-units |
A |
If vertical extent units are not stated they SHALL be assumed to be meters. |
7.3.1.9. WKT for CRS Example
The following is an example of using WKT for a description of a compound WGS 84, EPSG 4326 and EPSG 3855.
COMPOUNDCRS ["CDB Compound CRS",
GEODCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1.0]]],
CS[ellipsoidal,2],
AXIS["latitude",north,ORDER[1]],
AXIS["longitude",east,ORDER[2]],
ANGLEUNIT["degree",0.01745329252],
ID["EPSG",4326]]
VERTCRS["EGM2008 height",
VDATUM["EGM2008 geoid"],
CS[vertical,1],
AXIS["gravity-related height (H)",up],
LENGTHUNIT["metre",1.0],
ID["EPSG",3855]]
7.4. Resource Path and File Naming Requirements Module
The CDB 1.x series of Standards specified very strict and deterministic rules for generating a path to a resource or for generating a name for a resource.
|
Note
|
There exists a certain degree of ambiguity of whether the term "asset" or the term "resource" should be used in this Standard. The gaming industry uses the term "asset" for textures, geometries, and so forth. The Web and Internet worlds use the term "resource" for the same items. One can split semantic hairs but given the fact that the OGC typically uses the word "resource", CDB 2.0 and later uses the term "resource". From IETF RFC 2396: A resource can be anything that has identity. |
A key aspect of providing a performant yet deterministic CDB data store are the resource naming conventions. The following requirements and recommentations are based on current CDB 1.x best practices as well as style guides for a number of widely used gaming engines such as Unity and Unreal.
7.4.1. CDB Resource Path/Naming Requirements Class
Requirements Class - Resource Path/Name Structure |
|
/req/core/naming-system |
|
Target type |
Operations |
Dependency |
Target file system. |
Dependency |
|
Requirement Name1 |
/req/core/name-spaces |
Recommendation Name1 |
/req/core/name-unicode |
Requirement Name2 |
/req/core/name-language |
Recommendation Name2 |
/req/core/name-empty-folders |
Requirement Name3 |
/req/core/name-ap-guide |
Requirement Name4 |
/req/core/name-case |
Requirement Name5 |
/req/core/name-ap-guide |
Requirement Name6 |
/req/core/name-case |
Requirement Name7 |
/req/core/name-extensions |
7.4.2. Do not uses spaces in paths or names
Requirement Name1 |
/req/core/name-spaces |
A |
Spaces SHALL not be used in any CDB resource path, folder name, or resource name. |
7.4.3. Do not use unicode
Recommendation Name1 |
/req/core/name-unicode |
A |
Unicode characters or other symbols SHOULD not be used in any CDB resource path, folder name, or resource name. |
B |
The following characters SHALL NOT be used in any CDB resource path, folder name, or resource name. # pound % percent & ampersand { left curly bracket } right curly bracket |
|
Note
|
While Unicode strings can be used in most operating and file storage systems for resource paths, folder names, and file names be aware that conversions from UTF8 and UTF16 can cause performance issues as well as content size issues. Further, to ensure maximum system portability of a CDB datastore, only ASCII characters should be used in any CDB resource path, folder name, or resource name. |
7.4.4. Language Requirement and Recommendation on English
Requirement Name3 |
/req/core/name-language |
A |
All resource names, paths, and folders SHALL be in the same language. |
B |
This language SHOULD be in English. |
7.4.5. Empty Folder Guidance
Recommendation Name4 |
/req/core/name-empty-folders |
A |
Empty folders or resources devoid of content SHOULD be avoided. |
|
Note
|
This is a performance recommendation. |
7.4.6. Style Guide Requirement
Requirement Name5 |
/req/core/name-ap-guide |
A |
Any CDB application profile based on the CDB Core Requirements Modules and Classes SHALL define a style guide of requirements for consistent naming and path generation for any resource and folder. |
7.4.7. String case
Requirement Name6 |
/req/core/name-case |
A |
Case - Any CDB implementation and/or application profile SHALL use the same case rule for an entire data store. These are: PascalCase: Pascal case combines words by capitalizing all words (even the first word) and removing the space. |
7.4.8. File name extensions
CDB 1.x series of standards specified a consistent set of file extensions for any resource containing content. For example, every Shapefile in a CDB datastore has the .shp file extension. The use of these file extensions, along with others, continue to be used and specified in CDB 2.0 and later. The table below the next requirement provides a list of file types/encodings used in CDB version 1.x as well as additional file types and extensions that may be used in CDB 2.0 and later implementations.
|
Note
|
In the CDB 1.x Standards, the standard specified rules (requirements) and guidance for the proper use of each of the formats/encodings used in the 1.x series of Standards. For example, in Volume 2 CDB Core: Model and Physical Structure Annexes C and H describe the use of the JPEG 2000 file format in a CDB data store. These rules and guidance were provided to enhance interoperability and "determinism" in a CDB datastore. For formats/encodings in the table below that are not in CDB 1.x, such rules and guidelines shall be specified in any application profile as required. |
Requirement Name7 |
/req/core/name-extensions |
A |
Any CDB implementation and/or application profile SHALL use the file extensions as specified in the table below. |
B |
For file types or resource types not listed in the table then industry standard extensions SHALL be used. |
| File Format | Minimal Version Number | Extension |
|---|---|---|
Bitmap Image |
Microsoft |
*.bmp |
dBASE |
III+ |
*.dbf, *.dbt |
GeoPackage |
1.1 and later |
*.gpkg |
glTF JSON/ASCII |
2.0 and later |
*.gltf |
glTF Binary |
2.0 and later |
*.glb |
JPEG 2000 |
1.0 and later |
*.jp2 |
JSON |
Any |
*.json |
OpenFlight |
16.0 and later |
*.flt |
Shapefile |
Esri White Paper, July 98 |
*.shp, *.shx |
SGI Image |
1.0 |
*.rgb |
SGI Image + Alpha |
1.0 |
*.rgba |
TIFF |
6.0 |
*.tif |
XML |
1.0 and later |
*.xml, *.xsd |
ZIP |
6.3.1 and later |
*.zip |
|
Note
|
Additional file extensions, such as for compressed textures may be defined in other CDB 2.0 and later requirements modules. |
7.5. File Hierarchy Structure
The CDB Standard assumes that some form of a hierarchical file management system that supports the concept of folders is available for CDB implementations. For example, in a file system in the cloud this may be a hierarchical storage system that provides shared access to file data. Users can create, delete, modify, read, and write files and can organize them logically in directory trees for intuitive access. This concept is true for the majority of widely used cloud platforms. Similarily, all widely used operating systems, such as MS Windows, UNIX, HADOOP, and LINUX, provide hierarchical file systems and the concept of folders.
|
Note
|
The CDB file, directory, and folder structure is defined by a combination of folder hierarchy and metadata files. |
|
Note
|
As a CDB datastore grows it becomes unwieldy to store in different environments and transfer between services. To use or transfer a CDB in its original format would be to use or transfer massive amounts of small files, amounting to very large costs and potential for lossy data. There is a recommendation to use the ISO 9660 chunking format which may be beneficial. Using this standard, a CDB datastore is separated into transferrable-sized (gigabytes each) chunks. The alternative would be to package the many small files in a "traditional CDB datastore" into a much smaller number of GeoPackages. |
7.5.1. CDB File Requirements Class
Requirements Class - File/Folder Structure |
|
/req/core/file-system |
|
Target type |
Operations |
Dependency |
Target file system. |
Dependency |
|
Requirement File1 |
/req/core/file-structure |
Requirement File2 |
/req/core/file-cdb-root-location |
Requirement File3 |
/req/core/file-hierarchy |
Permission PFile1 |
/req/core/file-hierarchy-links |
Requirement File5 |
/req/core/file-hierarchy-root |
Recommendation RFile1 |
/rec/core/file-hierarchy-root-name |
Requirement File6 |
/req/core/file-root-global-metadata |
7.5.2. Hierarchial file system
Requirement File1 |
/req/core/file-structure |
A |
Any platform on which a CDB data store is to be implemented SHALL support the concepts of both folders and hierarchical file systems. |
7.5.3. Root location of a CDB datastore
Requirement File2 |
/req/core/file-cdb-root-location |
A |
Each physical instance of a CDB data store SHALL have a |
B |
All content in a single physical CDB datastore instance shall be accessible via the root location structured as sub-directories, folders, or some other hierarchial structure. |
NOTE 1: In the CDB 1.x Standard, the root directory/folder was identified as \CDB
NOTE 2: In CDB 2.0 and later, the concept of the root location is identical to the OGC API concept of landing page.
7.5.4. Hierarchy of file system/folder structure
Requirement File3 |
/req/core/file-hierarchy |
A |
All of the files stored within a CDB data store SHALL be accessible under the root directory or within a subdirectory under the root directory. |
Permission PFile1 |
/req/core/file-hierarchy-link |
A |
Subfolders (or locations) within a CDB data store MAY be accessible under the root directory or within a subdirectory under the root directory as links to the physical resource (dataset). |
7.5.5. Name of root directory/folder
Requirement File5 |
/req/core/file-hierarchy-root |
A |
The root of the file/folder hierarchy in a CDB data store SHALL begin with |
|
Note
|
The above requirement is consistent with the OGC API Landing Page concept and related requirements. The purpose of the landing page (root) is to provide clients with a starting point for using accessing a CDB datastore. Any resource in a CDB datastore can be accessed by following paths or links starting from the landing page or root. |
7.6. Geometry
This clause specifies the CDB 2.0 and later Core Geometry Requirements Module.
The OGC and ISO Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture defines a geometry model. This geometry model is the foundation for the implementation of the Simple Features (SF) Standard in numerous spatial databases including PostGIS, Oracle Spatial, and DB2. Further, a number of other international standards, such as GeoPackage and GeoJSON, comply with the SF Geometry Model. Finally, any Shapefule encoding is consistent with the ISO/OGC Geometry model.
7.6.1. The Geometry Model
The following is the Simple Features Geometry Class Hierarchy.
Geometry is the root class of the hierarchy. Geometry is an abstract (non-instantiable) class. The instantiable subclasses of Geometry defined in this Standard are restricted to 0, 1 and 2-dimensional geometric objects that exist in 2, 3 or 4-dimensional coordinate space (ℜ2, ℜ3 or ℜ4). Geometry values in R2 have points with coordinate values for x and y. Geometry values in R3 have points with coordinate values for x, y and z or for x, y and m. Geometry values in R4 have points with coordinate values for x, y, z and m where "m" is a measure which could be date and time. (Source: Simple feature access - Part 1: Common architecture)
Geometry types specified in the model that can be used in a CDB 2.0 or later data store are defined in the following table. Please note that an CDB application profile can extend the allowed set of Geometry Types. Please also note that A GeometryCollection is a geometric object that is a collection of some number of geometric objects. All the elements in a GeometryCollection shall be in the same Spatial Reference System. This is also the Spatial Reference System (or Coordinate Reference System) for the GeometryCollection.
|
Note
|
The Geometry type codes specified in this requirements module are consistent with the Simple Features Standard as well as the GeoPackage Standard. However, the codes above the number 7 are NOT consistent with the codes used in CDB datastores conformant with the CDB 1.X series of Standards.
|
| Code | CDB Geometry type | Description |
|---|---|---|
0 |
Geometry |
A geometry |
1 |
Point |
topological 0-dimensional geometric primitive , representing a position usually encoded as an X, Y, Lat/Long, or Lomg/Lat coordinate. |
2 |
Linestring |
A LineString is a Curve with linear interpolation between Points. Each consecutive pair of Points defines a Line
segment. |
3 |
Polygon |
A Polygon is a planar Surface defined by 1 exterior boundary and 0 or more interior boundaries. Each interior
boundary defines a hole in the Polygon. |
4 |
MultiPoint |
A MultiPoint is a 0-dimensional GeometryCollection. The elements of a MultiPoint are restricted to Points. |
5 |
MultiLinestring |
A MultiLineString is a MultiCurve whose elements are LineStrings. |
6 |
MultiPolygon |
A MultiPolygon is a MultiSurface whose elements are Polygons. |
7 |
GeometryCollection |
A GeometryCollection is a geometric object that is a collection of some number of geometric objects. |
Table Geometry 1: Core Geometry Types
The following table is the set of core geometries that may have a Z element or coordinate associated with the geometry coordinates. Typically the Z value is the height above or below the elipsoid but could also be the height of a building or the depth of a well. The z coordinate value traditionally represents the third dimension (i.e. 3D). For example: A map might have point identifying the position of a mountain peak by its location on the earth, with the
x and y coordinate values, and the height of the mountain, with the z coordinate value.
1001 |
Point Z |
Point geometry with a |
1002 |
Linestring Z |
A LineString geometry in which every coordinate in the LineString has an associated |
1003 |
Polygon Z |
A Polygon geometry in which every coordinate in the Polygon has an associated |
1004 |
Multipoint Z |
A MultiPoint geometry in which every coordinate in the Point geometry collection has an associated |
The following table is the set of core geometries that may have a M element associated with the geometry. M stands for a measure, such as precipitation or soil accidity.
2001 |
Point M |
Point geometry with a |
2002 |
Linestring M |
A LineString geometry in which every coordinate in the LineString has an associated |
2003 |
Polygon M |
A Polygon geometry in which every coordinate in the Polygon has an associated |
2004 |
MultiPoint M |
A MultiPoint geometry in which every coordinate in the Point geometry collection has an associated |
NOTE 1: The Name of the geometry type as used in CDB 2.0 is consistent with the OGC Simple Features, GeoPackage, GeoJSON and other standards that reference Simple Features as normative.
NOTE 2: The codes are consistent with those specified in GeoPackage.
The above geometry types are considered to be components of the core. The following geometry types may also be specified for use as extensions in any CDB 2.0 application profile.
Code |
Name |
Description |
11 |
MULTICURVE |
A MultiCurve is a 1-dimensional GeometryCollection whose elements are Curves |
12 |
MULTISURFACE |
A MultiSurface is a 2-dimensional GeometryCollection whose elements are Surfaces, all using coordinates from the same coordinate reference system. |
13 |
CURVE |
A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve specifying the form of the interpolation between Points. This standard defines only one subclass of Curve, LineString, which uses linear interpolation between Points. |
14 |
SURFACE |
A Surface is a 2-dimensional geometric object. |
7.6.2. Geometry Requirements Class
The following is the Geometry Requirements Class.
Requirements Class - Geometry |
|
/req/core/geometry |
|
Target type |
Operations |
Dependency |
Simple Features geometry model |
Dependency |
CRS UoM or Global UoM (CRS Requirement CRS6) |
Requirement Geom1 |
/req/core/geometry-model |
Requirement Geom2 |
/req/core/geometry-types |
Requirement Geom3 |
/req/core/geometry-zvalue |
Requirement Geom4 |
/req/core/geometry-mvalue |
Requirement Geom5 |
/req/core/geometry-coordinates |
Requirement Geom6 |
/req/core/geometry-collection-srs |
7.6.2.1. Geometry Model
Geometry in a compliant CDB Datastore must be consistent with and conform to Simple Feature Access.
Requirement Geom1 |
/req/core/geometry-model |
A |
SHALL comply with requirements Geom2 through Geom6 as stated below. |
7.6.2.2. Geometry types
The following specifies the types of Geometry in a CDB datastore. Please note that the list above is extensible.
Requirement Geom2 |
/req/core/geometry-types NOTE: Application profiles and extensions may specify additional geometry types. However, implementers should be aware that such extensions to the geometry model may impact interoperabiity. |
7.6.3. Geometry with a Z coordinate.
Requirement Geom3 |
req/core/geometry-zcoordinate NOTE: Typically the |
Requirement Geom4 |
/req/core/geometry-mvalue NOTE: The m coordinate represents a measurement. |
Requirement Geom5 |
/req/core/geometry-coordinates NOTE: The m coordinate represents a measurement. |
7.6.4. Consistent SRS/CRS in a Geometry Collection
Requirement Geom6 |
/req/core/geometry-collection-srs |
A |
Every Geometry in the Geometry Collection SHALL be unambiguously associated to a coordinate reference system either directly or through its containing geometry. |
B |
All Geometries in a Geometry Collection SHALL be in the same coordinate reference system. |
All Geometry classes described in this Standard are defined so that instances of Geometry are topologically closed. In other words, all represented geometries include their boundary as point sets.
7.7. Links
Links are used to describe a relationship with another resource. The resource may be internal to a CDB datastore or may be an external reference such as to an authoritative controlled vocabulary.
Requirements Class - links |
|
/req/core/links |
|
Target type |
Operations |
Dependency |
URL formatting requirements |
Requirement Link1 |
/req/core/link-href |
Requirement Link2 |
/req/core/link-rel |
Recommendation Link3 |
/req/core/link-media |
Recommendation Link4 |
/req/core/link-title |
All links are encoded as a URL (Uniform Resource Locator) string.
Requirement link1 |
http://www.opengis.net/spec/CDB/2.0/core/link-href The actual link SHALL be encoded in the format of an URL. Relative and absolute links are both allowed. |
The following table summarizes the requirements and recommendations for the links requirements class.
This object describes a relationship with another entity.
Field Name |
Type |
Description |
Example |
M/R |
href |
string |
The actual link in the format of an URL. Relative and absolute links are both allowed. |
M |
|
rel |
string |
The type or semantics of the relation. |
alternate |
M |
type |
string |
A hint of the [Media type](#media-types) of the referenced entity. |
application/geo+json |
R |
title |
string |
A human readable title to be used in rendered displays of the link. |
Trierer Strasse 70, 53115 Bonn |
R |
JSON media types that would typically be used in a server that supports JSON are:
-
application/geo+jsonfor feature collections and features, and -
application/jsonfor all other resources.
XML media types that would typically occur in a server that supports XML are:
-
application/xmlfor all other resources.
The typical HTML media type for all "web pages" in a server would be text/html.
Files whose media type is image contain image data. The subtype specifies which specific image file format the data represents. Possible image media types used in a CDB datastore include:
-
image/jpeg- Joint Photographic Expert Group image (JPEG) -
image/png- Portable Network Graphics (PNG) -
image/tiff-
7.7.1. Note on templated links
Templated links may used used in a CDB data store. Templated linksare used to bind to resources that may require additional information in order to access the resources. For example, simply knowing the URL of a legacy OGC service such as WMS or WFS is not sufficient to access resources offered by those services. Additional information in the form of request parameters and values are required in order to have a complete link to a resources. A templated link with variables can provide this additional context. In a CDB datastore, a typicaly use for a templated link would be to access additional information related to an entry in the attribute model.
7.8. Media Types
One of the best ways to help inform client/service applications about the content in a link is to use a common Media
Type in the type field. The use of media type is quite useful for browsers to better determine
what to render and display to users searching and browsing a CDB datastore. Media types are often referred to by the
now deprecated term "MIME types".
7.8.1. Media Type for CDB Datastores
Metadata and controlled vocabularies in a CDB datastore are encoded as XML or JSON. Additionally, resources may be encoded as GeoPackages, GeoJSON, Shapefiles, OpenFlight models, glTF, and so on.
The following table lists the Media Types to use for CDB metadata and datasets. This table can be extended as required.
Media Type |
Description |
---------------------- |
---------------------------------------------------------- |
|
A model dataset is an OpenFlight encoding. |
|
A vector dataset is encoded as GeoJSON. |
|
A dataset is encoded as a GeoPackage |
|
A dataset encoded as GeoTIFF with standardized georeferencing metadata. |
|
A dataset is a glTF - Buffer encoding. |
|
A model dataset is a glTF binary encoding. |
|
A model dataset is a glTF JSON encoding. |
|
A dataset is encoded as GML. |
|
A dataset is encoded as JPEG2000. |
|
A dataset, usually metadata, is encoded as JSON. |
|
An image (coverage) is encoded as png. |
|
A vector dataset is encodes as a Shapefile. |
|
An image is encode as TIFF. |
|
A dataset, usually metadata, is encoded as XML. |
7.9. CDB Global and Local Resource/Dataset Metadata
This CDB Metadata Requirements Module specifies requirements and recommendations for global and local (dataset) metadata in a CDB compliant datastore.
7.9.1. What is metadata?
Metadata is data that provides information about other data. In the geospatial community and the rapidly emerging spatial web community, metadata is critical to operations such as discovery and determining whether a resource is “fit for purpose”. Three distinct types of metadata exist: descriptive metadata, structural metadata, and administrative metadata (National Information Standards Organization (NISO)).
-
Descriptive metadata describes a resource for purposes such as discovery and identification. It can include elements such as title, abstract, author, and keywords.
-
Structural metadata is metadata about containers of metadata and indicates how compound objects are put together, for example, how pages are ordered to form chapters.
-
Administrative metadata provides information to help manage a resource, such as when and how it was created, file type and other technical information, and who can access it. <end Wikipedia>
The geospatial community has a long and extensive history in defining and using metadata for geospatial resources. Without metadata, discovery of required resources and determination of whether a resource is “Fit for Purpose” becomes difficult if not impossible. The geospatial community makes use of all three types of metadata, although the first and third are more critical. The CDB use of metadata focuses on use cases 1 and 3.
7.9.2. CDB and Metadata
While much of the CDB Core requirements, such as the CRS requirements, are related to metadata in one form or another, this sestion specifies requirements targeted at 1.) Global Metadata for a CDB datastore and 2.) more "traditional" metadata for location enabled resources and datasets. There are a number of metadata and controlled vocabularies, such as Lights and Version, that may be used as part of a CDB datastore implementation. The global metadata properties and controlled vocabulary elements are described with requirements in their own Clauses in the core CDB 2.0 Standard.
The CDB Core Standard provides the requirements for:
-
CDB Global metadata - those metadata elements applicable to an entire CDB datastore instance.
-
Resource Metadata (formerly local metadata in CDB 1.x) - those metadata elements specific to a given local resource, such as a GeoTypical Model or vector dataset, in a CDB datastore.
|
Note
|
Should - for purposes of CDB - this be termed dataset metadata (dataset is part of the DCAT superclass Resource which also includes the super-class of dcat:Dataset, dcat:DataService, dcat:Catalog and any other member of a dcat:Catalog)?
|
|
Note
|
This standard does not specifiy which metadata standard shall be used. Instead, for flexibility and in recogniztion that different communities use different metadata standards or profiles of metadata standards, the CDB standard provides a list of allowed metadata standards and profiles of those standards. The caveat is that the same metadata standard (or profile of that standard) is used consistently throughout the datastore. |
More specifically, Global metadata, including vocabularies, are data such as CDB version or Lights are global to an entire CDB data store instance. Individual file sets, tiles, and other resources in a CDB data store may also have metadata. These resources are termed “resource” metadata.
Resource metadata refers to metadata specific to a given dataset within a CDB data store. This level of metadata is the minimum core for geospatial datasets regardless of the specific geospatial subject (i.e., vector, raster (imagery), sensor, or model). Metadata at this level is designed to assist in discovery, retrieval and semantic description of the data. Dataset level metadata is typically stored at the model or tile level.
In CDB 1.x the majority of CDB controlled vocabularies, enumerations, and metadata files are encoded using eXtended Markup Language (XML) files. In CDB 1.x the XML schemas can be found in the \CDB\Metadata\Schema\ folder delivered with the CDB standard. In CDB 1.x the exceptions are the global and local geospatial metadata files which may be XML schema, JSON, JSON schema, or some other internationally recognized encoding. In CDB 2.0 and later, any metadata may be encoded using XML, JSON or stored in a database table. However, the encoding chosen shall be consistent throughout a given CDB datstore instance.
|
Note
|
In CDB 2.0 and later, the location of the global metadata is specified using a link as specified in the CDB Core Links Requirements Class. |
Resource Metadata may also be stored in a GeoPackage using the GeoPackage Metadata Extension.
|
Note
|
Please note that domain or application specific metadata, such as for satellite imagery or weather sensor observations are specified as extensions to this core metadata module and may be mandatory requirements classes in a CDB application profile. |
7.9.3. CDB Global Datastore and Resource/Dataset Metadata
The following requirements class specifies the required metadata elements applicable to an entire CDB datastore.
Requirements Class - Global-Metadata |
|
/req/core/metadata- |
|
Target type |
Operations |
Dependency |
Specified metadata standard or profile of said standard. |
Requirement Metadata1 |
/req/core/metadata-repository |
Requirement Metadata2 |
/req/core/metadata-standard |
Requirement Metadata3 |
/req/core/metadata-global |
Requirement Metadata4 |
/req/core/metadata-language |
Requirement Metadata5 |
/req/core/metadata-encoding |
Requirement Metadata6 |
/req/core/metadata-datetime |
Requirement Metadata7 |
/req/core/metadata-temporal-interval |
Requirement Metadata8 |
/req/core/metadata-uom-measure |
Each of the fundamaental metadata requirements are now defined.
7.9.3.1. Global Metadata
Requirement Metadata1 |
/req/core/metadata-repository |
A |
Any CDB implementation, profile, extension, or application profile datastore SHALL have a global metadata file stored in the Global_Metadata folder in a CDB datastore. Global_Metadata is metadata applicable to all resources in a CDB datastore. |
B |
The Global_Metadata SHALL always be referenced/available in a subfolder in the CDB root folder (See Requirements 2 and 3 in CDB Core File Structure Requirements |
7.9.3.2. Specify the metadata standard being used.
Requirement Metadata2 |
/req/core/metadata-standard |
A |
Any CDB datastore SHALL use |
7.9.3.3. Link/Path to Global Metadata
Requirement Metadata3 |
/req/core/metadata-global |
A |
Any CDB datastore SHALL specify a Global_Metadata path or link to the physical location of the global metadata. |
7.9.3.4. Language for metadata
Requirement Metadata4 |
/req/core/metadata-language |
A |
Any CDB implementation, profile, extension, or application profile datastore SHALL use the same language. The language SHALL be consistent with IETF BCP 47. |
B |
The language SHALL be specified using the |
|
Note
|
An IETF BCP 47 language tag is a standardized code or tag that is used to identify human languages in the Internet. The tag structure has been standardized by the Internet Engineering Task Force (IETF) in Best Current Practice (BCP) 47; the subtags are maintained by the IANA Language Subtag Registry. The actual Best Practice language is captured in RFC 5646. |
7.9.3.5. Metadata encoding consistency
Requirement Metadata5 |
/req/core/metadata-encoding |
A |
Any CDB implementation, profile, extension, or application profile datastore SHALL use the same encoding for all metadata instances in a CDB datastore. Possible values are |
7.9.3.6. Date and Time Metadata
The following is the requirement for expressing date and time in any CDB metadata - whether at the global or resouorce level. This requirement is consistent with various OGC and ISO standards as well as with STAC.
Requirement Metadata6 |
/req/core/metadata-datetime |
A |
Searchable date and time. This may be a time instance or time period. The specification of date and time in any CDB metadata SHALL be specified in UTC. |
B |
Date and Time SHALL be formatted according to RFC 3339, section 5.6. RFC 3339 is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. |
7.9.3.7. Temporal Intervals
The following requirement defines how temporal (time) intervals are specified in a given CDB datastore. A given CDB Application Profile may further restrict how temporal intervals are specified in a CDB datastore. This requirement is exactly the same as specified in the (draft) OGC API - Records standard.
Requirement Metadata7 |
/req/core/metadata-temporal-interval |
A |
Temporal geometries are either a date-time value or a time interval. The parameter value SHALL conform to the following syntax (using ABNF): |
|
Note
|
Half-bounded time intervals are supported using a double-dot (..) or an empty string for the start/end. |
7.9.4. Global metadata for UoM
Requirement Metadata8 |
/req/core/metadata-uom-measure |
A |
Any CDB implementation, profile, extension, or application profile datastore SHALL use the same units of measure for measurements for the entire CDB datastore. Possible values are: |
B |
The metadata element name for encoding the UoM value SHALL be |
7.9.4.1. Global Metadata elements
The following are the metadata elements that describe an entire CDB datastore instance. In the following table, the first element name is from DCAT and the second element name is from ISO 19115: Metadata. In CDB 1.3 and earlier, global metadata were stored and accessible from /CDB/metadata. If using a file systems approach for a CDB datastore, then global metadata in CDB 2.0 and later may still be stored at /CDB/metadata. In this case, the Global_Metadata path or link to the physical location of the global metadata would be /CDB/metadata (See Metadata3 Requirement).
Metadata element Name |
DCAT and 19115 Names |
Description |
Mandatory or Optional |
ID |
|
A unique identifier for the entire CDB data store instance. This identifier is persistent and is considered global metadata. For example, this could be a Digital Object Identifier (DOI). |
Mandatory |
title |
|
Title by which the datastore is known. For global metadata describing a CDB data store, this would be a name given to the entire data store. For example, “Yemen demonstration CDB data store.” |
Mandatory |
description |
|
Detailed multi-line description to fully explain the datastore. |
Mandatory |
contactPoint |
|
Name of the person, position, or organization responsible for the resource. This is a text string. An example of a point of contact could be “Flight Safety” or “CAE.” |
Mandatory |
created |
|
A date which is used to help identify the datastore. For global metadata, this is the date that the CDB data store was created or issued. See Requirement Metadata6 above |
Mandatory |
language |
|
The language and character set used for the datastore (if a language is used). NOTE: See Metadata requirement 4 above. |
Mandatory |
update |
|
Date of last update to the CDB datastore. Note: Date gives values for year, month and day. Character encoding of a date is a string that shall follow the format for date as specified in Requirement Metadata6 above. |
Optional |
temporal |
|
The temporal extent of the datastore. For a CDB datastore, this would be the temporal range of when the data store was initially created to the point where the most recent content was created. |
Optional |
accessRights |
|
Security restrictions on the access and use of the datastore. These would be constraints for an entire CDB data store. This could be information necessary to generate an EDH compliant encoding. |
Optional |
license |
|
A sub-class of all access constraints. These legal constraints include copyright, patent, patent pending, trademark, license, Intellectual Property Rights, restricted, and other. At the global level, these are legal constraints applicable to an entire CDB data store. |
Optional |
7.9.4.2. Resource Metadata (aka dataset metadata)
|
Note
|
Should - for purposes of CDB - this be termed dataset metadata (dataset is part of the DCAT superclass Resource which also includes the super-class of dcat:Dataset, dcat:DataService, dcat:Catalog and any other member of a dcat:Catalog)? |
The following are the mandatory and optional metadata elements that describe an individual CDB dataset (resource). These elements are consistent with the STAC and OGC API Records dataset elements.
Field Name |
Description |
DCAT and ISO 19115 alignment |
Mandatory or Optionsal |
ID |
A unique identifier for the resource. This resource identifier is persistent. |
|
Mandatory |
type |
Denotes the resource type of the resource. For the dataset this is required to be |
|
Mandatory |
title |
A short descriptive human-readable one-line title for the Resource. |
|
Mandatory |
description |
Detailed multi-line description to fully explain the Resource. |
|
Mandatory |
keywords |
List of keywords describing the Resource. |
|
Conditional |
keywordsCodespace |
A reference to a controlled vocabulary used for the keywords property. |
|
Optional (defaults to XXX) |
externalId |
Identifier for the resource that is unique across the provider. |
|
Optional |
publisher |
The entity making the resource available. |
|
Conditional |
created |
The date and time the collection represented by this record was created, formatted as specifed in Requirement Metadata5 above. |
|
Conditional |
updated |
The date and time this resource was updated, formatted to RFC 3339. |
|
Optional |
themes |
A knowledge organization system used to classify the resource. |
|
Optional |
formats |
A list of available distributions for the resource. |
|
Optional |
contactPoint |
An entity to contact about the resource. |
|
Conditional |
license |
A legal document under which the resource is made available. |
|
Conditional |
rights |
A statement that concerns all rights not addressed by the license such as a copyright statement. |
|
Optional |
extent |
Spatial and temporal extents. |
|
Conditional |
associations |
A list of links for accessing the resource, links to other resources associated with this resource, etc. |
|
Optional |
CharacterSetCode |
A set of character coding standards that may be individually used by the text of a resource. May be one of utf8 or utf16 |
MD_CharacterSetCode from ISO 19115-1:2014 |
Optional. Default is utf8 |
|
Note
|
Conditional and optional metadata elements may be stated as mandatory in other requirements modules or in application profiles. |
7.10. Tiling Requirements Module (Abstract)
At an abstract level, this core Tiling Requirements Module specifies the mandatory Tiling Requirements for any CDB data store that is to be tiled. If a CDB data set is to be tiled, then this Abstract Requirements module is applicable.
The requirements specified in this clause have their foundation in the OGC Abstract Specification Topic 22 - Core Tiling Conceptual and Logical Models for 2D Euclidean Space. This Abstract Specification consists of two Parts: A General Tiling Conceptual Model and, based on the Conceptual Model, a Logical Model for the Tessellation (Tiling) of 2D Euclidean Space. Tiling of 2D Euclidean space is the most commonly known approach to partitioning space in traditional geospatial technology. The requirements specified in this clause are data type agnostic and are applicable to any geospatial dta type as well as geospecific and geotypical models.
7.10.1. Tiling, LoD, and Layers Logical Model
The following figure, based on the Tiling Abstract Specification Logical Model, shows the properties by class (concept) and the relationships between the classes.
7.10.2. CDB Core Tiling Requirements Class and Requirements.
The CDB Abstract Tiling Requirements module is optional. However, if tiling is to be implemented in a CDB data store, then this is a mandatory requirements class. Any tiling implementation, profile, extension, or application profile shall conform with this requirements class and related conformance class.
|
Note
|
While the same tiling structure is used for any and all tile sets (layers) in a CDB data store, the TileSet metadata is provided for each individual TileSet (layer) in the data store. This is because each tile set has a unique identifier (ID), point of contact, date of creation, and so forth. Please see the examples related to requirement Tiling10. As such, Requirements Tiling1 through Tiling8 can be thought of "global" parameters stored once in the global metadata. |
Requirements Class - Tiling-Abstract |
|
/req/core/geometry- |
|
Target type |
Operations |
Dependency |
OGC Abstract Specifcation Topic 22 - Tiling |
Dependency |
|
Dependency |
|
Requirement Tiling1 |
/req/core/tiling-rule |
Requirement Tiling2 |
/req/core/tiling-model |
Requirement Tiling3 |
/req/core/tiling-conformance |
Requirement Tiling4 |
/req/core/tiling-tilingscheme-consistent |
Requirement Tiling5 |
/req/core/tiling-tilingscheme-crs |
Requirement Tiling6 |
/req/core/tiling-tilingscheme-uom |
Requirement Tiling7 |
/req/core/tiling-tilingscheme-extent |
Requirement Tiling8 |
/req/core/tiling-tilingscheme-definition |
Requirement Tiling9 |
req/core/tiling-tileset-metadata-standard |
Requirement Tiling10 |
/req/core/tiling-tileset-metadata-elements |
Recommendation Tiling1 |
/req/core/tiling-extension |
|
Note
|
Need a requirement that states that the same tiling structure is used for any and all tiled content (layers). |
7.10.2.1. When to tile rule
Requirement Tiling1 |
/req/core/tiling-rule |
A |
Geospatial content, including vector data, coverages (such as elevation), and location specific models that are to be tiled SHALL be tiled according to the requirements specified in this abstract tiling requirements module. |
|
Note
|
There are data types in CDB where data is not inherently geospatial, such as a library of models, that can be used/placed in different places in the world, or a library of model textures that are used in more than one model. These data types typically are not tiled. |
7.10.2.2. Consistent with Topic 22
Requirement Tiling2 |
/req/core/tiling-topic22 |
A |
Any CDB implementation, profile, extension, or application profile that implements or references tiling (tiled data stores) SHALL be consistent with and conform to the terms and definitions and logical models as defined in OGC Abstract Specification Topic 22: OGC Abstract Specification Topic 22] - Core Tiling Conceptual and Logical Models for 2D Euclidean Space. |
7.10.2.3. Conformance with this Clause
Requirement Tiling3 |
/req/core/tiling-conformance |
A |
Any CDB implementation, profile, extension, or application profile that implements or references tiling (tiled data stores) SHALL be consistent with and conform to all other requirements specified in this Tiling Requirements Module. |
7.10.2.4. Tiling Scheme Restrictions
The following requirements restrict the Tiling Abstract Model.
7.10.2.4.1. Tiling scheme definition consistent across entire CDB datastore.
Requirement Tiling4 |
/req/core/tiling-tilingscheme-consistent |
A |
A tiling in a CDB SHALL conform to the same TilingScheme definition (consistent tiling throughout a CDB datastore) as defined by the following requirements and in any tiling extension such as CDBGlobalGrid and GNOSISGlobalGrid. |
|
Note
|
As per OGC Abstract Topic Volme 22, a TilingScheme is defined by the content defined in the TilingScheme class. |
7.10.2.4.2. TilingScheme CRS restriction
This requirement restricts Topic 22 Requirement 3.
Requirement Tiling5 |
/req/core/tiling-tilingscheme-crs |
A |
Any CDB tiling scheme SHALL have a TilingScheme CRS that is the same as, or compatible with, the CRS specified in req/core/crsStorage. |
7.10.2.4.3. TilingScheme UoM Restriction
This requirement restricts Topic 22 Requirement 4.
Requirement Tiling6 |
/req/core/tiling-tilingscheme-uom |
A |
Any CDB tiling scheme SHALL have a TilingScheme Units of Measure (UoM) that conforms to the UoM requirement as specified in /req/core/uom. This is the UoM as specified in the CRS metadata for a given CRS. For example, EPSG:4326 (2D WGS 84) specifies a UoM of decimal degrees. As such, a tiling scheme based on EPSG:4326 would have all coordinates and the tiling scheme definition, expressed in decimal degrees. NOTE: This UoM is not for mensuration, heights, or depths. |
7.10.2.5. TilingScheme Definition
The following requirement focuses on the core metadata. The first states that any metadata encoded in a CDB datastore will use the same semantics and elements names as specified in a named metadata standard.
|
Note
|
The approach is similar to what was implemented in CDB version 1.1 when the concepts of global and local metadata were specified. |
Requirement Tiling8 |
/req/core/tiling-tilingscheme-definition |
A |
Any CDB tiling scheme definition SHALL be included in the global CDB metadata that conforms with the metadata standard as specified in the req/core/metadata-global property specified in the global CDB metadata. |
7.10.2.6. TileSet Metadata
The following requirement focuses on the core metadata. The first states that any metadata encoded in a CDB datastore will use the same semantics and elements names as specified in a named metadata standard.
|
Note
|
The approach is similar to what was implemented in CDB version 1.1 when the concepts of global and local metadata were specified. |
Requirement Tiling9 |
/req/core/tiling-tileset-metadata-standard |
A |
Any CDB tileset SHALL have metadata that conforms with the metadata standard as specified in the req/core/metadata-global property specified in the global CDB metadata. |
The following requirement specifies the mandatory minimal metadata element set for a CDB tileset.
Requirement Tiling10 |
/req/core/tiling-tileset-metadata-elements |
A |
Any CDB tileset SHALL have at a minimum TileSet metadata that provides the following Metadata elements: |
An example of the mandatory TileSet metadata elements is:
ID: 1
Title: RoadNetwork
Description: This TileSet (layer) contains the CDB road and highway network.
Keywords: roads, streets, highways, trails.
7.10.2.7. Tiling/Lod Recommended Approach
To meet a stated design goal of interoperability and ease of transformations between CDB data store implementations and profiles, the CDB core standard recommends implementation of and conformance with one of the specified CDB Core Tiling Extensions, both based on the OGC Two-dimensional TileMatrixSet and TileSet metadata standard 2.0.
Recommendation Tiling1 |
*/rec/core/tiling-extension |
A |
Any CDB tiling scheme SHOULD comply with one of the following tiling extensions: |
7.11. Tiling Extension (TE) - CDB Global Grid
The CDB Global Grid Requirements Module defines the requirements for implementing a global tiling scheme hereafter termed CDB1GlobalGrid. This is a recommended extension to the CDB Core Tiling Requirements Module. This extension is applicable for any tiled CDB layer contained in a CDB data store. Of special note is that this tiling extension is backwards compatible with the current tiling structure as specified in the CDB 1.x series of standards. However, other tiling extensions to the Core can be defined using the same model as described below.
The requirements specified in this extension are based on the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (2DTMS). Any developer wishing to work with and implement the CDB tiling structure should read Clause 6 of 2DTMS.
|
Note
|
While this Tiling extension is optional, any implementations or application profiles using this extension must comply with the requirements stated in the Requirements Class and the related Conformance Class. |
|
Note
|
For the purposes of this extension, a tile matrix is equivalent to the definition of a tile set as defined in Topic 22. Further, a Tile Matrix Set is equivalent to a series of tile sets at different but related Levels of Detail (LoDs) that comprise a tile pyramid (see figure below). In general, all layers structured as tile sets/tile matrix sets have identical tiling schemes but may have unique metadata, such as point of contact, tile set ID, and date of creation. Also note that each tiled layer, such as railroads or elevations, is defined as a unique tile set/tile matrix set. |
An example of a tile matrix set (aka pyramid): Source, OSGEO GDAL 2022
7.11.1. CDB Tiling and the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (Informative)
Version 1 of OGC Two Dimensional Tile Matrix Set (2DTMS) defines the rules and requirements for a tile matrix set as a way to index space based on a set of regular grids defining a domain (tile matrix). Version 1 provided a limited list of scales in a Coordinate Reference System (CRS) as defined in [OGC 08-015r2] Abstract Specification Topic 2: Spatial Referencing by Coordinates. The latest revision of 2DTMS titled OGC Two Dimensional Tile Matrix Set and Tile Set Metadata provides numerous changes including detailed guidance and examples for specifying a tiled CDB datastore.
A key concept in 2DTMS that is relevant to the recommended CDB tiling scheme (CDB1GlobalGrid) is Variable width tile matrices. Many tiling schemes assume that matrixWidth is constant for all tile rows. This is common usage for projections that do not distort the Earth too much. However, when using any regular tessellation, the distortion increases for tiles closer to the poles. In the extreme, the upper row of the upper tile (the one representing the North Pole) contains a list of repeated values that represents almost the same position in the space.
The solution consists of reducing the number of tiles (matrixWidth) in the high latitude rows and generating those tiles with a compressed scale in the i dimension (see Figure 5). To allow this solution, the tile model must be extended to specify coalescence coefficients (c) that reduce the number of tiles in the width direction by aggregating c horizontal tiles but keeping the tileWidth (and tileHeight). The coalescence coefficient is not applied next to the Equator but is used in medium and high latitudes (the higher the latitude the larger the coefficient).
7.11.2. CDB 2.0 CDB1GlobalGridTiling Extension overview (Informative)
CDB1GlobalGrid The CDB1 Global Grid Tile Matrix Set defines tiles in the Equirectangular Plate Carrée projection (EPSG:4326 CRS) for the whole world, based on the level of details and zones defined by the OGC CDB 1.x Standards, which can be encoded following this standard with the use of variable widths. For the tile matrices with negative identifiers of the CDB1GlobalGrid, the tiles' geographic extents remain the same as those of tile matrix 0, but the tile size in cells is reduced. For the CDB1GlobalGrid, the polar adjustment zones corresponding to coalescence factors are the same (at a given latitude) for all tile matrices of the set.
Specifically, for the definitions and examples of a CDB1GlobalGrid, see:
Further, Annex E of 2DTMS includes definitions for TileMatrixSets utilizing the variable width capability. This capability allows for the coalescence of tiles in specific rows so that the overall width of the tile matrix is divided among fewer tiles. This is particularly well suited to define global grids in an Equirectangular Plate Carrée projection, where tiles closer to the pole cover a smaller physical area than tiles at the equator.
At each successive zoom level, each lower level tile is split into four new tiles at the next level of detail (zoom level). This subdivision can continue until the zoom level is high enough to accommodate the highest resolution data that is to be stored within a CDB X data store.
Annex G.2 of the 2DTMS Standard provides JSON and XML examples for the CDBGlobalGrid. Using the approach defined in Annexes E and G, one can define an arbitrary number of zoom levels. In the examples, 3 zoom levels are illustrated.
These are the JSON and XML definitions of the CDB1GlobalGrid tile matrix set (see CDB1GlobalGrid) that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
The following figures depict the CDB 1.x zones, determining the coalescence coefficients, as well as the Levels of Detail, determining the tile matrices for the CDB1GlobalGrid.
7.11.3. Tiling Extension Requirements Class
The requirements specified in this Requirements Module are consistent with the guidance provided for the CDB1GlobalGrid as defined in Annexes E and G of the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard.
|
Note
|
This CDB1GlobalGrid Tile Matrix Set defines tiles in the Equirectangular Plate Carrée projection (EPSG:4326 CRS) for the whole world, based on the level of details and zones defined by the OGC CDB 1.x standards, which can be encoded following requirements defined in this extension with the use of variable widths as defined in 2DTMS. |
Requirements Class - Tiling Extension |
|
/req/core/geometry- |
|
Target type |
Operations |
Dependency |
OGC Abstract Specification Topic 22 - Tiling |
Dependency |
|
Dependency |
|
Dependency |
|
Dependency |
|
Dependency |
|
Requirement TCE1 |
/req/core/tiling-extension-conformance |
Requirement TCE2 |
/req/core/tiling-extension-tms |
Requirement TCE3 |
/req/core/tiling-extension-crs |
Requirement TCE4 |
/req/core/tiling-extension-uom |
Requirement TCE5 |
/req/core/tiling-extension-metadata |
Requirement TCE6 |
/req/core/tiling-extension-lod-0 |
Requirement TCE7 |
/req/core/tiling-extension-tile-tessellate |
7.11.3.1. Conformance with this Clause
Requirement TCE1 |
req/core/tiling-extension-conformance |
A |
Any CDB implementation, profile, extension, or application profile that requires tiled data stores that are backwards compatible with CDB 1.x tiling SHALL be consistent with and conform to all requirements specified in this Tiling Extension Requirements Module. This Tiling Extension requirements module is a restriction (profile) of the Core Tiling Requirements Module (Abstract). |
7.11.3.2. Conformance with OGC Tile Matrix Standard
Requirement TCE2 |
req/core/tiling-extension-tms |
A |
Any CDB implementation, profile, extension, or application profile implementing this extension SHALL be consistent with and conform to all requirements in this CDB1GlobalGrid Tiling Extension Requirements Module by application of specific 2DTMS requirements as provided below and as defined in the CDB1GlobalGrid specified in Annex H. |
7.11.3.3. Conformance with EPSG:4326 Coordinate Reference System
Requirement TCE3 |
req/core/tiling-extension-crs |
A |
Any CDB implementation, profile, extension, or application profile that requires tiled data stores SHALL specify the use of EPSG:4326 as defined at "http://www.opengis.net/def/crs/EPSG/0/4326" with axis order latitude, longitude. |
B |
Further, any implementation, application profile, or extension SHALL be consistent with and conform to the CDB Core CRS Requirements Module. |
7.11.3.4. Units of measure rule for tile orgins, tile boundaries, and so forth
Requirement TCE4 |
req/core/tiling-extension-uom |
Any CDB implementation, profile, extension, or application profile that requires tiled data stores SHALL specify any tile origins, tile extents, tileset extents, and any other bounding box metadata in decimal degrees. |
7.11.3.5. Level of Detail (LoD) level 0 rule
Requirement TCE6 |
req/core/tiling-extension-lod-0 |
A |
The Level 0 (LoD) tiling of a CDB data store SHALL be a set of tiles with each tile being 1 degree in longitude and latitude in extent. In the CDB 1.x standard this is known as |
B |
This SHALL be referred to as LoD 0 (aka zoom level 0 and tile matrix identifier "0"). |
C |
As per the CDB 1.x standard’s requirements, at LoD 0 the matrix width SHALL be 360 and the matrix height SHALL be 180. |
7.11.3.6. LoD Hierarchy/Tessellation rule
Requirement TCE7 |
req/core/tiling-extension-tile-tessellate |
A |
A CDB datastore tiled using the CDB1GlobalGrid TilingScheme SHALL have an LoD range from -10 to 23. |
B |
A tile from LOD –10 to LOD 0 SHALL occupy the area of exactly one CDB Geocell. This is true for all CDB Geocells from all CDB Zones. Starting with LOD 1 and up, this area SHALL recursively be subdivided into smaller tiles, every level corresponding to a finer representation of the previous level allowing for multiple levels of detail. |
C |
LoDs of level 0 and higher SHALL have Tile sizes of 1024 × 1024. |
7.12. Tiling Extension (TCE) - GNOSISGlobalGrid
The Gnosis Global Grid Requirements Module defines the requirements for implementing the GNOSISGlobalGrid. This is a recommended extension to the CDB Core Tiling Requirements Module. This extension is applicable for any tiled CDB layer contained in a CDB data store. Of special note is that this tiling extension IS NOT compatible with the OGC CDB 1.x tiling structure.
The requirements specified in this extension are based on the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (2DTMS). Any developer wishing to work with and implement the CDB tiling structure should read Clause 6 of the 2DTMS Standard.
|
Note
|
While this Tiling extension is optional, any implementations or application profiles using this extension must comply with the requirements stated in the Requirements Class and the related Conformance Class. |
|
Note
|
For the purposes of this extension, a tile matrix is equivalent to the definition of a tile set as defined in OGC Abstract Specification Topic 22. Further, a Tile Matrix Set (TMS) is equivalent to a series of tile sets at different but related Levels of Detail (LoDs) that comprise a tile pyramid (See figure below) |
An example of a tile matrix set (aka pyramid): Source, OSGEO GDAL 2022
7.12.1. CDB Tiling and the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (Informative)
The OGC Two Dimensional Tile Matrix Set and Tileset Metadata (2DTMS) Standard defines the rules and requirements for a tile matrix set as a way to index space based on a set of regular grids (tile matrices) defining a domain.
A key concept in 2DTMS that is relevant to tiling CDB data is variable width tile matrices. Many tiling schemes assume that the tile width is constant for all tile rows. This is common usage for projections that do not distort the Earth too much. However, when using Equirectangular Plate Carrée projection the distortion increases for tiles closer to the poles. In the extreme, the upper row of the upper tile (the one representing the North Pole) contains a list of repeated values that represents almost the same position in the space.
The solution consists of reducing the number of tiles (the matrixWidth property in the 2DTMS Standard) in the high latitude rows and generating those tiles with a compressed scale in the i dimension. To support this solution, the tile model must be extended to specify coalescence coefficients (c) that reduce the number of tiles in the width direction by aggregating c horizontal tiles but keeping the tileWidth (and tileHeight). The coalescence coefficient is not applied next to the Equator but is used in medium and high latitudes (the higher the latitude the larger the coefficient).
The latest revision of 2DTMS (see release notes) provides detailed description of variable width TileMatrixSets suitable for tiling CDB data stores, such as the GNOSIS Global Grid.
7.12.2. CDB 2.0 GNOSISGlobalGrid Tiling Extension overview (Informative)
The CDB GNOSISGlbalGrid Tiling Extension Requirements Module is based on the GNOSISGlobalGrid as specified in the OGC TileMatrixSet registry, and documented in informative annexes of the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata[OGC 17-083r4] Standard (2022). Specifically, for the definitions and examples of a GNOSISGlobalGrid, see:
The GNOSISGlobalGrid Tile Matrix Set defines tiles in the Equirectangular Plate Carrée projection (EPSG:4326 CRS) for the whole world while still attempting to approximate equal area tiles, even near the poles, by leveraging the 2DTMS variable width capability supporting the coalescence of tiles in specific rows so that the overall width of the tile matrix is divided among fewer tiles.
This is particularly well suited to define global grids in an Equirectangular Plate Carrée projection, where tiles closer to the pole cover a smaller physical area than tiles at the equator.
Starting at the tile matrix with identifier 1, a variable matrix coalescence factor is applied for polar tiles to tend towards equal area.
Using the approach defined in Annexes E and G, one can define an arbitrary number of zoom levels if they follow the same pattern. In the examples, 3 zoom levels are illustrated.
Levels 0 to 28 are officially defined, reaching a 2:1 scale while the matrix, row and column identifiers can still fit together within a single 64-bit key.
This extension is easy to implement procedurally: It is a quad-tree starting with eight 90 x 90 degree tiles at level 0, with the exception that tiles touching a pole are split into 3 tiles rather than 4 — the part of the tile touching the pole is not split longitude-wise. Therefore, there will always be only 4 tiles touching each pole.
Note: The GNOSIS Global Grid scales match the GoogleCRS84Quad Well Known Scale Set, but starts at the third scale of the set.
Note: Aside from the variable width considerations, the only other difference with the WorldCRS84Quad TileMatrixSet is the fact that the latter starts at the second scale of the WKSS — its TileMatrix identifier 1 is equivalent to the GNOSISGlobalGrid TileMatrix identifier 0.
The following figure depicts the tiling configuration for Level 2 of the GNOSISGlobalGrid as defined in this extension.
7.12.3. Tiling Extension Requirements Class
The requirements specified in this Requirements Module are consistent with the guidance provided for the GNOSIS Global Grid as defined in Annexes E and G of the OGC Two Dimensional Tile Matrix Set and Tile Set Metadata Standard.
Requirements Class - Tiling Extension |
|
/req/core/geometry- |
|
Target type |
Operations |
Dependency |
OGC Abstract Specification Topic 22 - Tiling |
Dependency |
|
Dependency |
|
Dependency |
|
Dependency |
|
Dependency |
|
Dependency |
|
Requirement TCE1 |
/req/core/tiling-extension-conformance |
Requirement TCE2 |
/req/core/tiling-extension-tms |
Requirement TCE3 |
/req/core/tiling-extension-crs |
Requirement TCE4 |
/req/core/tiling-extension-uom |
Requirement TCE5 |
/req/core/tiling-extension-metadata |
Requirement TCE6 |
/req/core/tiling-extension-start-lod |
7.12.3.1. Conformance with this Clause
Requirement TCE1 |
req/core/tiling-extension-conformance |
Any CDB implementation, profile, extension, or application profile that implements or specifies the use of the GNOSISGlobalGrid tiling scheme SHALL be consistent with and conform to all requirements specified in this Tiling Extension Requirements Module. This Tiling Extension requirements module is a restriction (profile) of the Core Tiling Requirements Module (Abstract) and the Two Dimensional Tile Matrix Set and Tile Set Metadata Standard (2DTMS). |
7.12.3.2. Conformance with OGC Tile Matrix Standard and GNOSISGlobalGrid definition
Requirement TCE2 |
req/core/tiling-extension-tms |
A |
Any CDB implementation, profile, extension, or application profile implementing this extension SHALL be consistent with and conform to all requirements in the Tiling Extension Requirements Module by application of the TileMatrixSet and VariableMatrixWidth requirements as defined in the 2DTMS Standard. |
B |
Any CDB implementation, profile, extension, or application profile implementing this extension SHALL be consistent with and conform to the TileMatrixSet definition of the GNOSISGlobalGrid as specified in the OGC TileMatrixSet registry and documented in the informative annexes of the 2DTMS Standard. |
7.12.3.3. Conformance with EPSG:4326 Coordinate Reference System
Requirement TCE3 |
req/core/tiling-extension-crs |
A |
Any CDB implementation, profile, extension, or application profile that specifies or implements this extension SHALL specify the use of EPSG:4326 as defined at "http://www.opengis.net/def/crs/EPSG/0/4326" with axis order latitude, longitude. |
B |
Further, any implementation, application profile, or extension SHALL be consistent with and conform to the CDB Core CRS Requirements Module. |
7.12.3.4. Units of measure rule for tile orgins, tile boundaries, and so forth
Requirement TCE4 |
req/core/tiling-extension-uom |
Any CDB implementation, profile, extension, or application profile that specifies or implements this extension SHALL specify any tile origins, tile extents, tileset extents, and any other bounding box metadata in decimal degrees. |
7.12.3.5. Level of Detail (LoD) level 0 rule
Requirement TCE6 |
req/core/tiling-extension-start-lod |
A |
The CDB GNOSISGlobalGrid tiling scheme SHALL start with a 2x4 grid of tiles with each tile being 90 degrees in longitude and latitude in extent. |
B |
This SHALL be referred to as zoom level 0 (or tile matrix identifier "0"). |
C |
Tile splitting rules SHALL_ follow those specied in the 2DTMS GNOSISGlobalGrid annexes. |
7.13. Topology Core Requirements Module
The CDB Topology Requirements Module specifies requirements and recommendations for using topology for vector data in a CDB datastore.
Topology is the branch of mathematics describing the properties of objects which are invariant under continuous deformation. For example, a circle is topologically equivalent to an ellipse because one can be transformed into the other by stretching. In geographic modelling, the foremost use of topology is in accelerating computational geometry. The constructs of topology allow characterization of the spatial relationships between objects using simple combinatorial or algebraic algorithms. Topology, realized by the appropriate geometry, also allows a compact and unambiguous mechanism for expressing shared geometry among geographic features. [GML, 2007]
Traditionally in GIS, Topology operations are used to manage shared geometry, define and enforce data integrity rules, support topological relationship queries and navigation, and build more complex shapes such as polygons from primitive ones such as lines. The use of topology also supports the detection and correction of digitizing errors and performing network analysis computations.
7.13.1. Topology concepts and terminology
In CDB 1.x, the concepts of topology, geometry, and features are "mixed" together and not treated as separate abstract classes. In reality, topology can be defined as a graph with no geometry and no feature type designations. Therefore, in CDB 2.0 and later, the following note is relevant in understanding the topology requirements module:
|
Note
|
Topological primitives are equivalent to but are not subclasses of geometric primitives. This is consistent with the view that topological complexes are constructed to optimize computational geometry procedures by the use of combinatorial algorithms. This also permits the creation of structures that ignore geometric constraints by using a topological complex that is not realized by a geometric complex. [ISO 19107:2017] |
|
Note
|
A reading of the CDB 1.x Topology clauses and requirements suggests that CDB 1.x requirements are not in conflict with ISO 19107:2017 or the requirements as specified in this CDB 2.0 Topology Requirements Module. |
Figure: Topology Class Diagram. Source: ISO 19107:2017
The following are key definitions used in the CDB Core Topology Requirements Module. These definitions are extracted from ISO 19107:2017.
direct position
Position described by a single set of coordinates within a coordinate reference system (CRS).
directed edge
Directed topological object that represents an association between an edge and one of its
orientations.
Note 1 to entry: A directed edge that is in agreement with the orientation of the edge has a + orientation, otherwise, it has the opposite (–) orientation. Directed edge is used in topology to distinguish the right side (–) from the left side () of the same edge and the start node (–) and end node () of the same edge and in computational topology to represent these concepts.
directed face
Directed topological object that represents an association between a face and one of its
orientations.
Note 1 to entry: The orientation of the directed edges that compose the exterior boundary of a directed face will appear positive from the direction of this vector; the orientation of a directed face that bounds a topological solid will point away from the topological solid. Adjacent solids would use different orientations for their shared boundary, consistent with the same sort of association between adjacent faces and their shared edges. directed faces are used in the coboundary relation to maintain the spatial association between face and edge.
directed node
Directed topological object that represents an association between a node and one of its
orientations.
Note 1 to entry: Directed nodes are used in the coboundary relation to maintain the spatial association between edge and node. The orientation of a node is with respect to an edge, "+" for end node, "–" for start node. This is consistent with the vector notion of "result = end - start".
edge
1-dimensional topological primitive.
Note 1 to entry: The geometric realization of an edge is a curve. The boundary of an edge is the set of one or two nodes associated with the edge within a topological complex.
edge-node graph
Graph embedded within a topological complex composed of all of the edges and connected
nodes within that complex.
Note 1 to entry: The edge-node graph is a subcomplex of the complex within which it is embedded.
end node
Node in the boundary of an edge that corresponds to the end point of that edge.
face
2-dimensional topological primitive.
Note 1 to entry: The geometric realization of a face is a surface. The boundary of a face is the set of directed edges within the same topological complex that are associated with the face via the boundary relations. These can be organized as rings (aka polygons).
interior Set of all direct positions that are on a geometric object but which are not on its boundary. In traditional GIS terminology, an interior is an island or hole contained within a polygon.
isolated node
Node not related to any edge. In traditional GIS, an isolated node with a direct position property is known as a point geometry.
start node
Node in the boundary of an edge that corresponds to the start point of that edge
as a curve.
Figure: Example of Topology Primitives and related geometry elements.
In the above figure, the topological and related geometries are depicted. The tables are provided as examples of how the topological information could be organized. However, specific table organization is beyond the scope of the CDB Core Topology Module.
In the CDB 2.x context:
A node primitive is a 0 dimensional topological primitive. The node may have or not have additional properties such as height or depth and other attributes, such as a feature code or type. A node may or may not be connected to a network. An isolated node typically is a point feature with an associated coordinate (direct position). An example might be a lighthouse or fire hydrant. A node that has one or more associated edges is a directedNode and represents a node in a directed graph. A directed node differentiates between edges that start at the node and those adjacent edges that terminate at the node.
An edge is a one dimensional topological primitive defined by a set of linestring (curve) primitives that define the geometry connecting two nodes. A directedEdge begins at a start node and terminates at an end node. These start and end nodes are defined as directedNodes: The node is with respect to an edge, "+" for end node, "–" for start node. It is possible for two nodes to be connected with no geometry. An example is a straight line road segment between two road intersections. In this case, the line geometry is defined by the start and end nodes.
A face is a two dimensional topological primitive. The geometric realization of a face is a surface. The boundary of a face is the set of directed edges within the same topological complex that are associated to the face via the boundary relations. These can be organized as rings or as they are more traditionally known, polygons.
At the fundamental level, topology is an edge-node graph of primitive concepts with no geometry or attributes other than identifiers. Edge-node graphs are very useful in many applications. However, in the geospatial world the majority of topologically structured networks exist in relation to the surface of the earth and have geometries. The geometries specified for use in CDB 2.x are defined in the CDB Core Geometry Model Requirements Module.
7.13.2. Topology, Geometry, and Features
Topology is represented as a graph. A "pure" topology graph does not have a coordinate system nor is there the concept of geometry or coordinates. The addition of spatial coordinates ties the graph to some coordinate system. For CDB all coordinates, bounding boxes, and so forth are expressed in the coordinate reference system as defined in the CDB Core CRS Requirements Module. The addition of coordinates to the model enables expressing nodes as points, edges as linestrings, and faces as polygons. The definition of any geometry in a CDB data store is defined in the CDB Core Geometry Requirements Module. While topology and geometry are useful in many applications, the majority of user facing GIS applications also have attributes associated with a geometry and may also have metadata. At this point, such entities are typically described as features.
7.13.3. Crosswalk with 1.x Terminology
The following table provides a terminology crosswalk between what is defined in the CDB 2.x Standard and what is defined in the Topology Clause of the CDB 1.x Standard. While there is not a one to one mapping, the concepts are closely aligned. The exception is the case for using Junction ID (JID) where the JID (node) is for relating two different feature types, such as a road intersecting a river. The other JID use case in 1.x is for a change of feature code within a network, such as a road changing from 2nd class to 3rd class. In 2.x, the case would just be a node primitive and not have a special ID.
CDB 2.x |
CDB 1.x |
Start Node |
Start Junction ID (SJID) |
End Node |
End Junction ID (EJID) |
Isolated Node |
When no ID specified (i.e., blank), the feature is not connected to any other features. A point geometry. |
Edge |
Series of points connected together using lineal and polygon features. |
7.13.4. Topology Core Requirements
The following specifies the set of requirements and recommendations that comprise the CDB Core Topology Requirements Module
Requirements Module - Topology. |
|
/req/core/topology |
|
Target type |
Operations |
Dependency |
OGC Abstract Specification Topic 1: Spatial Schema (ISO 19107:2017) |
Requirement 1 |
/req/core/topology-topic1 |
Requirement 2 |
/req/core/topology-nodeid |
Requirement 3 |
/req/core/topology-edgeid |
Requirement 4 |
/req/core/topology-node-dir |
Requirement 5 |
/req/core/topology-edge-dir |
Requirement 6 |
/req/core/topology-edge-clip |
Each of the core topology requirements is now described.
7.13.4.1. Conformant with ISO 19107:2017 (aka OGC Abstract Specification Topic 1)
Topology Requirement 1 |
/req/core/topology-topic1 |
7.13.4.2. Unique Node Identifiers
In order to uniquely identify any node in graph, each node shall have a unique identifier. This core standard does not specify how the identifier is to be structured. However, examples could be an integer number or a combination of a tile identifier and an integer number. In CDB version 1.x, the node identifiers were knowns as the SJID, EJID or JID attributes.
Topology Requirement 2 |
/req/core/topology-nodeID |
7.13.4.3. Unique Edge Identifiers
In order to uniquely identify any edge in graph, each node shall have a unique identifier. This core standard does not specify how the identifier is to be structured. However, examples could be an integer number or a combination of a tile identifier and an integer number.
Topology Requirement 3 |
/req/core/topology-edgeID |
7.13.4.4. Directed Nodes
The following requirement is for any node that has one or more edge elements associated with that node. Any node with no connected edges is termed an isolated node and as such this requirement does not apply. A directed node has edges "entering" the node and "leaving" the node. This information needs to be part of the vector dataset.
Topology Requirement 4 |
/req/core/topology-node-dir |
7.13.4.5. Directed Edges
The following requirement is for any edge that has two elements associated with that edge. This includes artificial (virtual) nodes generated by processes that clip edges to tile boundaries.
Topology Requirement 5 |
/req/core/topology-edge-dir |
7.13.4.6. Faces - Recommendation
Faces are a two dimensional topological primitive that is generated by traversing a set of edges to generate an exterior boundary (aka polygon). Generation of faces is not required unless the application profile specifies the generation of polygon coverages as defined in ISO 19123:2005 - Schema for coverage geometry and functions. The Core Topology Requirements module does not specify winding order for the face. Further, the CDB Core does not specify how topology traversal is accomplished nor how the face "tables" are structured. These are considerations for CDB Application Profiles and specific implementations.
Topology Recommendation 1 |
/rec/core/topology-face |
7.13.4.7. Clipping edges at tile boundaries.
A CDB Topological network is broken into tiles. Therefore, any edge crossing a tile boundary will need to be clipped and a new node generated for the directed point generated by the clip operation.
|
Note
|
Clipping sounds trivial and the mathematics is trivial. However, there are numerous "corner" cases such as an edge that ends right at the corner of a tile. There are also issues of precision and accuracy that may cause the location of the node’s direct position to be slightly different from one tile to the next. These are implementation considerations and as such are not considered in the Core Topology Module. |
Topology Requirement 6 |
/req/core/topology-clip |
7.13.5. Face Topology Primitive - Optional
Faces are a two dimensional topological primitive that is generated by traversing a set of edges to generate an exterior boundary (aka polygon). Generation of faces is not required unless the application profile specifies the generation of polygon coverages as defined in ISO 19123:2005 - Schema for coverage geometry and functions. The Core Topology Requirements module does not specify winding order for the face. Further, this core module does not specify how topology traversal is accomplished nor how the face "tables" are structured. These are considerations for CDB Application Profiles and specific implementations.
The generation of faces is an optional requirements class. Traversal of the topology graph to form faces in order to create (when combined with geometry) polygons requires conformance to this class. Traversal of the graph to detect topological consistency errors does not require conformance to this class.
7.13.5.1. Relation of topological face to a polygon.
The geometric realization of a face is a surface. The boundary of a face is the set of directed edges within the same topological complex that are associated to the face via the boundary relations. The term boundary is most commonly used in the context of geometry, where the set is a collection of points or a collection of objects that represent those points. The extent of a polygon in 2D is totally defined by its boundary.
In more simple terms [Source: 1-Spatial]:
Faces exist in planar topology only and represent the interior of an area formed by enclosing edges. A polygon is represented by one or more faces.
The edges describe the outer and inner boundaries of the face geometry and any edges contained by, but not bounding, the face.
To ensure that faces never overlap, edges cannot cross edges. If an edge does cross another edge, a node is created at the junction and each edge is split into two edges.
Adjacent faces share an edge, but the edge is used in opposite directions when defining such entities as a polygon complex.
Requirements Module - Topology Faces. |
|
/req/core/topology-face |
|
Target type |
Operations |
Dependency |
OGC Abstract Specification Topic 1: Spatial Schema (ISO 19107:2017) |
Requirement Face1 |
/req/core/topology-topic1 |
Requirement Face2 |
/req/core/topology-faceid |
Requirement Face3 |
/req/core/topology-face-structure |
Requirement Face4 |
/req/core/topology-winding |
7.13.5.2. Conformance with ISO 19107:2017
As with all other topological primitives, if faces are to be generated, then the application profile and/or implementation has to be consistent with ISO 19107:2017
Face Topology Requirement 1 |
/req/core/topology-topic1 |
7.13.5.3. Unique Face ID
As with Node and Edge primitives, every Face has a unique identifier.
In order to uniquely identify any face in graph, each face shall have a unique identifier. This core standard does not specify how the identifier is to be structured. However, examples could be an integer number or a combination of a tile identifier and an integer number.
Face Topology Requirement 2 |
/req/core/topology-faceID |
7.13.5.4. Structure of a Face primitive
Face Topology Requirement 3 |
/rec/core/topology-face-structure |
7.13.5.5. Face winding order
Winding order refers to the "direction" used to generate a Face and create the subsequent list of node IDs and Edge IDs that define the face. Winding order is either clockwise or counterclockwise.
Face Topology Requirement 4 |
/rec/core/topology-face-winding |
7.13.5.6. Islands/Holes
Quite often, a polygon geometry as defined by the face definition contains islands or holes. A typical example would be a lake geometry containing one or more "real" islands. In ISO 19107 terms, islands are interior boundaries. While the ability to define, store, and process islands is a critical feature for any GIS, this CDB Core requirements module does not specify how islands are associated with the parent polygon geometry (exterior boundary). If required, such associations should be defined in an CDB application profile.
7.13.6. An example logical model for topologically structured vector data
The following diagram is extracted from the 1984 Map Overlay and Statistical System Topology Implementation Study funded by the USGS. This diagram represents are fairly typical logical model for structuring topological relationships and content for use in a datastore. There are other similar examples from the late 1970’s through the 1980’s.
|
Note
|
Due to the requirement that a typical GIS needs to support both geometry and features, this diagram is more extensive than just showing pure topology. This is why such concepts as cartographic symbolization and labeling are shown. Also note that the "core" concept is feature.
|
7.14. Versioning
Versioning is used extensively in fielded CDB 1.x implementations. A primary principal of the CDB 1.x approach is the direct replacement of a file in a parent CDB datastore by an identically named file in a linked child dataset. Anyone at any level in the operation of the site of the simulators is able to assume the files are 'packaged' identically in every CDB dataset, whether it was produced locally, or produced as a product purchased, or acquired through sharing, and so forth. Versioning is used to distribute a small change very rapidly. The versioning capability remains a critical component of the CDB 2.0 Standard. The Versioning Requirements Class specifies the core abstract requirements for versioning of a CDB datastore.
In CDB 2.0 and later, the concept versioning represents a collection of one or more changes to content in the datastore, including modifications, additions, and deletions. A key aspect of versioning in CDB 2.0 is the provision of metadata that describes the change(s). A key global metadata element is the date and time of the collection of modification(s). Having such metadata enables the ability to view changes over time and/or rollback to previous versions of the entire datastore or a given asset, such as a specific building, in the datastore.
|
Note
|
Versioning is not the CDB Version number. The CDB Version number is the version of the CDB Standard that a datastore is based on. These include 3.0, 3.1, 3.2, OGC 1.0, OGC 1.1, OGC 1.2, and OGC 1.3. Implementation of the CDB 2.0 Standard would extend this list to a CDB Version number 2.0
|
7.14.1. Versioning Requirements Class
Requirements Class - Versioning |
|
/req/core/versioning |
|
Target type |
Operations |
Dependency |
Target storage system. |
Dependency |
|
Dependency |
|
Requirement Versioning1 |
/req/core/versioning |
Requirement Versioning2 |
/req/core/version-collection |
Requirement Versioning3 |
/req/core/versioning-metadata |
Requirement Versioning4 |
/req/core/versioning-functions |
Requirement Versioning5 |
/req/core/versioning-file-replacement |
Requirement Versioning6 |
/req/core/versioning-transitory |
7.14.2. A CDB datastore implementation shall support versioning
Any CDB datastore implementation needs to provide some mechanism for applying and tracking changes to the assets maintained in a CDB datastore.
Requirement Versioning1 |
req/core/versioning |
A |
Any CDB datastore implementation SHALL support the ability to apply and track any changes to a CDB datastore These include adding, deleting, and updating assets in the datastore (CRUD). |
7.14.3. Collection of changes
A revision to a CDB datastore may include one to many changes to one or more assets in the datastore. These changes include modifications to geometry, attributes or both, updates to models, deletions, and additions and more. The set of changes is referred to as a versioning collection.
Requirement Versioning2 |
req/core/versioning-collection |
A |
Any CDB datastore implementation SHALL support the ability to apply and track any changes to a CDB datastore. |
7.14.4. Versioning metadata
Requirement Versioning3 |
req/core/versioning-metadata |
A |
Anytime a versioning collection of changes is applied to a CDB datastore, the following metadata updates SHALL be implemented: |
B |
The CDB Global Metadata Element |
C |
The CDB Local Resource Metadata Element |
Need words on how to link the resource to additional information about the chnage to the asset, such as who did it and a description.
7.14.5. CRUD
Any CDB implementation needs to support the traditional CRUD functions include adding, deleting, and updating assets in the datastore.
Requirement Versioning4 |
req/core/versioning-functions |
A |
Any CDB Implementation SHALL support creating (adding) assets in a CDB datastore. |
B |
Any CDB Implementation SHALL support deleting assets in a CDB datastore. |
C |
Any CDB Implementation SHALL support updating assets in a CDB datastore. |
7.14.6. Minimum update capability - File (Asset) replacement
For update at a minimum a CDB implementation needs to support a file/table replacement mechanism. A CDB file replacement allows content in a CDB datastore to be easily updated. Examples are textures, models, or terrain datasets that have been updated and/or edited.
Requirement Versioning5 |
req/core/versioning-file-replacement |
A |
Any CDB datastore implementation SHALL at a minimum support the ability to replace a file (or table) in a CDB datastore. |
7.14.7. Transitory (ephemeral) Assets
Quite often an asset in a CDB datastore will change state. For example, a road may be temporarily closed or a bridge damaged by a flood. These transitory events need to be reflected in a CDB datastore so that end user clients or simulators can use that information to modify a visualization, an analysis, or a simulation.
Requirement Versioning6 |
req/core/versioning-transitory |
A |
Any CDB datastore implementation SHALL at a minimum support the ability capture a change of state for any geospatial asset in a CDB datastore |
Annex A: Abstract Test Suite (Normative)
A.1. Introduction
The following is the Abstract Test Suite for determining if a CDB 2.x extension, profile, or implementation is conformant withe the CDB 2.0 or later core requirements modules.
A.2. Conformance Class Core
Abstract Test 1 |
/conf/minimal-core |
Test Purpose |
Validate that any CDB 2.0 and later datastore implements the minimum set of mandatory conformance classes as specified below. |
Requirements Classes |
|
Test Method |
|
Annex B: Annex CDB Design Principles
The following are the major design principles that guided the development and documentation of the CDB 2.0 Core Standard. These principles are based on implementation experience, OGC SWG discussions, and results of experimentation in the SOFWERX CDB Sprint.
-
Performance: Potential impacts on performance SHALL be a design consideration for decisions on core requirements.
-
Deterministic: Requirements in the core SHALL support the definition of deterministic structures in any CDB application profile.
-
Geometry model: All geometry for any vector feature data SHALL be compliant with the OGC/ISO Simple Features Geometry Model.
-
Core as mandatory: There is a core set of requirements and conformance classes that SHALL be implemented in any implementation instance of a CDB data store.
-
Tiling: The core SHALL specify an optional requirements class for tiling. This requirements class SHALL be consistent with the requirements as stated in OGC Abstract Specification Topic 22 - Core Tiling Conceptual and Logical Models for 2D Euclidean Space. Further, the optional tiling requirements class SHALL support the tiling of any layer as does the current CDB standard.
-
LoD: The core SHALL specify an optional requirements class for Levels of Detail (LoD).
-
Storage Independence: The core requirements SHALL be implementable in any storage structure ranging from a file system (as today) to container technology such as GeoPackage to the cloud.
-
Attribute model: The CDB core should not mandate any particular data dictionary or content
-
Instead provide the conceptual and logical metamodel for describing any ISO 19109 compliant application schema to the maximum extent practical.
-
There should be no technical reason why one could not develop an extension profile for CDB for any particular data dictionary that complies with ISO 19109.
-
Delegate entity and attribute physical encoding choices to vector and 3D model containers instead of specifying globally.
-
-
Holistic foundation: Any CDB application profile structures SHALL comply with the data structures, requirements and conformance classes defined in the core.
-
3D Model Independence: CDB 2.0 and later SHALL support 3D model encoding beyond OpenFlight. Requirements for using glTF SHALL be specified as an optional requirements class.
-
Metadata: CDB and later SHALL specify mandatory and optional metadata elements including support for provenance. Any application profiles SHALL clearly specify metadata elements/requirements for that profile.
-
The ability to version the contents of a CDB datastore is mandatory.
-
Significant Size: Storing ‘significant size’ on model instancing point features can significantly improve the model retrieval scheme, rather than storing models in the significant size related folder scheme. Storing and evaluating significant size on instancing points can make visual content and performance tuning much more practical.
B.1. Detailed Design Principles and Objectives
The following are more fine grained design principles and objectives for key aspects of the CDB-2.0 and later Core.
B.1.1. Design Objectives for CDB X Tiling, LoDs and Layers
The following are the design principles for a CDB 2.0 and later tiling, levels of detail, and layering. These design principals were discussed and documented during Phase 1 discussions as well as during the experimentation. Again, for the purposes of expediting experimentation, GeoPackage was the choice for a standard container.
-
Use metadata for whole datasets that describe how data layers are regrouped (LOD grouping and data layer grouping).
-
Provide for fewer top level tiles than in OGC CDB 1.x.
-
Store imagery in a container according to the tiling scheme specified below.
-
Store coverage data in the container according to the tiling scheme specified below (
need anchor). Suggested coverage types based on current CDB standard and user specified requirements: (Ellipsoidal body surface): Elevation models, visual and non-visual (multi-spectral) imagery, terrain light maps (emissive at night), and raster materials (for non-visual sensors). Should be extensible to support other types. -
Spatial filters appear to easily mimic the existing CDB tiling scheme. Therefore, the CDB-2.0 and later core standard should specify requirements that support the ability to 1.) Specify such filters and 2.) Provide highly performant queries.
-
Any tiled data store should have tileset metadata for each tileset. This should include moving the minimum and maximum elevation values for the gridded elevation coverage contained in a tile to the tile metadata.
-
Elevation min-max - Move the minimum and maximum elevation values for the gridded elevation coverage contained in a tile to the tile metadata.
-
Need to keep the various encodings that CDB 1.x already has:
-
Elevation compression encodings (use of scaled integers vs floating point for smaller data sizes).
-
Elevation grids that are adjustable (better terrain fidelity at lower LODs/zoom levels)
-
Raster Material encodings using multiple coverage layers.
-
Imagery Compression (Imagery is typically the largest layer in CDB by disk storage).
-
-
Must enable a "relatively" easy migration path from the CDB 1.1/1.2 tiling/LoD structure into the CDB 2.0 and later structure.
B.2. Design Objecctices for Metadata and Provenance
-
Metadata and provenance content should be self-describing.
-
Keep the core set of mandatory metadata elements limited and simple.
-
Define an extensible CDB metadata model that allows for easily incorporating additional metadata elements for specific data types, domains or applications.
-
Discuss and agree on element names for the mandatory elements.
-
Every CDB dataset should have its own metadata that describes the content of that specific dataset.
B.3. Design principles from SOFWERX Sprint - CDB 2.0 Design Goals and Objectives
-
Any profiles based on the core shall have the following requirements:
-
Correlation Requirement: CDB-T, CDB-S, CDB-G and CDB-A profiles shall correlate to the data defined in CDB-F.
-
Derivative and Optional structures: Application profiles shall encode rules and mechanisms for optimization in a self-describing form.
-
Keep stuff here until ready to delete.
-
Performance is a key design objective for CDB 2.0. Structured-data enables run-time performance. Be as performant as possible in terms of 1.) Speed of access and 2.) Impact on hardware resources.
B.4. Additional 2.0 Design Requirements
-
Adopt the latest version of OpenFlight, leveraging the extended materials, hot spots, and other important constructs provided in the latest version.
-
Consider a Model indexing scheme that includes the following: Model LoDs, Interior and exteriors, Navigation and collision mesh.
-
Consider reducing the current number of files in CDB 1.x, a recommendation is to group each model data into a zip (all LODs, textures etc…) while keeping the xml (index file) separate. A quick access to the index file would allow identifying what is required to be loaded into each ZIP. See Model Indexing recommentation. This is a possible CDB 1.3 enhancement.
Annex C: Annex C Description of the High Level Architecture
The following figure presents a high level CDB 2.0 conceptual model.
C.1. Three tiered architecture
The CDB 2.0 architecture is comprised of three primary tiers.
-
Tier 1 - Technology and Implementation Agnostic. This tier contains the components of the model that are technology, language, platform, vendor, and implementation agnostic. This tier is also heavily vested in a number of existing OGC, ISO, W3C, and IETF Standards.
-
Tier 2 - Implementable and Use case/technology specific. This tier documents the components of the architecture that can be implemented.
-
Tier 3 - Implementation specific details based on content (resource) type. This tier is comprised of model components that describe in detail the requirements and properties for utilizing specific content/resources in a CDB data store.
C.1.1. Tier 1
C.1.1.1. Foundation Conceptual Models and Abstract Foundation Standards
Tier 1 is abstract. At the base level Tier 1 is a foundation consisting of a number of OGC Abstract Specifications, ISO TC 211 91xxx series International Standards, and standards from other Standards Development Organization such as the W3C and the IETF.
The OGC Abstract Specification and ISO 19xxx Standards provide the conceptual foundation for OGC Standards development activities. They also provide a conceptual (abstract) foundation for many other geospatial standards development activities in the IETF, W3C, OASIS, and a large number of government organizations. Open interfaces and protocols can be designed, built, and referenced against the Abstract Specification, thus enabling interoperability between different platforms, applications, and different spatial processing systems. The Abstract Specification provides a reference model for the development of standards that can be implemented, such as CDB 2.0 Core.
The following OGC and ISO Abstract Standards provide key components of the foundation for the CDB 2.0 Core conceptual architecture, logical models, and subsequent detailed implementation requirements and conformance classes.
-
Topic 2: Referencing by coordinates (aka ISO/DIS 19111:2018): This document defines the conceptual schema for the description of referencing by coordinates. It describes the minimum data required to define coordinate reference systems. All Coordinate and Coordinate Reference System requirements and terms and definitions specified in CDB 2.0 are based on this OGC Abstract Specification.
-
Topic 1: "Features and geometry – Part 1: Feature models" describes how geographic information in datasets and databases using a "feature model" are structured, created, stored, queried, and manipulated. Topic 1 (an earlier version) is the basis for the OGC Simple Features Standard. Simple features is an OGC Implementation Standard that is the basis for many other standards, such as GeoJSON and the GeoPackage vector storage model.
-
Topic 6: Topic 6 - Schema for coverage geometry and functions (aka ISO 19123) defines a conceptual schema for the spatial characteristics of coverages. Coverages support mapping from a spatial, temporal or spatiotemporal domain to feature attribute values where feature attribute types are common to all geographic positions within the domain. A coverage domain consists of a collection of direct positions in a coordinate space that may be defined in terms of up to three spatial dimensions as well as a temporal dimension.
-
Topic 22: OGC Abstract Specification Topic 22 - Core Tiling Conceptual and Logical Models for 2D Euclidean Space Describes 1.) a conceptual model for tiling space in any dimension and 2) A logical model for 2D tiled structures and by extension tiling. The logical model is based on the conceptual model.
C.1.1.2. Tier 1 Logical Model
The CDB Logical Model describes the core elements and required implementation rules for the CDB Standard. Terms and definitions, semantics, concepts and other elements of the CDB logical model are primarily based on the conceptual models defined in the abstract standards described above.
For example, the OGC Topic 2: Referencing by coordinates Standard provides an extensive vocabulary for terms and definitions used in referencing. These terms and definitions are included by reference as normative in the CDB Standard. Topic 2 also defines:
-
Two classes of conformance for relating coordinates to coordinate metadata; and
-
Twenty six classes of conformance for the definition of a coordinate reference system (CRS) or of a coordinate operation.
These conformance classes provide the basis for all Coordinate Reference System (CRS) requirements and conformance clauses specified in the CDB Core Standard. These classes along with the requirements specified in the WKT for CRS Standard are the basis for all CRS requirements specified in every OGC Standard that specifies the use of a CRS.
C.1.1.3. Tier 1 CDB Metadata, Controlled Vocabularies, and Metadata Files
A critical aspect of developing, curating, maintaining, and using a CDB data store in a well known, interoperable manner is the definition and use of metadata. In CDB, the term metadata is often used in a much broader context than just "data about data". Metadata in a CDB data store is comprised by "traditional" metadata such as the author of a dataset, controlled vocabularies such as country names and codes, and enumerations such as months of the year.
In the CDB Core Standard, a single metadata standard is not specified as mandatory for encoding of metadata. The CDB 2.0 Standard allows for a number of metadata standards to be specified. However, the CDB 2.0 Core Standard does specifiy that all data sets shall have a minimum set of metadata.
The three main types of metadata utilized in a CDB data store are now defined.
C.1.2. Metadata
Metadata is data that provides information about other data. In the geospatial community and the rapidly emerging spatial web community, metadata is critical to operations such as discovery and determining whether a resource is “fit for purpose”. Three distinct types of metadata exist: descriptive metadata, structural metadata, and administrative metadata (National Information Standards Organization (NISO)).
-
Descriptive metadata describes a resource for purposes such as discovery and identification. It can include elements such as title, abstract, author, and keywords.
-
Structural metadata is metadata about containers of metadata and indicates how compound objects are put together, for example, how pages are ordered to form chapters.
-
Administrative metadata provides information to help manage a resource, such as when and how it was created, file type and other technical information, and who can access it. <end Wikipedia>
The geospatial community has a long and extensive history in defining and using metadata for geospatial resources. Without metadata, discovery of required resources and determination of whether a resource is “Fit for Purpose” becomes difficult if not impossible. The geospatial community makes use of all three types of metadata, although the first and third are more critical. The CDB use of metadata focuses on use cases 1 and 3.
C.1.2.1. Tier 1 Implementation Standards
Tier 1 may also reference Implementation Standards
-
Elements of existing OGC Implementation Standards, such as the Two Dimensional Tile Matrix Set Standard are specified as components of the CDB 2.0 Core Standard. In other words, such as with the case of tiling, the rules specified in the Core are applicable to all use cases, extensions, information domains, or profiles of the Core.
-
Specific guidance and requirements are specified for characteristics such as attribution that are not currently specified in an existing Implementation Standard. These characteristics are independent of use cases, domains, or profiles. In other words, the attribution rules specified in the Core are applicable to all use cases and information communities.
An important note is that even though specific standards are specified, the CDB Core architecture remains agnostic as to data formats, operating platforms, encodings, physical models, and so forth.
C.1.3. Tier 2 - Implementable requirements and conformance classes
In Tier 2 of the architecture, specific implementable requirements are specified as part of the CDB Core. An example of implementable requirements are those that specifically describe the CDB Tiling structure. The Tiling structure in the CDB 1.x series of standards is well defined and widely implemented in the CDB community. However, the CDB tiling structure is not specifically tied to or consistent with international standards. Further, a number of issues have been documented over the years of CDB use. At the same time as recommended in the SOFWERX CDB Sprint, the CDB 2.0 tiling scheme must enable a "relatively" easy migration path from the CDB 1.1/1.2 tiling/LoD structure into the CDB 2.0 structure.
C.1.3.1. Tier Two Tiling Example
Continuing with the Tiling example, a number of design criteria were identified in the SOFWERX CDB Sprint.
-
Use metadata for whole datasets that describe basic information about the tile scheme as well as how data layers are regrouped (LOD grouping and data layer grouping).
-
Provide for fewer top level tiles than in OGC CDB 1.x.
-
Store imagery in a container according to the tiling scheme specified.
-
Store coverage data in the container according to the tiling scheme specified in CDB-X. Suggested coverage types based on current CDB standard and user specified requirements: (Ellipsoidal body surface): Elevation models, visual and non-visual (multi-spectral) imagery, terrain light maps (emissive at night), and raster materials (for non-visual sensors). Should be extensible to support other types.
-
Coordinate Reference System is WGS 84 with epoch encoding (same as current CDB Standard except for epoch).
-
Need to keep the various encodings that CDB 1.x already has:
-
Elevation compression encodings (use of scaled integers vs floating point for smaller data sizes).
-
Elevation grids that are adjustable (better terrain fidelity at lower LODs/zoom levels)
-
Raster Material encodings using multiple coverage layers.
-
Use Imagery Compression (Imagery is typically the largest layer in CDB by disk storage).
-
More specifically, an example of a requirement based on the above design requirements and experience in the CDB Sprint might be:
Requirement 8 |
/req/core/variablematrixwidth/model |
Dependency |
WGS-84 2d definition |
Dependency |
OGC Two Dimensional Tile Matrix Set Standard |
Req |
When a tiled resource or dataset has variable width tiles, the resource or dataset shall define the variable matrix width in a tile matrix set 2D using a variablematrixwidth data structure. This will result in the following UML model shown in Figure <TBD> and model description in Table Example. |
The complete set of tiling requirements would be captured and documented in a tiling requirements class. There would also then be an associated conformance class documented in the Abstract Test Suite (Annex A of any OGC Standard). The Tiling Conformance class would be specified as a Core conformance class which means that any CDB conformant implementation shall implement either the Tiling Conformance Class as defined or a profile of that Conformance Class.
C.1.4. Tier 3
In this Tier, requirements related to specific categories of data content are specified. Many of the data content requirements specified in the current CDB 1.x Standards could be moved directly to CDB-X. Another characteristic of Tier 3 requirements is that they may or may not be in the core. This is because there is currently no requirement that a CDB data store implement any of the data content types detailed in the CDB 1.x Standard. An example is the current Volume 6: OGC CDB Rules for Encoding Data using OpenFlight
That said, there are also data content requirements that are specified in the Core. These are requirements for such elements as file naming. An example is provided below.
Another characteristic of the CDB 2.0 Tier 3 is the role of metadata. Unlike the current CDB 1.X Standard, there is no mandatory requirement for metadata at the data content storage level. In CDB 2.0, metadata is only recommended. In CDB 2.0, a minimal set of metadata is mandatory for any dataset in a CDB data store.
C.1.4.1. Tier 3 Content Requirement Example
The following requirement is extracted from the current CDB 1.2 Standard (Volume 1). This requirement may or may not exist in a CDB 2.0 Application Profile. However, requirements such as this (and related conformance classes) mayl be specified in extensions to the CDB Core.
Requirement 107 Vector Type |
req/vector-type-rule All instances of the feature SHALL be of the same vector data type. The CDB Standard requires a maximum of one vector data type for point features, a maximum of one type for lineal features and a maximum of one type for polygon features for each tile (for a maximum of 3 feature vector files per tile). |
|
Note
|
The above is an example only!! |
C.2. CDB Application Profiles
|
Note
|
The use of the term "Profile" here should probably be changed as this usage is not consistent with the OGC/ISO definition. This should be a discussion topic. I would suggest a better term is Application Profile or Domain Profile. |
The SOFWERX/SOCOM CDB Sprint participants identified four application areas: CDB-Tactical, CDB-Simulation, CDB-Gaming and CDB-Analytics. These 4 application areas, as stated in the CDB-X Engineering Report, shall correlate to the data defined in CDB-Foundation. The CDB-Foundation conceptis the CDB 2.0 Core as defined in this document.
The CDB 2.0 Core and Content requirements do not specify what conformance classes (or profiles) and/or what extensions are required to meet the use cases and needs for a specific application domain or information community. An application domain is the segment of reality for which a standard(s) and related software system is developed. The definition of an application domain is the starting point for the actual-state analysis and the creation of a domain model. The domain model is a conceptual model of the domain that incorporates both behavior and data. In ontology engineering, a domain model is a formal representation of a knowledge domain with concepts, roles, datatypes, individuals, and rules, typically grounded in description logic.
In the CDB 2.0 context, this means that each application area (aka Profile in the Sprint Engineering Report):
-
Clearly specifies which Core requirements (and conformance classes) or profiles thereof are mandatory for that Application Profile;
-
Clearly states which data content requirements (and conformance classes) or profiles thereof are mandatory for that Application Profile; and
-
Clearly defines and documents any required extensions necessary to meet the requirements of a particular application domain.
|
Note
|
This note clarifies how specifying a core enhances interoperability. First all application profiles shall implement the Core or profiles of the Core. The Core specifies core requirements/conformance classes that shall be implemented in ALL application profiles. An Application Profile may restrict a given requirements and related conformance class. For example, the CDB standard may specify a requirement that OGC WKT for CRS shall be used to specify any CRS information. A profile could restrict that requirement by stating that only WGS 84 2D as specified in EPSG code 4326 shall be used. (Of course the SWG may decide that only WGS 84 shall be used in any CDB data store!). Also remember that the Core not only specifies implementation requirements such as for Tiling, the Core also specifies requirements - as done the current CDB standard - for both characteristics of data types as well as for specific data themes. An example of a specific data theme is Navigation. An example of requirements for the characteristics of a general data type are the requirements and conformance classes for Tiled Elevation Data as specified in the current CDB 1.x standard. As such, for example, any Application Profile that implements elevation data shall do so based on the specified requirements. The net result is interoperability regardless of the Application Profile used. |
Annex D: Revision History
| Date | Release | Editor | Primary clauses modified | Description |
|---|---|---|---|---|
2021-08-11 |
2.0 |
C. Reed |
all |
Initial version |
2021-12-15 |
2.0 |
C. Reed |
CRS |
Initial full draft for SWG approval |
2022-02-10 |
2.0 |
C. Reed |
Tiling |
Abstract and Extension - initial full drafts for SWG review |
2023-12-28 |
2.0 |
C. Reed |
All |
Get docs ready for publication |
2023-12-28 |
2.0 |
C. Reed |
All |
Restructure documents to accommodate current OGC publication practices. |
Annex E: Bibliography
This table lists the documentation referenced throughout this document. |
||
Ref |
Title |
Description |
1 |
ARINC Standard 424-16 |
Navigation System Data Base, Aeronautical Radio Inc., August 30, 2002. |
2 |
ASTARS-04 CDB |
Systems Requirements |
3 |
Digital Geographic Information Exchange Standard (DIGEST), Standard V2.1 |
The document can be obtained at the following address: |
4 |
Enumeration and Bit Encoded Values for use with Protocols for Distributed Interactive Simulation Applications. |
This is document SISO-REF-010. It accompanies IEEE Std 1278.1-1995 and can be obtained from the Simulation Interoperability Standards Organization at http://www.sisostds.org/ |
5 |
Extensible Markup Language (XML) 1.0 (Third Edition) |
Bray, Tim, et al. W3C Recommendation, February 04, 2004. |
6 |
Guide - PD6777, BSI’s _Guide to the practical implementation of JPEG 2000 _ |
The document can be found at: Other useful sites include: The document is targeted at managers; application software developers and end-users who want to know more about JPEG 2000. |
7 |
IEEE Standard for Distributed Interactive Simulation - Application Protocols |
IEEE Std 1278.1-1995 |
8 |
JPEG 2000: Image Compression Fundamentals, Standards and Practice |
Kluwer International Series in Engineering and Computer Science, Secs 642, by David S. Taubman and Michael W. Marcellin |
9 |
MIL-STD-2411 Raster Product Format Specification |
The Raster Product Format (RPF) is a standard data structure for geospatial databases composed of rectangular arrays of pixel values (e.g., in digitized maps or images) in compressed or uncompressed form. RPF defines a common format for the interchange of raster-formatted digital geospatial data among DoD Components. Department of Defense Information Technology Standards Registry Baseline Release 04-2.0. |
10 |
MIL-C-89041 Controlled Image Base Specification |
Controlled Image Base (CIB). This Specification provides requirements for the preparation and use of the RPF CIB data. CIB is a dataset of orthophotos, made from rectified grayscale aerial images. |
11 |
OpenFlight Scene Description Database Standard, Version 16.0, Revision A, November 2004, Presagis Inc |
The original document has been annotated by CAE to create the CDB-annotated OpenFlight Standard. |
12 |
Product Standard for the Digital Aeronautical Flight Information File (DAFIF), Eight Edition, Doc. # PS/1FD/086 |
National Imagery and Mapping Agency (NIMA), April 2003. |
13 |
SEDRIS™ - Synthetic Environment Data Representation Interchange Specification |
The Source for Synthetic environment Representation and Interchange. |
14 |
Shapefile Technical Description - an ESRI White Paper—July 1998 |
The original document has been annotated by CAE Inc to create the CDB-annotated Shapefile Technical Description. |
15 |
The SGI Image File Format, Version 1.00, Paul Haeberli, Silicon Graphics Computer Systems |
This specification can be found at: |
16 |
TIFF rev 6.0 Adobe Developers Association, Adobe Systems Incorporated, 1585 Charleston Road and P.O. Box 7900Mountain View, CA 94039-7900 |
A copy of this original standard can be found at: and at: ftp://ftp.adobe.com/pub/adobe/ DeveloperSupport/TechNotes/PDFfiles The original document has been annotated by CAE Inc to create the CDB-annotated TIFF Standard. |
17 |
XML Schema Part 0: Primer Second Edition |
Fallside, David, Priscilla Walmsley. W3C Recommendation, October 28, 2004. |
18 |
XML Schema Part 1: Structures Second Edition |
|
19 |
XML Schema Part 2: Datatypes Second Edition |
Biron, Paul V., Ashok Malhotra. W3C Recommendation, October 28, 2004. |
20 |
ICAO Airline Designator |
List of ICAO Airline Codes, |
21 |
Radar Signatures and Relations to Radar Cross-Section. Mr. P E R Galloway, Roke Manor Research Ltd, Romsey, Hampshire, United Kingdom. |
This document can be obtained at the following Internet address: |
22 |
AN/APA to AN/APD - Equipment Listing. |
This document can be obtained at the following Internet address: |
23 |
Radar Polarimetry - Fundamentals of Remote Sensing. National Resources Canada. |
This document can be obtained at the following Internet address: |
24 |
RCS in Radar Range Calculations for Maritime Targets, by Ingo Harre. Bremen, Germany. (V2.0-20040206). |
This document can be obtained at the following Internet address: |
25 |
Decibels relative to a square meter – dBsm. By Zhao Shengyun. |
This document can be obtained at the following Internet address: |
26 |
MIL-C-89041 |
Controlled Image Base (CIB) |
27 |
MIL-STD-2411 |
Defense Mapping Agency, Military Standard, Raster Product Format (RPF) |
28 |
MIL-STD-2411-1 |
Defense Mapping Agency, Registered Data Values for Raster Product Format |
29 |
MIL-STD-2411-2 |
Defense Mapping Agency, Incorporation of Raster Product Format (RPF) Data in National Imagery Transmission Format (NITF). |
30 |
IEEE Std 1516-2000 |
IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) |
31 |
RPR-FOM Version 2 Draft 17 |
Real-time Platform Reference (RPR) Federation Object Model (FOM) This RPR-FOM maps the DIS standard to the HLA standard. The document can be obtained from the Simulation Interoperability Standards Organization at the following address: |
32 |
MIL-PRF-89039 Amendment 2 |
Performance Specification Vector Smart Map (VMAP Level 0), 28 September 1999 |
33 |
MIL-PRF-89033 Amendment 1 |
Performance Specification Vector Smart Map (VMAP Level 1), 27 May 1998 |
34 |
MIL-PRF-89035A |
Urban Vector Map (UVMap), 1st August, 2002 |
35 |
OneSAF Ultra High Resolution Building (UHRB) Object Model |
OneSAF UHRB Object Model (Version 2.2, Document Revision E, March 7th, 2008, Contract #: N61339-00-D-0710, Task Order: 28.) *http://www.onesaf.net/community/systemdocuments/v.3.0/MaintenanceManual/erc/UHRB_2_Object_Model.pdf * |
36 |
OneSAF Ultra High Resolution Building (UHRB) On-Disk Format |
OneSAF UHRB On-Disk Format Model (Version 2.2, Document Revision E, March 7th, 2008, Contract #: N61339-00-D-0710, Task Order: 28.) *http://www.onesaf.net/community/systemdocuments/v.3.0/MaintenanceManual/erc/UHRB_2_On_Disk_Format.pdf * |
37 |
U.S. Department of Transportation - Federal Aviation Administration – Advisory Circular 150/5340-1J |
Standards for Airport Markings, AC- 150/5340-1J, dated 4/29/2005 |
38 |
Federal Aviation Administration – Aeronautical Information Manual |
Official Guide to Basic Flight Information and ATC Procedures, dated 14th February, 2008 |