sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Desruisseaux (JIRA)" <>
Subject [jira] [Created] (SIS-447) NumericCoverage as a parent of GridCoverage
Date Fri, 08 Mar 2019 19:15:00 GMT
Martin Desruisseaux created SIS-447:

             Summary: NumericCoverage as a parent of GridCoverage
                 Key: SIS-447
             Project: Spatial Information Systems
          Issue Type: New Feature
          Components: Features
    Affects Versions: 1.0
            Reporter: Martin Desruisseaux
             Fix For: 1.1

The base type of all coverage (including raster) data is {{Coverage}}, which is defined by
ISO 19123. A {{Coverage}} is not necessarily a grid (raster). It is rather a collection of
"geometry - record" pairs where the geometries are pixels in the particular case of rasters.
ISO 19123 defines many {{Coverage}} subtypes: {{DiscreteCoverage}}, {{ContinuousCoverage}},
_etc._. The types which seem closest to a raster are {{ContinuousQuadrilateralGridCoverage}}
and {{DiscreteGridPointCoverage}}. However even those types are more complex than the majority
of the needs to be handled by Apache SIS. For now SIS defines only one class, {{GridCoverage}},
which is simpler (at the cost of being less powerful) than ISO 19123 classes. We tried to
define {{GridCoverage}} in a way that should not conflict with future ISO 19123 compliant

A key simplification done in SIS {{GridCoverage}} compared to ISO 19123 {{Coverage}} is that,
in addition of assuming that values are distributed on a grid, it also assumes that all values
are stored as numbers. Those numbers may be associated to categories (e.g. _1 = clouds_),
but they still numbers. By contrast ISO 19123 allows the storage of more complex structures:
{{Record}} where each record may contain other records. An ISO 19123 {{Record}} may be seen
as a simple {{Feature}}, i.e. a feature where the multiplicity of all attributes is constrained
to [1…1].

In the same way than ISO 19123 allows various coverage types (not necessarily gridded) and
defines subclasses for the particular case of coverage using a grid, we may want a more general
class in Apache SIS for any coverage storing data as numbers (as a simplification of the more
general {{Record}} type). The methods could be:
public abstract class NumericCoverage {
    public abstract CoordinateReferenceSystem getCoordinateReferenceSystem();

    public abstract List<SampleDimension> getSampleDimensions();
{{GridCoverage}} would extend that class and add a {{getGridGeometry()}} method. The main
difference between this proposed {{NumericCoverage}} compared to ISO 19123 {{Coverage}} is
the {{getSampleDimensions()}} method, which can be seen as a specialization of the following
public interface Coverage {
    RecordType getRangeType();
The class name is difficult to chose. Current proposal is {{NumericCoverage}}. We found usage
of that term on a web page about [Atmospheric Dispersion Index|]:
_"The coverage descriptions, which indicate few, scattered, broken, or overcast, are translated
into numeric coverage classes."_ — while I'm not sure it describes the same thing. We searched
also {{NumericalCoverage}} but found less relevant usages.

This {{NumericCoverage}} class would be a complement of ISO 19123 classes. It should not prevent
us to implement more fully ISO 19123 in the future. The "Numeric" part in {{NumericCoverage}}
describes a characteristic of the _range_ (ISO 19123 coverages have two parts: _domain_ and
_range_), in the same way than the "Discrete" and "Continuous" parts in ISO 19123 {{DiscreteCoverage}}
and {{ContinuousCoverage}} also refer to the range.

This message was sent by Atlassian JIRA

View raw message