EN ISO 19123-3:2023
(Main)Geographic information - Schema for coverage geometry and functions - Part 3: Processing fundamentals (ISO 19123-3:2023, Corrected version 2023-11)
Geographic information - Schema for coverage geometry and functions - Part 3: Processing fundamentals (ISO 19123-3:2023, Corrected version 2023-11)
This document defines a coverage processing language for server-side extraction, filtering, processing, analytics, and fusion of multi-dimensional geospatial coverages representing, for example, spatio-temporal sensor, image, simulation, or statistics datacubes. Services implementing this language provide access to original or derived sets of coverage information, in forms that are useful for client-side consumption.
This document relies on the ISO 19123-1 abstract coverage model. In this edition, regular and irregular multi-dimensional grids are supported for axes that can carry spatial, temporal or any other semantics. Future editions will additionally support further axis types as well as further coverage types from ISO 19123-1, specifically, point clouds and meshes.
Geoinformation - Coverage Geometrie- und Funktionsschema - Teil 3: Grundlagen der Verarbeitung (ISO 19123-3:2023, korrigierte Fassung 2023-11)
Information géographique - Schéma de la géométrie et des fonctions de couverture - Partie 3: Principes de base du traitement (ISO 19123-3:2023, Version corrigée 2023-11)
Le présent document définit un langage de traitement de couverture pour l'extraction, le filtrage, le traitement, l'analyse et la fusion côté serveur de couvertures géospatiales multidimensionnelles représentant, par exemple, des cubes de données spatio-temporelles de capteurs, d'images, de simulations ou de statistiques. Les services mettant en œuvre ce langage permettent d'accéder à des ensembles originaux ou dérivés d'informations de couverture, sous des formes utiles pour la consommation côté client.
Le présent document s'appuie sur le modèle de couverture abstrait de l'ISO 19123-1. Dans le présent document, les grilles multidimensionnelles régulières et irrégulières sont prises en charge pour des axes qui peuvent avoir une sémantique spatiale, temporelle ou autre. Les éditions suivantes incluront aussi d’autres types d’axes et d’autres types de couvertures provenant de l’ISO 19123-1, spécifiquement, les nuages de points et les maillages.
Geografske informacije - Shema za geometrijo podatkovnega sloja in funkcije - 3. del: Osnove obdelave (ISO 19123-3:2023)
Ta dokument določa jezik obdelave podatkovnega sloja za strežniško pridobivanje, filtriranje, obdelavo,
analitiko in združevanje večdimenzionalnih geoprostorskih podatkovnih slojev, ki na primer predstavljajo prostorsko-
časovne senzorične, slikovne, simulacijske ali statistične podatkovne kocke. Storitve, ki uporabljajo ta jezik, zagotavljajo dostop do izvirnih ali izpeljanih nizov informacij o podatkovnih slojih v oblikah, ki so uporabne za odjemalca.
Ta dokument temelji na abstraktnem modelu podatkovnega sloja iz standarda ISO 19123-1. V tej izdaji so podprte pravilne in nepravilne večdimenzionalne mreže za osi, ki lahko vsebujejo prostorski, časovni ali katerikoli drug pomen.
Prihodnje izdaje bodo dodatno podpirale dodatne vrste osi in dodatne vrste podatkovnih slojev iz standarda ISO 19123-1, zlasti oblake točk in mreže.
General Information
Standards Content (Sample)
SLOVENSKI STANDARD
01-november-2023
Geografske informacije - Shema za geometrijo podatkovnega sloja in funkcije - 3.
del: Osnove obdelave (ISO 19123-3:2023)
Geographic information - Schema for coverage geometry and functions - Part 3:
Processing fundamentals (ISO 19123-3:2023)
Geoinformation - Coverage Geometrie- und Funktionsschema - Teil 3: Grundlagen der
Verarbeitung (ISO 19123-3:2023)
Information géographique - Schéma de la géométrie et des fonctions de couverture -
Partie 3: Titre manque (ISO 19123-3:2023)
Ta slovenski standard je istoveten z: EN ISO 19123-3:2023
ICS:
07.040 Astronomija. Geodezija. Astronomy. Geodesy.
Geografija Geography
35.240.70 Uporabniške rešitve IT v IT applications in science
znanosti
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.
EN ISO 19123-3
EUROPEAN STANDARD
NORME EUROPÉENNE
July 2023
EUROPÄISCHE NORM
ICS 35.240.70
English Version
Geographic information - Schema for coverage geometry
and functions - Part 3: Processing fundamentals (ISO
19123-3:2023)
Information géographique - Schéma de la géométrie et Geoinformation - Coverage Geometrie- und
des fonctions de couverture - Partie 3: Principes de Funktionsschema - Teil 3: Grundlagen der
base du traitement (ISO 19123-3:2023) Verarbeitung (ISO 19123-3:2023)
This European Standard was approved by CEN on 20 May 2023.
CEN members are bound to comply with the CEN/CENELEC Internal Regulations which stipulate the conditions for giving this
European Standard the status of a national standard without any alteration. Up-to-date lists and bibliographical references
concerning such national standards may be obtained on application to the CEN-CENELEC Management Centre or to any CEN
member.
This European Standard exists in three official versions (English, French, German). A version in any other language made by
translation under the responsibility of a CEN member into its own language and notified to the CEN-CENELEC Management
Centre has the same status as the official versions.
CEN members are the national standards bodies of Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia,
Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway,
Poland, Portugal, Republic of North Macedonia, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye and
United Kingdom.
EUROPEAN COMMITTEE FOR STANDARDIZATION
COMITÉ EUROPÉEN DE NORMALISATION
EUROPÄISCHES KOMITEE FÜR NORMUNG
CEN-CENELEC Management Centre: Rue de la Science 23, B-1040 Brussels
© 2023 CEN All rights of exploitation in any form and by any means reserved Ref. No. EN ISO 19123-3:2023 E
worldwide for CEN national Members.
Contents Page
European foreword . 3
European foreword
This document (EN ISO 19123-3:2023) has been prepared by Technical Committee ISO/TC 211
"Geographic information/Geomatics" in collaboration with Technical Committee CEN/TC 287
“Geographic Information” the secretariat of which is held by BSI.
This European Standard shall be given the status of a national standard, either by publication of an
identical text or by endorsement, at the latest by January 2024, and conflicting national standards shall
be withdrawn at the latest by January 2024.
Attention is drawn to the possibility that some of the elements of this document may be the subject of
patent rights. CEN shall not be held responsible for identifying any or all such patent rights.
Any feedback and questions on this document should be directed to the users’ national standards
body/national committee. A complete listing of these bodies can be found on the CEN website.
According to the CEN-CENELEC Internal Regulations, the national standards organizations of the
following countries are bound to implement this European Standard: Austria, Belgium, Bulgaria,
Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland,
Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Republic of
North Macedonia, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye and the
United Kingdom.
Endorsement notice
The text of ISO 19123-3:2023 has been approved by CEN as EN ISO 19123-3:2023 without any
modification.
INTERNATIONAL ISO
STANDARD 19123-3
First edition
2023-06
Geographic information — Schema for
coverage geometry and functions —
Part 3:
Processing fundamentals
Information géographique — Schéma de la géométrie et des fonctions
de couverture —
Partie 3: Principes de base du traitement
Reference number
ISO 19123-3:2023(E)
ISO 19123-3:2023(E)
© ISO 2023
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii
ISO/FDIS 19123-3:2023(E)
Contents
Foreword . v
Introduction . vi
1 Scope .1
2 Normative references .1
3 Terms and definitions .1
4 Conformance .2
4.1 Notation .2
4.2 Interoperability and conformance testing .2
4.3 Organization .2
5 Coverage model .2
5.1 Overview .2
5.2 Coverage model .2
5.3 Coverage identifier .3
5.4 Domain .4
5.4.1 Direct position .4
5.4.2 Grid .4
5.5 Interpolation .6
5.6 Range values .7
5.7 Range type .7
5.8 Coverage probing functions synopsis .7
6 Coverage processing language .9
6.1 Syntax and Semantics Definition Style .9
6.1.1 Expression Syntax.9
6.1.2 Expression Semantics . 10
6.2 Coverage Processing Expressions . 10
6.2.1 processCoveragesExpr . 10
6.2.2 processingExpr . 12
6.2.3 coverageExpr . 12
6.2.4 coverageIdExpr . 12
6.3 Coverage-Generating Expressions . 13
6.3.1 coverageConstructorExpr . 13
6.3.2 Examples . 16
6.4 Coverage Extraction Expressions. 18
6.4.1 scalarExpr . 18
6.4.2 getComponentExpr . 18
6.4.3 booleanScalarExpr . 19
6.4.4 numericScalarExpr. 19
6.4.5 stringScalarExpr . 20
6.5 Coverage range value-changing expressions. 20
6.5.1 inducedExpr. 20
6.5.2 unaryInducedExpr . 20
6.5.3 trigonometricExpr . 23
6.5.4 binaryInducedExpr . 28
6.5.5 N-ary Induced operations . 30
6.5.6 Coverage Domain-Changing Expressions. 33
6.5.7 scaleExpr . 37
6.6 Coverage Derivation Expressions . 38
6.6.1 crsTransformExpr . 38
ISO/FDIS 19123-3:2023(E)
6.7 Coverage Aggregation Expressions . 39
6.7.1 condenseExpr . 39
6.7.2 generalCondenseExpr . 39
6.7.3 reduceExpr . 42
6.8 Coverage Encode/Decode Expressions . 43
6.8.1 encodeCoverageExpr . 43
6.8.2 decodeCoverageExpr . 44
6.9 Expression evaluation . 45
6.9.1 Evaluation sequence . 45
6.9.2 Nesting . 45
6.9.3 Parentheses . 45
6.9.4 Operator precedence rules . 45
6.9.5 Range type compatibility and extension . 46
6.10 Evaluation response . 46
Annex A (normative) Conformance Tests. 48
Annex B (normative) Expression Syntax . 49
Annex C (informative) Syntax diagrams . 57
Annex D (informative) Sample service descriptions . 74
Bibliography . 77
iv © ISO 2023 – All rights reserved
ISO/FDIS 19123-3:2023(E)
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards
bodies (ISO member bodies). The work of preparing International Standards is normally carried out
through ISO technical committees. Each member body interested in a subject for which a technical
committee has been established has the right to be represented on that committee. International
organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO
collaborates closely with the International Electrotechnical Commission (IEC) on all matters of
electrotechnical standardization.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the
different types of ISO document should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).
ISO draws attention to the possibility that the implementation of this document may involve the use of
(a) patent(s). ISO takes no position concerning the evidence, validity or applicability of any claimed
patent rights in respect thereof. As of the date of publication of this document, ISO had not received notice
of (a) patent(s) which may be required to implement this document. However, implementers are
cautioned that this may not represent the latest information, which may be obtained from the patent
database available at www.iso.org/patents. ISO shall not be held responsible for identifying any or all
such patent rights.
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the World
Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT), see
www.iso.org/iso/foreword.html.
This document was prepared by Technical Committee ISO/TC 211, Geographic information/Geomatics, in
collaboration with the European Committee for Standardization (CEN) Technical Committee CEN/TC 287,
Geographic Information, in accordance with the Agreement on technical cooperation between ISO and
CEN (Vienna Agreement), in collaboration with the Open Geospatial Consortium (OGC), and in
collaboration with the IEEE GRSS Earth Science Informatics Technical Committee.
A list of all parts in the ISO 19123 series can be found on the ISO website.
Any feedback or questions on this document should be directed to the user’s national standards body. A
complete listing of these bodies can be found at www.iso.org/members.html.
ISO/FDIS 19123-3:2023(E)
Introduction
This document defines, at a high level, implementation-independent operations on coverages, i.e. digital
representations of space-time varying geographic phenomena, as defined in ISO 19123-1. Specifically,
regular and irregular grid coverages are addressed. The operations can be applied through an expression
language allowing composition of unlimited complexity and combining an unlimited number of coverages
for data fusion.
The language is functionally defined and free of any side effects. Its conceptual foundation relies on only
two constructs: A “coverage constructor” builds a coverage, either from scratch or by deriving it from one
or more other coverages. A “coverage condenser” derives summary information from a coverage by
performing an aggregation such as count, sum, minimum, maximum and average.
The coverage processing language is independent from any request and response encoding, as no
concrete request/response protocol is assumed. Hence, this document does not define a concrete service,
but acts as the foundation for defining service standards functionality. One such standardization target is
[3]
the OGC Web Coverage Service (WCS).
Throughout this document, the following formatting conventions apply.
— Bold-Face in the text, such as processCoveragesExpr, represents syntax elements, normatively
defined in Annex B.
— Text in italics, such as succ(), represents mathematical functions and variables.
— Courier font, such as return and encode(), is used for code in the sense of the coverage processing
language.
vi © ISO 2023 – All rights reserved
FINAL DRAFT INTERNATIONAL STANDARD ISO/FDIS 19123-3:2023(E)
Geographic information — Schema for coverage geometry
and functions —
Part 3:
Processing fundamentals
1 Scope
This document defines a coverage processing language for server-side extraction, filtering, processing,
analytics, and fusion of multi-dimensional geospatial coverages representing, for example, spatio-
temporal sensor, image, simulation, or statistics datacubes. Services implementing this language provide
access to original or derived sets of coverage information, in forms that are useful for client-side
consumption.
This document relies on the ISO 19123-1 abstract coverage model. In this edition, regular and irregular
multi-dimensional grids are supported for axes that can carry spatial, temporal or any other semantics.
Future editions will additionally support further axis types as well as further coverage types from ISO
19123-1, specifically, point clouds and meshes.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content
constitutes requirements of this document. For dated references, only the edition cited applies. For
undated references, the latest edition of the referenced document (including any amendments) applies.
ISO 19111, Geographic information — Referencing by coordinates
ISO 19123-1, Geographic information — Schema for coverage geometry and functions — Part 1:
Fundamentals
3 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO 19123-1 and the following apply.
ISO and IEC maintain terminology databases for use in standardization at the following addresses:
— ISO Online browsing platform: available at https://www.iso.org/obp
— IEC Electropedia: available at https://www.electropedia.org/
3.1
probing function
function extracting information from the coverage
ISO/FDIS 19123-3:2023(E)
4 Conformance
4.1 Notation
Table 1 lists the other International Standards and packages in which UML classes used in this document
have been defined.
Table 1 — Sources of externally defined UML classes
Prefix International Package
Standard
ISO 19123-1 Coverage Core,
Grid Coverage
4.2 Interoperability and conformance testing
As an abstract standard, this document allows for multiple different implementations and does not define
a standardized interoperable implementation. Rather, standardization targets are specifications of
coverage operations and services which may use this language to describe the semantics of their
operations.
Conformance testing shall be accomplished by validating a candidate concretization against all
requirements by exercising the tests set out in Annex A. As a prerequisite, a candidate shall also pass all
conformance tests of ISO 19123-1 Coverage Core and Grid Coverage.
4.3 Organization
Table 2 provides details of the conformance classes described in this document. The name and contact
information of the maintenance agency for this document can be found at
www.iso.org/maintenance_agencies.
Table 2 — Conformance classes
Conformance class Clause Identifying URL
Coverage Processing 6 https://standards.isotc211.org/19123/-3/1/conf/coverage-processing
5 Coverage model
5.1 Overview
This document defines a language whose expressions accept any number of input coverages (together
with further common inputs like numbers and strings) to generate any number of output coverages or
non-coverage results. Coverages are defined in ISO 19123-1.
5.2 Coverage model
Following the mathematical notion of a function that maps elements of a domain (such as spatio-temporal
coordinates) to a range (such as values of a “pixel”, “voxel”, etc.), a coverage consists of (Figure 1):
— an identifier which uniquely identifies a coverage in some context (here, the context of an
expression);
2 © ISO 2023 – All rights reserved
ISO/FDIS 19123-3:2023(E)
— a domain of coordinate points (expressed in a common Coordinate Reference System, CRS): “where
in the multi-dimensional space can I find values?”;
— a probing function which answers for each coverage coordinate in the domain (“direct position”):
“what is the value here?”;
— a range type: “what do those values mean?”.
Figure 1 — Coverage and GridCoverage (ISO 19123-1)
NOTE 1 Coverage in ISO 19123-1 defines an interface which describes such an object’s behaviour, but does not yet
assume any particular data structure. One interoperable concretization of it is the implementation standard
ISO 19123-2.
"Probing functions” are introduced below. Probing functions extract components from a given coverage.
For every component of a coverage a corresponding probing function exists so that altogether all
properties of a coverage can be retrieved. They serve to define this document’s language semantics.
NOTE 2 In the processing definition of this document, further probing functions, beyond the ISO 19123-1
probing function evaluate(), are used as a concise means to describe all aspects of coverage-valued function results.
5.3 Coverage identifier
Coverages in this document have an identifier which is used in a query to address a coverage to derive
from. Therefore, it is necessary for this identifier to be unique within some context (here: a query). No
assumptions are made on the realization of this identifier. In particular, when the context of the coverage
object changes (such as during delivery to a client) uniqueness is not necessarily guaranteed any longer.
Therefore querying the object in the new context is potentially no longer possible.
NOTE In a concrete service, coverages available would typically be those which are stored on this server, where
access control allows addressing the coverage according to the user sending the request, etc. All these aspects are
out of scope of this document.
ISO/FDIS 19123-3:2023(E)
The corresponding probing function for a coverage C is:
id( C )
5.4 Domain
5.4.1 Direct position
A coverage offers values for positions in its domain. These are called “direct positions”. Further values
can be derived through interpolation, depending on whether and what type of interpolation a coverage
allows.
For some direct position p = (p1,…,pd) from a domain whose d-dimensional CRS contains axes (a1,…,ad),
p[a ] is written for accessing the coordinate tuple component corresponding with axis a :
i i
p[a ] = p
i i
5.4.2 Grid
The domain contains the coordinate tuples describing the coverage’s direct positions, which for the
purpose of this document are on a multi-dimensional grid. Informally, this means that every direct
position inside the grid has exactly one next neighbour in both directions of every axis, except for the rim,
where obviously fewer neighbours are available. Figure 2 shows some regular and irregular grid
examples.
Figure 2 — Sample regular and irregular grid structures (ISO 19123-1)
The grid description depends on the complexity of the grid. As a grid is composed from an ordered
sequence of axes, the resulting complexity is determined by the types of axes (such as integer versus
Latitude versus time) as well as the rules determining the direct positions along these axes. The following
axis types defined in ISO 19123-1 are currently supported by this document:
— a Cartesian (“index”) axis, which just requires lower and upper bound (which are of type integer);
— a regular axis, which can be described by lower and upper bounds together with a constant
distance, the resolution;
— an irregular axis, which has individual distances, described by a sequence of coordinates.
As per ISO 19123-1, the coverage domain with its axes has a single CRS which can serve for geo-
referencing. The definition and interpretation of CRSs is in accordance with ISO 19111.
The CRS of a domain is obtained through function crs(C).
crs(C)
4 © ISO 2023 – All rights reserved
ISO/FDIS 19123-3:2023(E)
Auxiliary probing function axisList()extracts the ordered list of axes (a ,…,a ) from a d-dimensional CRS:
1 d
axisList( crs )
NOTE In accordance with ISO 19123-1, all axis names in such a list are pairwise disjoint so that the names can
act as a unique identifier within their CRS.
Each axis contributes coordinates from a nonempty, totally ordered set of values which can be numeric
or, in the general case, strings (such as “2020-08-05T”).
For a given coverage C, probing function domain() delivers the coverage domain in its CRS:
domain( C )
The domain information describes the coverage’s grid and its extent for each axis:
— the lower and upper bound of the direct positions;
— additionally, the following information:
— for index axes: nothing further;
— for regular axes: the resolution, expressed in the unit of measure (uom) of the axis;
— for irregular axes: the sequence of points.
This information is accessible through extended variants of the abovementioned functions. For some
coverage domain D with axis a, the following expressions return lower and upper bounds, respectively:
domain( C, a ).lo
domain( C, a ).hi
For convenience, a function pair identical in effect but based on the domain is defined:
D[a].lo = domain( C, a ).lo
D[a].hi = domain( C, a ).hi
The grid of the coverage domain is represented implicitly through functions “walking” the grid from one
direct position to one of its neighbours. This is based on the topological structure of a grid where each
direct position has exactly one lower and one higher neighbour along each axis, with the exception of the
domain rims where no such neighbour is available. Therefore, at the rim, these functions are partial.
Let D be given as the domain of coverage C, so that D = domain(C). Let further a be some axis from the
CRS of D. Then, functions pred() and succ() each return a neighbouring direct position for some given
position. Function pred() returns the immediate preceding direct position along axis a, function succ()
returns the immediate succeeding direct position along a. Where there is no such direct position (because
the input position is sitting at the rim of the domain extent) the value is undefined, written as ⊥.
pred( D, a, p ) = x where
if p[a] = D[a].lo domain(C,a).lo then x = ⊥
else x is given by: x[a ] = p[a ] for all a ∈ domain( C ) \ {a}, and x[a] = max( x’ | x’ ∈ domain( C, a )
x x x
and x’ < p[a] )
succ( D, a, p ) = x where
if p[a] = D[a].hi domain(C,a).hi then x = ⊥
ISO/FDIS 19123-3:2023(E)
else x is given by: x[a ] = p[a ] for all a ∈ domain( C ) \ {a}, and x[a] = min( x’ | x’ ∈ domain( C, a )
x x x
and x’ > p[a] )
EXAMPLE In Figure 3, neighbours of p in coverage domain D with axes x and y can be reached as follows:
a = succ( D, y, pred( D, x, p ) ) = pred( D, x, succ( D, y, p ) )
b = succ( D, y, p )
c = succ( D, y, succ( D, x, p ) ) = succ( D, x, succ( D, y, p ) )
d = pred( D, x, p )
e = succ( D, x, p )
f = pred( D, x, pred( D, y, p ) ) = pred( D, y, pred( D, x, p ) )
g = pred( D, y, p )
h = succ( D, x, pred( D, y, p ) ) = pred( D, y, succ( D, x, p ) )
In this document, for the user’s convenience, basic arithmetic functions are assumed on this grid navigation:
Figure 3 — Sample grid neighbourhood
5.5 Interpolation
In ISO 19123-1 a coverage contains an indication on possible interpolation between direct positions. Such
interpolation can be set for all axes in a coverages simultaneously or, following a more fine-grain
approach, individually per axis.
NOTE 1 In ISO 19123-1 every coverage has exactly one associated interpolation method (for all axes or per axis).
In practice, coverages can allow users to pick one of several interpolation methods, such as with imagery where
linear, quadratic and cubic interpolation are applicable on principle, and users can choose any one of those.
Conceptually, however, two coverages differing only in the interpolation methods are distinct as they will deliver
identical range values on their direct positions, but differing values inbetween those. At the abstract level of
ISO 19123-1 and ISO 19123-3, this ambiguity is not desirable.
For the purpose of this document a special interpolation method none is assumed as defined, for example,
in ISO 19123-1:2023, Annex B. None indicates that no interpolation is possible along the axis under
consideration.
NOTE 2 The interpolation method none is different from nearest-neighbor: An interpolation of nearest-
neighbor provides values inbetween direct positions which are derived from the closest direct position.
Interpolation none means that no values are provided between direct positions. In other words: the evaluation
function is undefined on any non-direct position and will in practice result in an exception.
Function interpolation(C,a) returns the interpolation method applicable on each axis of coverage C, in
order of the CRS axis sequence. For dimension(C)=d the probing function delivers interpolation method
list (m ,…,m ) with interpolation method m applying to axis number i:
1 d i
6 © ISO 2023 – All rights reserved
ISO/FDIS 19123-3:2023(E)
interpolation(C)
This function is overloaded to extract the interpolation method associated with axis a of C:
interpolation(C, a)
NOTE 3 Interpolation is particularly relevant with functions scale() and project().
5.6 Range values
The range value at a direct position p can be obtained with function evaluate (p) which, for a given
C
coverage C, returns the value associated with p∈domain(C) expressed in the coverage’s CRS.
The corresponding probing function is:
value( C, p ) = evaluate ( p ) for some direct position p∈domain( C )
C
Interpolation guides whether the value() function is defined on coordinates outside the set of direct
positions, and how this value is determined from the values available at the direct positions.
NOTE The range value set can contain one or more null values, as determined by the range type. This document
does not make any assumption on this.
5.7 Range type
A coverage’s range type description can be obtained through probing function rangeType() which
delivers a set of tuples containing at least field names and field type:
rangeType( C )
This function gets overloaded to obtain the coverage range type of a particular range field component f:
rangeType( C, f )
For the purpose of this document, only the common programming language data types are considered,
and only on a high, abstract level. These are Boolean, integer, float and complex, as well as records over
those assumed to be available. However, an implementation specification based on this document may
add its own data types as long as these are coherent with this document overall.
NOTE The concrete range types available in coverage processing are determined by concretizations of this
document. Typically, the standard programming language data types will be available, such as (unsigned) short, int,
and long, as well as float and double. For example, the range type (aka pixel) of an 8-bit RGB image normally is given
by the triple < red: unsigned char; green: unsigned char; blue: unsigned char>. Further, a concretization can add
more information such as null values, accuracy, etc.
5.8 Coverage probing functions synopsis
Requirement 1 https://standards.isotc211.org/19123/-3/1/req/core/probingFunctions
The semantics of the probing functions used for the ISO 19123-1 language semantics definition shall be
given by Table 3.
Table 3 —Coverage probing functions synopsis
ISO/FDIS 19123-3:2023(E)
Coverage Probing function Comment
characteristic for a coverage C,
based on ISO 19123-1
Coverage identifier id( C ) Identifier of the coverage.
Coverage CRS crs( C ) CRS of the coverage.
= crs ( domain( C ) )
as per ISO 19123-1
CRS axis list List of all axis names of the CRS, in
axisList( c )
proper sequence.
= (a ,…,a ) for some d-dimensional CRS c
1 d
establishing this axis sequence
Domain extent of domain( C ) Extent of the coverage in CRS
coverage coordinates.
domain( C, a )
= domain extent along axis a
domain( C, a ).lo
= lower bound of domain extent along axis
a
domain( C, a ).hi
= upper bound of domain extent along axis
a
Grid neighbour pred( C, a, p ) These functions allow to traverse a grid
in steps relative to some given position,
succ( C, a, p )
such as for convolution operations and,
generally, Tomlin’s non-local
as defined in 5.4.2
operations.
Range type rangeType( C ) The range type record is described by a
list describing its components in
rangeType( C, f )
sequence; for the purpose of this
= t where (f:t,.) ∈rangeType( C )
document only component name and its
data type are considered.
Range field name list rangeFieldNames( C ) Ordered list of all the coverage’s range
fields names and their data types;
= (f1, …, fn) where
possible further constituents in a record
rangeType( C) = ( (f ;t ,…), …, (f :t ,…) ),
1 1 n n
component are ignored in this
with field names f and types t
i i
document, their values are to be defined
elsewhere (e.g. implementation
dependent).
Range values value(C,p) Range values of the coverage at a direct
position (or some position inbetween,
= evaluate (p),p∈domain(C)
C
interpolation permitting).
with evaluate() as per 19123-1
8 © ISO 2023 – All rights reserved
ISO/FDIS 19123-3:2023(E)
Coverage Probing function Comment
characteristic for a coverage C,
based on ISO 19123-1
Interpolation interpolation( C ) List of the interpolation method allowed
as per ISO 19123-1 per axis, in axis order; in case the
coverage has only one interpolation
interpolation( C, a )
defined for all axes, this method is
= interpolation method of axis a
multiplied into all positions of the
output list.
Interpolation associated with a
particular axis.
6 Coverage processing language
This clause establishes the conformance class Coverage Processing.
This coverage processing language defines expressions on coverages which evaluate to ordered lists of
either coverages or scalars (whereby “scalar” here is used as a summary term of all data structures that
are not coverages). In the remainder of this document, the terms processing expression and query are used
interchangeably.
A coverage processing expression consists of a processCoveragesExpr (see 6.2). Each International
Standard claiming to support this document shall provide the coverage processing operations as
specified in the following subclauses. A sample application is provided in Annex D.
NOTE 1 This language has been designed to be “safe in evaluation”, i.e. implementations are possible where any
valid request can be evaluated in a finite number of steps, based on the operation primitives. Hence, services based
on the language constructs can be built in a way that no single request can render the service permanently
unavailable. This notwithstanding, it still is possible to send requests that will impose high workload on a server.
NOTE 2 Data items within a query result list can be heterogeneous in size and structure. In particular, the
coverages within an evaluation result list can have different dimensions, domains, range types, etc. However, a
result list always consists of either coverages or scalar values, not a mix of both.
6.1 Syntax and Semantics Definition Style
6.1.1 Expression Syntax
The language primitives plus the nesting capabilities form an expression language which is independent
from any specific encoding and service protocol. Collectively it is referred to as the coverage processing
language. In the following subclauses, the language elements are detailed. The complete syntax is listed
in Annex B.
A coverage processing expression is called admissible if and only if it adheres to the syntax of the
language definition of this document.
Requirement 2 https://standards.isotc211.org/19123/-3/1/req/core/syntax
Coverage processing expressions shall adhere to the syntax definition of Annex B.
NOTE A railroad diagram of the syntax in Annex B is provided in Annex C for visualization of the grammar.
EXAMPLE The coverage expression fragment $c * 2is admissible as it adheres to language syntax whereas
abc seen as a coverage expression violates the syntax and, hence, is not admissible.
ISO/FDIS 19123-3:2023(E)
6.1.2 Expression Semantics
The semantics of a coverage processing expression is defined recursively by indicating, for all admissible
expressions, the semantics. An expression is valid if and only if it is admissible and complies with all rules
imposed by the language semantics.
Requirement 3 https://standards.isotc211.org/19123/-3/1/req/core/semantics
Coverage processing expressions shall adhere to all semantics rules of this document.
EXAMPLE The following coverage expression is valid if and only if the coverage bound to variable $c has a
numeric range component named red.
$c.red * 2.5
NOTE In the remainder of this clause, tables are used to describe the effect of an operation on each coverage
constituent.
The semantics of coverage processing expressions is defined via so-called probing functions which extract
information from a coverage.
6.2 Coverage Processing Expressions
6.2.1 processCoveragesExpr
A processCoveragesExpr element processes a list of coverages in turn. Each coverage is optionally
checked first for fulfilling some predicate, and gets selected, i.e. contributes to an element of the result
list, only if the predicate evaluates to true. Each coverage selected will be processed, and the result will
be appended to the result list. This result list, finally, is returned as the ProcessCoverages response unless
any exception was generated.
Requirement 4 https://standards.isotc211.org/19
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...