/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2011, Open Source Geospatial Foundation (OSGeo) * (C) 2005 Open Geospatial Consortium Inc. * * All Rights Reserved. http://www.opengis.org/legal/ */ /** * {@linkplain org.opengis.coverage.Coverage Coverages} (generate a value for any point). * The following is adapted from ISO 19123 specification. * * <P ALIGN="justify">A {@linkplain org.opengis.coverage.Coverage coverage} is a feature that associates * positions within a bounded space (its {@linkplain org.opengis.coverage.Coverage#getDomainElements domain}) * to feature attribute values (its {@linkplain org.opengis.coverage.Coverage#getRangeElements range}). * In other words, it is both a feature and a function. Examples include a raster image, a polygon * overlay, or a digital elevation matrix.</P> * * <P ALIGN="justify">A coverage may represent a single feature or a set of features.</P> * * <H3>Domain of a coverage</H3> * <P ALIGN="justify">A coverage domain is a set of geometric objects described in terms of * {@linkplain org.opengis.geometry.DirectPosition direct positions}. It may be * extended to all of the direct positions within the convex hull of that set of geometric objects. * The direct positions are associated with a spatial or temporal * {@linkplain org.opengis.referencing.crs.CoordinateReferenceSystem coordinate reference system}. * Commonly used domains include point sets, grids, collections of closed rectangles, and other * collections of geometric objects. The geometric objects may exhaustively partition the domain, * and thereby form a tessellation such as a grid or a TIN. Point sets and other sets of non-conterminous * geometric objects do not form tessellations. Coverage subtypes may be defined in terms of their domains.</P> * * <P ALIGN="justify">Coverage domains differ in both the coordinate dimension of the space in which they * exist and in the topological dimension of the geometric objects they contain. Clearly, the geometric * objects that make up a domain cannot have a topological dimension greater than the coordinate dimension * of the domain. A domain of coordinate dimension 3 may be composed of points, curves, surfaces, or solids, * while a domain of coordinate dimension 2 may be composed only of points, curves, or surfaces. * {@linkplain org.opengis.annotation.Specification#ISO_19107 ISO 19107} defines a number of geometric objects * (subtypes of the interface {@link org.opengis.geometry.Geometry}) to be used for the description * of features. Many of these geometric objects can be used to define domains for coverages. In addition, ISO 19108 * defines {@code TM_GeometricPrimitives} that may also be used to define domains of coverages.</P> * * <H3>The range of a coverage</H3> * <P ALIGN="justify">The range of a coverage is a set of feature attribute values. It may be either a finite or * a transfinite set. Coverages often model many associated functions sharing the same domain. Therefore, the value * set is represented as a collection of records with a common schema.</P> * * <BLOCKQUOTE><P ALIGN="justify"><B>Example:</B> * A coverage might assign to each direct position in a county the temperature, pressure, humidity, and wind * velocity at noon, today, at that point. The coverage maps every direct position in the county to a record * of 4 fields.</P></BLOCKQUOTE> * * <P ALIGN="justify">A feature attribute value may be of any data type. However, evaluation of a * {@linkplain org.opengis.coverage.ContinuousCoverage continuous coverage} is usually implemented * by interpolation methods that can be applied only to numbers or vectors. Other data types are * almost always associated with {@linkplain org.opengis.coverage.DiscreteCoverage discrete coverages}.</P> * * <P ALIGN="justify">Given a record from the range of a coverage, * {@linkplain org.opengis.coverage.Coverage#evaluateInverse inverse evaluation} is the calculation and exposure * of a set of geometric objects associated with specific values of the attributes. Inverse evaluation may return * many geometric objects associated with a single feature attribute value.</P> * * <BLOCKQUOTE><P ALIGN="justify"><B>Example:</B> * Inverse evaluation is used for the extraction of contours from an elevation coverage and the extraction of * classified regions in an image.</P></BLOCKQUOTE> * * <H3>Discrete and continuous coverages</H3> * <P ALIGN="justify">Coverages are of two types. A {@linkplain org.opengis.coverage.DiscreteCoverage discrete coverage} * has a domain that consists of a finite collection of geometric objects and the direct positions contained in those * geometric objects. A discrete coverage maps each geometric object to a single record of feature attribute values. * The geometric object and its associated record form a geometry value pair. A discrete coverage is thus a discrete * or step function as opposed to a continuous coverage. Discrete functions can be explicitly enumerated as * (<var>input</var>, <var>output</var>) pairs. A discrete coverage may be represented as a collection of ordered pairs * of independent and dependent variables. Each independent variable is a geometric object and each dependent variable * is a record of feature attribute values.</P> * * <BLOCKQUOTE><P ALIGN="justify"><B>Example:</B> * A coverage that maps a set of polygons to the soil type found within each polygon is an example of a * discrete coverage.</P></BLOCKQUOTE> * * <P ALIGN="justify">A continuous coverage has a domain that consists of a set of direct positions in a coordinate space. * A continuous coverage maps direct positions to value records.</P> * * <BLOCKQUOTE><P ALIGN="justify"><B>Example:</B> * Consider a coverage that maps direct positions in San Diego County to their temperature at noon today. Both the * domain and the range may take infinitely many different values. This continuous coverage would be associated with * a discrete coverage that holds the temperature values observed at a set of weather stations.</P></BLOCKQUOTE> * * <P ALIGN="justify">A continuous coverage may consist of no more than a spatially bounded, but transfinite set of * direct positions, and a mathematical function that relates direct position to feature attribute value. This is * called an analytical coverage.</P> * * <BLOCKQUOTE><P ALIGN="justify"><B>Example:</B> * A statistical trend surface that relates land value to position relative to a city centre is an example * of a continuous coverage.</P></BLOCKQUOTE> * * <P ALIGN="justify">More often, the domain of a continuous coverage consists of the direct positions * in the union or in the convex hull of a finite collection of geometric objects; it is specified by * that collection. In most cases, a continuous coverage is also associated with a discrete coverage * that provides a set of control values to be used as a basis for evaluating the continuous coverage. * Evaluation of the continuous coverage at other direct positions is done by interpolating between the * geometry value pairs of the control set. This often depends upon additional geometric objects constructed * from those in the control set; these additional objects are typically of higher topological dimension than * the control objects. In this set of interfaces, such objects are called geometry value objects. A geometry * value object is a geometric object associated with a set of geometry value pairs that provide the control for * constructing the geometric object and for evaluating the coverage at direct positions within the geometric object.</P> * * <BLOCKQUOTE><P ALIGN="justify"><B>Example:</B> * Evaluation of a triangulated irregular network involves interpolation of values within a triangle composed * of three neighbouring point value pairs.</P></BLOCKQUOTE> * * @version ISO 19123:2004 * @since GeoAPI 2.0 */ package org.opengis.coverage;