[ 
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)

Reply via email to