You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by "Martin Desruisseaux (JIRA)" <ji...@apache.org> on 2019/03/08 19:15:00 UTC
[jira] [Created] (SIS-447) NumericCoverage as a parent of
GridCoverage
Martin Desruisseaux created SIS-447:
---------------------------------------
Summary: NumericCoverage as a parent of GridCoverage
Key: SIS-447
URL: https://issues.apache.org/jira/browse/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 development.
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:
{code:java}
public abstract class NumericCoverage {
public abstract CoordinateReferenceSystem getCoordinateReferenceSystem();
public abstract List<SampleDimension> getSampleDimensions();
}
{code}
{{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 method:
{code:java}
public interface Coverage {
RecordType getRangeType();
}
{code}
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|http://cwfis.cfs.nrcan.gc.ca/background/summary/adi]: _"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
(v7.6.3#76005)