i. Abstract
JavaScript Object Notation (JSON) [NR1] has been gaining in popularity for encoding data in Web-based applications. JSON consists of sets of objects described by name/value pairs. This OGC standard describes a GeoJSON [NR2] and JSON-LD [NR3] encoding for Earth Observation (EO) metadata for datasets (granules). This standard can be applied to encode metadata based on the Earth Observation Metadata Profile of Observations and Measurements (O&M) OGC 10-157r4 [OR1] or as an encoding of the Unified Metadata Model for Granules (UMM-G) conceptual model [OR2].
The GeoJSON encoding defined in this document is defined as a compaction[1] through a normative context, of the proposed JSON-LD encoding, with some extensions as presented in section 8 of this document. Therefore, the JSON-LD encoding can also be applied to other RDF [OR8] encodings including RDF XML [OR11] and RDF Turtle [OR12].
This document makes no assumptions as to the "service" interfaces through which the metadata are accessed and applies equally well to a Service Oriented Architecture as well as a Resource Oriented or RESTful Architecture. The documented approach can be applied in combination with the following technologies:
- OGC OpenSearch extensions [OR19], [OR20], [OR25],
- W3C Linked Data Platform [OR21], [OR22],
- OASIS searchRetrieve [OR23],
- OASIS OData [OR24].
GeoJSON is a format for encoding collections of simple geographical features along with their non-spatial attributes using JSON. GeoJSON objects may represent a geometry, a feature, or a collection of features. GeoJSON supports the following geometry types derived from the OGC Simple Features specification: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon and GeometryCollection. Features in GeoJSON contain a geometry object and additional properties, and a feature collection represents a list of features.
JSON is human readable and easily parseable. However, JSON is schemaless. JSON and GeoJSON documents do not include an explicit definition of the structure of the JSON objects contained in them. Therefore, this standard is based on a normative JSON-LD context which allows each property to be explicitly defined as a URI. Furthermore, the JSON encoding is defined using JSON Schema [OR18] which allows validation of instances against these schemas.
ii. Keywords
The following are keywords to be used by search engines and document catalogues
ogcdoc, ogc documents, Earth Observation, EO, Linked Data, Datasets, GeoJSON, JSON, JSON-LD, Metadata
iii. Preface
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 when possible.
iv. Submitting organisations
The following organisations will submit the original document or its revisions to the Open Geospatial Consortium (OGC):
- CEOS – Committee on Earth Observation Satellites
- CGI
- Con terra
- ESA – European Space Agency
- EUMETSAT
- Spacebel s.a.
The editors would like to acknowledge that this work is the result of collaboration and review of many organisations and would like to thank for the comments and contributions from:
- DLR
- GeoSolutions
- VITO
Note: this acknowledgement does not imply an endorsement by these organisations.
v. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Affiliation |
---|---|
Yves Coene |
Spacebel s.a. |
Uwe Voges |
con terra |
Olivier Barois |
ESA |
Andrea Della Vecchia |
ESA |
John Taylor |
CGI |
Michael Schick |
EUMETSAT |
1 Scope
This OGC standard defines a GeoJSON [NR2] and JSON-LD [NR3] encoding of Earth Observation (EO) metadata for datasets (i.e., products or granules). The standard provides document models for the exchange of information describing EO datasets, both within and between different organisations.
The document model is derived from the conceptual models defined in the Earth Observation Metadata Profile of Observations and Measurements (O&M) OGC 10-157r4 [OR1], and the Unified Metadata Model for Granules (UMM-G) [OR2], depicted below.
Please note that the proposed encoding can also be applied to EO dataset metadata originally encoded according to other models, including ISO-19139 [OR27], ISO-19139-2 [OR28], etc. The mapping between UMM-G to these encodings can be found in [OR2] while this document defines the GeoJSON to UMM-G model. Future versions of this document may contain mappings to ISO models as annexes.
1.1 Design Approach and Rationale
This section is non-normative.
The metadata encoding defined in the document satisfies the following design goals.
- Feature-based GeoJSON model: The model maximizes reuse of pre-existing standardized property names. Wherever possible, existing properties from GeoJSON [NR2] and OWS Context [NR5] are used for modeling EO product properties instead of new EO-specific property names. These are then are grouped under either feature.properties, feature.properties.[acquisitionInformation], or feature.properties.productInformation.
- Simplicity: This document does not describe the full information models or XML encodings referred to above. The above standards (i.e., OGC 10-157r4 and UMM-G) should be referred to for these details. This standard intends to provide a simpler, overarching exchange format integrating comments from the Committee on Earth Observation Satellites (CEOS) Working Group on Information Systems and Services (WGISS) community, which supported the submission of this standard to the OGC.
- Multiple use cases: The metadata model supports metadata for an acquisition (e.g., planned or acquired), for a simple product derived from one acquisition (planned, acquired or archived), or for a synthesis product (i.e., derived from multiple acquisitions over a certain period of time or from acquisitions by multiple sensors).
1.2 Document Outline
Hereafter a brief outline of the document content allows readers to jump directly to the topic of their interest.
- Chapter 3 lists the normative and informative references used in this document.
- Chapter 4 defines the main terms used in the document.
- The conventions used in this document are explained in Chapter 5.
- Chapter 6 gives an overview.
- Chapter 7 specifies the proposed GeoJSON encoding.
- Chapter 8 describes how the encoding can be extended with additional properties and describes the extension to JSON-LD which allows for describing multi-dimensional arrays as allowed by GeoJSON.
- Chapter 9 provides information about the expected MIME media types which correspond to the proposed encodings.
- Chapter 10 describes future work.
Finally, the following information is provided in the Annexes:
- Annex A defines the Abstract Test Suite for the standard.
- Annex B includes normative JSON-LD @context definitions that allow interpreting the GeoJSON encoding as JSON-LD. It also formally defines the EO vocabulary (i.e., RDF properties and classes) in RDF Schema format.
- Annex C presents the mapping of the EO properties proposed in this specification to the OGC 10-157r4 and UMM-G conceptual models.
- Annex D contains the complete listing of examples illustrating the encodings defined in this document.
- Annex E includes the JSON schema definitions defining the GeoJSON encoding.
- Annex F explains where the schema file, context files and examples can be found in the OGC schema repository.
- Annex G provides the revision history of this document.
2 Conformance
2.1 Conformance to base specifications
This section describes the compliance testing required for an implementation of this standard.
2.2 Conformance classes
The framework, concepts, and methodology for testing and the criteria to be achieved in order to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site[2].
Annex A defines a set of tests and conformance classes that will support various applications with a range of different requirements. The following conformance classes are distinguished. Testing is based on data validation. In order to conform to this OGC standard, an implementation shall choose to implement one or more of the conformance classes specified in Annex A (normative).
Conformance Class | Description | Clause |
---|---|---|
/conf/core |
Single EarthObservation object or collection of EarthObservation objects. |
Sections 7.1 and Section 7.8 |
/conf/earthobservation |
EarthObservation objects. |
Section 7.1 |
/conf/properties |
Properties objects. |
Section 7.1.1 |
/conf/links |
Links objects. |
Section 7.1.2 |
/conf/offering |
Offering objects. |
Section 7.1.4 |
/conf/metadata-information |
MetadataInformation objects. |
Section 7.2 |
/conf/data-identification |
DataIdentification objects. |
Section 7.3 |
/conf/geometry |
Geometry objects. |
Section 7.4 |
/conf/acquisition-information, /conf/acquisition-parameters |
AcquisitionInformation and AcquisitionParameters objects. |
Section 7.6 |
/conf/product-information |
ProductInformation objects. |
Section 7.7 |
/conf/earthobservation-collection |
EarthObservationCollection objects. |
Section 7.8 |
3 References
The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.
3.1 Normative references
[NR1] RFC 7159, The JavaScript Object Notation (JSON) Data Interchange Format, 2014, http://www.ietf.org/rfc/rfc7159.txt
[NR2] RFC 7946, The GeoJSON Format, 2016, https://tools.ietf.org/html/rfc7946
[NR3] JSON-LD 1.0, A JSON-based Serialisation for Linked Data, W3C Recommendation, 2014, http://www.w3.org/TR/json-ld/
[NR5] OGC 14-055r2, OGC OWS Context GeoJSON Encoding, 2017, http://docs.opengeospatial.org/is/14-055r2/14-055r2.html
[NR6] OGC 06-121r9, OGC Web Services Common Standard, Version 2.0.0, 2010, http://portal.opengeospatial.org/files/?artifact_id=38867
[NR7] RFC 3986, Uniform Resource Identifiers (URI): Generic Syntax, 2005 http://www.ietf.org/rfc/rfc3986.txt
[NR8] RFC 3987, Internationalised Resource Identifiers (IRIs), 2005, https://tools.ietf.org/html/rfc3987.
[NR9] RFC 2616, Hypertext Transfer Protocol – HTTP/1.1, 1999, http://www.ietf.org/rfc/rfc2616.txt
[NR11] RFC 5988, Web Linking, 2010, http://www.ietf.org/rfc/rfc5988.txt
[NR12] ECMA International, "ECMAScript Language Specification, Edition 5.1", Standard ECMA-262, 2011, http://www.ecma-international.org/publications/standards/Ecma-262.htm
[NR13] The JSON Data Interchange Format, 2017, http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
3.2 Other references
[OR1] OGC 10-157r4, Earth Observation Metadata profile of Observations & Measurements, Version 1.1, 2016, http://docs.opengeospatial.org/is/10-157r4/10-157r4.html.
[OR2] Unified Metadata Model for Granules (UMM-G), Version 1.3, 2015, https://wiki.earthdata.nasa.gov/display/CMR/CMR+Documents.
[OR3] Unified Metadata Model Common Elements, Version 1.4, 2016, https://wiki.earthdata.nasa.gov/display/CMR/CMR+Documents.
[OR4] Unified Metadata Model for Collections (UMM-C), Version 1.3, 2015, https://wiki.earthdata.nasa.gov/display/CMR/CMR+Documents.
[OR5] OGC 12-084r2, OWS Context Atom Encoding Standard, 2013, http://docs.opengeospatial.org/is/12-084r2/12-084r2.html
[OR6] OGC 15-053, Implementing JSON/GeoJSON in an OGC Standard ER, 2015
[OR7] OGC 11-052r4, OGC GeoSPARQL – A Geographic Query Language for RDF Data, Version 1.0, 2012, https://portal.opengeospatial.org/files/?artifact_id=47664
[OR8] RDF 1.1 Primer, W3C Working Group Note 2014, http://www.w3.org/TR/rdf11-primer/
[OR9] RDF 1.1 Concepts and Abstract Syntax, W3C Recommendation, 2014, http://www.w3.org/TR/rdf11-concepts/
[OR10] RDF Schema 1.1, W3C Recommendation, 2014, http://www.w3.org/TR/rdf-schema/
[OR11] RDF 1.1 XML Syntax, W3C Recommendation, 2014, http://www.w3.org/TR/rdf-syntax-grammar/
[OR12] RDF 1.1 Turtle, Terse RDF Triple Language, W3C Recommendation, 2014, http://www.w3.org/TR/turtle/
[OR13] JSON-LD 1.0 Processing Algorithms and API, W3C Recommendation, 2014, https://www.w3.org/TR/json-ld-api/
[OR14] RFC 4287, The Atom Syndication Format, 2005, https://tools.ietf.org/html/rfc4287
[OR15] Building JSON-LD APIs: Best Practices, Draft Community Group Report, 2016, http://json-ld.org/spec/latest/json-ld-api-best-practices/
[OR16] Google JSON Style Guide, Revision 0.9, https://google.github.io/styleguide/jsoncstyleguide.xml
[OR17] RDF Calendar - an application of the Resource Description Framework to iCalendar Data, W3C Interest Group Note, 2005, http://www.w3.org/TR/rdfcal/
[OR18] JSON Schema, https://tools.ietf.org/html/draft-zyp-json-schema-04.
[OR19] OGC 10-032r8, OGC OpenSearch Geo and Time Extensions, 2014, http://www.opengeospatial.org/standards/opensearchgeo
[OR20] OGC 13-026r8, OGC OpenSearch Extension for Earth Observation Products, 2016, http://docs.opengeospatial.org/is/13-026r8/13-026r8.html.
[OR21] Linked Data Platform 1.0, W3C Recommendation, 2015, http://www.w3.org/TR/ldp/
[OR22] Linked Data Platform Paging 1.0, W3C Working Group Note, 2015, http://www.w3.org/TR/ldp-paging/
[OR23] OASIS searchRetrieve: Part 0. Overview, OASIS Standard, 2013, http://docs.oasis-open.org/search-ws/searchRetrieve/v1.0/os/part0-overview/searchRetrieve-v1.0-os-part0-overview.html.
[OR24] OASIS OData Version 4.0 : Part 1. Protocol, OASIS Standard, 2014, http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html
[OR25] OpenSearch 1.1 draft 5, http://www.opensearch.org/Specifications/OpenSearch/1.1.
[OR26] ISO 19115:2003/Cor 1:2006, Geographic Information – Metadata – Implementation specification, 2006, http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44361
[OR27] ISO 19139, Geographic Information – Metadata XML (ISO 19139:2007), 2007, http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=32557
[OR28] ISO 19139-2:2012, Geographic information – Metadata – XML schema implementation – Part 2: Extensions for imagery and gridded data, 2012, http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57104
[OR29] Dublin Core Metadata Initiative term declarations represented in RDF schema language, http://dublincore.org/schemas/rdfs/.
[OR30] Media RSS Specification, Version 1.5.1, 2009, http://www.rssboard.org/media-rss
[OR31] SKOS Simple Knowledge Organization System Reference, W3C Recommendation, 2009, http://www.w3.org/TR/skos-reference/.
[OR32] JSON-LD 1.1, "A JSON-based Serialisation for Linked Data", W3C Editor’s Draft, 2018, https://www.w3.org/TR/json-ld11/.
[OR33] GeoJSON-LD Vocabulary, 2017, http://geojson.org/geojson-ld/, http://geojson.org/geojson-ld/vocab.rdf
[OR34] http://goessner.net/articles/JsonPath/index.html
4 Terms and definitions
This document uses the terms defined in Sub-clause 5.3 of OGC 06-121r9 [NR6], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word "shall" (not "must") is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
For the purposes of this document, the following additional terms and definitions apply.
- 4.1 compaction
-
While expansion removes context from a given input, compaction’s primary function is to perform the opposite operation: to express a given input according to a particular context. Compaction applies a context that specifically tailors the way information is expressed for a particular person or application. This simplifies applications that consume JSON or JSON-LD by expressing the data in application-specific terms, and it makes the data easier to read by humans [OR13].
- 4.2 context
-
A set of rules for interpreting a JSON-LD document as specified in the section "The Context" of the JSON-LD specification [NR3].
- 4.3 dataset
-
Observation obtained by satellite instruments (OGC 10-140). See granule and product.
- 4.4 datastrip
-
A satellite acquisition. May consists of multiple scenes.
- 4.5 Domain (RDF)
-
Domain (rdfs:domain) is used to state that any resource that has a given property is an instance of one or more classes [OR10].
- 4.6 expansion
-
The algorithm that removes [JSON-LD] context is called expansion [OR13].
- 4.7 GeoJSON
-
A geospatial data interchange format based on Javascript Object Notation (JSON) [NR2].
- 4.8 granule
-
The smallest aggregation of data that can be independently managed. Granule usually matches the individual file of EO satellite data.
- 4.9 identifier
-
A character string that may be composed of numbers and characters that is exchanged between the client and the server with respect to a specific identity of a resource.
- 4.10 JSON
-
A lightweight, text-based, language-independent data interchange format, based on the Javascript programming language.
- 4.11 JSON Schema
-
JSON Schema is a JSON media type for defining the structure of JSON data. JSON Schema provides a contract for what JSON data is required for a given application and how to interact with it [OR18].
- 4.12 Product
-
A Product or a Dataset corresponds to an identifiable collection of data under one single identifier. It is independent of a physical form or an encoding even if it is normally distributed in a single file.
- 4.13 Range (RDF)
-
Range (rdfs:range) is used to state that values of a property are instances of one or more classes [OR10].
- 4.14 RDF Triple
-
An RDF triple consists of three components: the subject, the predicate and the object. An RDF triple is conventionally written in the order subject, predicate, object. [OR9].
- 4.15 scene
-
The result of cutting a datastrip into multiple parts
- 4.16 service interface
-
Shared boundary between an automated system or human being and another automated system or human being [ISO 19101].
- 4.17 swath
-
Area imaged on the surface by an Earth observation instrument.
- 4.18 synthesis products
-
Synthesis (or composite) products are products that are generated by combining information from multiple EO Products that are acquired over a certain period of time.
5 Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.
5.1 Abbreviated terms
Some frequently used abbreviated terms:
ALT ALTimetry
API Application Programming Interface
ATM ATMospheric
ATS Abstract Test Suite
CEOS Committee on Earth Observation Satellites
EO Earth Observation
EOP Earth Observation Product
GML Geography Markup Language
HMA Heterogeneous Missions Accessibility
HTTP HyperText Transfer Protocol
IRI Internationalised Resource Identifier
ISO International Organisation for Standardisation
JSON JavaScript Object Notation
JSON-LD JavaScript Object Notation for Linked Data
LDP Linked Data Protocol
LMB LiMB looking
OASIS Organization for the Advancement of Structured Information Standards
OGC Open Geospatial Consortium
O&M Observations and Measurements
OPT OPTical
OWC OGC Web Services Context
RDF Resource Description Framework
RDFS RDF Schema
REST Representational State Transfer
SAR Synthetic Aperture Radar
SI International System of Units (French: Système international d’unités)
SSP Synthesis and Systematic
UML Unified Modeling Language
UMM Unified Metadata Model
UMM-G Unified Metadata Model for Granules
URI Uniform Resource Identifier
URL Uniform Resource Locator
URN Uniform Resource Name
W3C World Wide Web Consortium
WGISS Working Group on Information Systems and Services
WKT Well-Known Text
XML eXtensible Markup Language
XSD XML Schema Definition Language
5.2 Symbols
5.2.1 JSON Schema diagrams
The schema diagrams[3] included in the document show the GeoJSON structure expressed in JSON Schema [OR18] and documented in Annex E.1.
JSON Schema Entity | Representation | Description |
---|---|---|
Definition |
Definitions are shown as blue rectangles with solid borders. |
|
Mandatory property |
Mandatory properties are shown with solid borders. |
|
Optional property |
Optional properties are shown with dashed borders. |
|
Property of type "Object" referring to a "Definition" of the Object. |
The "Def" attribute inside a rectangle representing a property of type Object refers to the corresponding Object definition. |
|
"All Of" operator |
Contains one or more sub-schemas (definitions), added as children of the operator. An instance is valid if it is valid against all these sub-schemas. |
|
"Any Of" operator |
Contains one or more sub-schemas (definitions), added as children of the operator. An instance is valid if it is valid against at least one of these sub-schemas. |
|
"One Of" operator |
Contains one or more sub-schemas (definitions), added as children of the operator. An instance is valid if it is valid against exactly one of these sub-schemas. |
|
Subschema (definitions) |
The "Def" attribute inside a rectangle representing a (Sub) Schema refers to the corresponding Object definition. |
5.2.2 JSONPath
The data dictionary tables in the current document use the JSONPath notation [OR34]. A brief overview of this notation is included in the table below which is taken from [OR34].
XPath | JSONPath | Description |
---|---|---|
/ |
$ |
the root object/element |
. |
@ |
the current object/element |
/ |
. or [] |
child operator |
// |
.. |
recursive descent. JSONPath borrows this syntax from E4X. |
* |
* |
wildcard. All objects/elements regardless their names. |
[] |
[] |
subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator. |
| |
[,] |
Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set. |
[] |
?() |
applies a filter (script) expression. |
5.3 Namespace abbreviations
The following namespace abbreviations will be used in this document:
Abbreviation | Full namespace URI | Reference |
---|---|---|
alt |
http://www.opengis.net/alt/2.1/ |
[OR1] |
atm |
http://www.opengis.net/atm/2.1/ |
[OR1] |
atom |
http://www.w3.org/2005/Atom/ |
[OR14] |
dct |
http://purl.org/dc/terms/ |
[OR29] |
eop |
http://www.opengis.net/eop/2.1/ |
[OR1] |
gj |
https://purl.org/geojson/vocab# |
[OR33] |
gsp |
http://www.opengis.net/ont/geosparql# |
[OR7] |
iana |
http://www.iana.org/assignments/relation/ |
[NR11] |
ical |
http://www.w3.org/2002/12/cal/ical# |
[OR17] |
lmb |
http://www.opengis.net/lmb/2.1/ |
[OR1] |
media |
http://search.yahoo.com/mrss/ |
[OR30] |
opt |
http://www.opengis.net/opt/2.1/ |
[OR1] |
owc |
http://www.opengis.net/ont/owc/1.0/ |
[OR5] |
owl |
http://www.w3.org/2002/07/owl# |
|
rdf |
http://www.w3.org/1999/02/22-rdf-syntax-ns# |
[OR11] |
rdfs |
http://www.w3.org/2000/01/rdf-schema# |
[OR10] |
sar |
http://www.opengis.net/sar/2.1/ |
[OR1] |
skos |
http://www.w3.org/2004/02/skos/core# |
[OR31] |
xs |
http://www.w3.org/2001/XMLSchema-datatypes# |
|
xsd |
http://www.w3.org/2001/XMLSchema# |
|
5.4 Layout and identifiers
The normative provisions in the current document are denoted by the URI http://www.opengis.net/spec/eo-geojson/1.0. All requirements and conformance classes that appear in this document are denoted by relative URIs which are relative to this base URI.
5.5 Style
This document applies the "double quote" guideline defined in [OR16]: "If a property requires quotes, double quotes must be used. All property names must be surrounded by double quotes. Property values of type string must be surrounded by double quotes. Other value types (like boolean or number) should not be surrounded by double quotes."
5.6 Data dictionary tables
This document includes data dictionary tables with information as per sub-clause 5.5 of OGC 06-121r9 [NR6]. The following comments apply.
- The mapping of property names (column 1) on properties of the abstract metadata models (OGC 10-157r4 and UMM-G) is included in Annex C. Column 1 provides the JSON property name as well as the corresponding JSONPath [OR34] expression.
- Properties representing measurements (e.g., gml:measureType) are encoding in a simplified way. Only the value is represented as a numeric property. The unit of measure is implied and shall correspond to the SI
[4] base unitor derived unit without prefix.
6 Overview
This standard defines a GeoJSON-based [NR2] serialization syntax for the Earth Observation Vocabulary (Annex B) that conforms to a subset of [NR3] syntax constraints but does not require JSON-LD processing. While other serialization forms are possible, such alternatives are not discussed in this document.
When serialized, absent properties are represented by either (a) setting the property value to null, or (b) by omitting the property declaration altogether at the option of the publisher. These representations are semantically equivalent. If a property has an array value, the absence of any items in that array shall be represented by omitting the property entirely or by setting the value to null. The appropriate interpretation of an omitted or explicitly null value is that no value has been assigned as opposed to the view that the given value is empty or nil.
JSON does not have a formal class model. JSON objects are just sets of properties. However, the JSON encoding described in this standard features a "type" property on each JSON object.
An EO Dataset Metadata Document conforming to this standard is a GeoJSON document whose root value is a Feature or FeatureCollection object, and whose MIME media type corresponds to one of the media types described in chapter 9.
6.1 JavaScript Object Notation
JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format that defines a small set of formatting rules for the portable representation of structured data. JSON is derived from the object literals of JavaScript, as defined in the ECMAScript Programming Language Standard [NR12] and can represent four primitive types (strings, numbers, boolean values, and null) and two structured types (objects and arrays). The ordering of the members or properties of any JSON object is considered irrelevant. Even though JSON is based on a subset of the JavaScript Programming Language it is currently well supported by nearly all programming languages, including Java, Python, and C#.
The JSON format is currently described by two competing standards, RFC7159 [NR1] and ECMA-404 [NR13]. Both standards documents are consistent, but the latter defines mainly the grammatical syntax where the former provides some additional semantic and security points.
6.2 GeoJSON Format Specification
GeoJSON [NR2] is a format for encoding collections of simple geographical features along with their non-spatial attributes using JSON. GeoJSON consists of a single object representing a geometry, feature, or collection of features. The geometries supported are Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon and Geometry Collections.
7 GeoJSON Encoding Specification
7.1 Requirements class: Earth Observation
Requirements Class | |
---|---|
/req/earthobservation | |
Target type |
Data instance |
Dependency |
JSON [NR1] |
Dependency |
GeoJSON [NR2] |
Dependency |
/req/geometry |
Dependency |
/req/properties |
Requirement |
/req/earthobservation/properties |
Requirement 1 |
/req/earthobservation/properties An "EarthObservation" object shall implement the properties shown in Table 4, with the value matching the type shown, and with the obligation shown. |
The EarthObservation block inherits all properties of the GeoJSON Feature object. In addition, it may contain an optional @context property. The @context properties shall typically be absent in the GeoJSON encoding and implicitly refer to the normative @context defined in Annex B.
Complete description of EarthObservation is given in Table 4. Most properties are inherited from the Feature object defined in [NR2].
JSON Property | Definition | Data type and values | Multiplicity and use |
---|---|---|---|
@context $.@context |
Optional context property either embedding an actual context or a reference to the normative JSON-LD context defined in Annex B: "normative JSON-LD @context definition". See Annex B.1.1. |
Property |
Zero or one (optional) |
type $.type |
Type of the EarthObservation metadata element. This property is a string with fixed value "Feature"[5]. |
Property Range: String Fixed values: "Feature" |
One (mandatory) |
id $.id |
Unique identifier for the EarthObservation element (IRI). |
Property Range: String |
One |
bbox $.bbox |
Information on the coordinate range of the geometry object representing the footprint (See [NR2]). The value is an array of length 4 (assuming the number of dimensions represented in the contained geometries is 2). Typically, south-west point and north-east point. The value defines a shape with edges that have constant longitude and latitude. |
Property [NR2] Domain: Feature Range: Array |
Zero or one (optional) |
geometry $.geometry |
Contains the description of the target location observed during the EarthObservation. See section 7.4. The value shall be either a Geometry object or a JSON null value. |
Property [NR2], [OR33] Domain: Feature Range: Geometry or null value (See section 7.4) |
One |
properties $.properties |
Groups all other properties of the EarthObservation not covered by the properties higher in this table as imposed by [NR2]. See section 7.1.1 |
Property [NR2], [OR33] Domain: Feature Range Properties (See Table 5) |
One |
Example 1: GeoJSON encoding example
{
"type": "Feature",
"id": "http://fedeo.esa.int/opensearch/request/?parentIdentifier=SEA_GEC_1P
&uid=SE1_OPER_SEA_GEC_1P_19780927T010430_19780927T010445_001316_0000_2267_9B4F",
"bbox": [
-2.69574,
61.965195,
0.135472,
63.261372
],
"geometry": {…},
"properties": {…}
}
Example 2: GeoJSON encoding example (with explicit normative @context property)
{
"@context": "https://www.opengis.net/eo-geojson/1.0",
"type": "Feature",
"id": "http://fedeo.esa.int/opensearch/request/?parentIdentifier=SEA_GEC_1P
&uid=SE1_OPER_SEA_GEC_1P_19780927T010430_19780927T010445_001316_0000_2267_9B4F",
"bbox": [
-2.69574,
61.965195,
0.135472,
63.261372
],
"geometry": {…},
"properties": {…}
}
In the remainder of the document, we will not include the @context property in the GeoJSON encoding in which case it is implied as explained in Annex B.1.1.
7.1.1 Properties
Requirements Class | |
---|---|
/req/properties | |
Target type |
Data instance |
Dependency |
/req/acquisition-information |
Dependency |
/req/product-information |
Dependency |
/req/data-identification |
Dependency |
/req/metadata-information |
Dependency |
/req/links |
Dependency |
/req/offering |
Requirement |
/req/properties/properties |
Requirement |
/req/properties/metadata-information |
Requirement |
/req/properties/data-identification |
Requirement 2 |
/req/properties/properties A "Properties" object shall implement the properties shown in Table 5, with the value matching the type shown, and with the obligation shown. |
Requirement 3 |
/req/properties/metadata-information A "Properties" object shall implement the properties of a MetadataInformation object (Table 8). |
Requirement 4 |
/req/properties/data-identification A "Properties" object shall implement the properties of a DataIdentification object (Table 9). |
The Properties block contains the EO properties and hypermedia links to related objects. It inherits all MetadataInformation and DataIdentification properties. The EO properties are in two main groups, i.e., "acquisitionInformation" and "productInformation" with multiplicity shown below. This allows having metadata:
- Only consisting of "acquisitionInformation" and no productInformation, and
- Consisting of multiple "acquisitionInformation" elements and 0 or 1 "productInformation" elements as occurs for synthesis products.