[ https://issues.apache.org/jira/browse/SIS-447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Desruisseaux reassigned SIS-447: --------------------------------------- Assignee: Martin Desruisseaux > 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 > Assignee: Martin Desruisseaux > Priority: Minor > 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 (v8.3.4#803005)