Interface ThiessenPolygonCoverage

  • All Superinterfaces:
    ContinuousCoverage, Coverage

    @UML(identifier="CV_ThiessenPolygonCoverage",
         specification=ISO_19123)
    public interface ThiessenPolygonCoverage
    extends ContinuousCoverage
    Evaluates a coverage at direct positions within a Thiessen polygon network constructed from a set of discrete point-value pairs. Evaluation is based on interpolation between the centeres of the Thiessen value polygons surrounding the input position.

    Thiessen polygon networks

    A finite collection of points on a plane determines a partition of the plane into a collection of polygons equal in number to the collection of points. A Thiessen polygon is generated from one of a defining set of points by forming the set of direct positions that are closer to that point than to any other point in the defining set. The specific point is called the centre of the resulting polygon. The boundaries between neighbouring polygons are the perpendicular bisectors of the lines between their respective centres. Each polygon shares each of its edges with exactly one other polygon. Each polygon contains exactly one point from the defining set. Thiessen polygons are also known as Voronoi Diagrams or Proximal Sets.

    A Thiessen polygon network is a tessellation of a 2D space using Thiessen polygons. A Thiessen polygon network provides a structure that supports interpolation of feature attribute values from the polygon centres to direct positions within the polygons.

    Since:
    GeoAPI 2.1
    TODO:
    Provide a figure derived from figure 11 in ISO 19123.
    • Method Detail

      • getElements

        @UML(identifier="element",
             obligation=OPTIONAL,
             specification=ISO_19123)
        Set<ThiessenValuePolygon> getElements()
        Returns the set of value objects used to evaluate the coverage. This association is optional - an analytical coverage needs no value objects.
        Specified by:
        getElements in interface ContinuousCoverage
        Returns:
        the value used to evaluate the coverage, or null if not applicable.
      • getClipArea

        @UML(identifier="clipArea",
             obligation=MANDATORY,
             specification=ISO_19123)
        Surface getClipArea()
        Returns the extent of the Thiessen polygon network. Its boundary determines the boundaries of the outermost polygons in the network, which would otherwise be unbounded.
        Returns:
        the extent of th polygon network.
      • getInterpolationMethod

        @UML(identifier="interpolationType",
             obligation=OPTIONAL,
             specification=ISO_19123)
        InterpolationMethod getInterpolationMethod()
        Returns the interpolation method to be used in evaluating the coverage. The most common interpolation methods are "lost area" and "nearest neighbour". Lost area interpolation can return a different record of feature attribute values for each direct position within a Thiessen value polygon. On the other hand, nearest neighbour interpolation will return for any direct position within a Thiessen polygon the record associated with the point-value pair at the centre of the Thiessen polygon. In other words, a Thiessen polygon coverage that uses nearest neighbour interpolation acts like a discrete surface coverage.
        Specified by:
        getInterpolationMethod in interface ContinuousCoverage
        Returns:
        the interpolation method, or null if not applicable.
      • locate

        @UML(identifier="locate",
             obligation=OPTIONAL,
             specification=ISO_19123)
        Set<ThiessenValuePolygon> locate​(DirectPosition p)
        Returns the set of Thiessen values polygon that include the domain objects containing the specified direct position.
        Specified by:
        locate in interface ContinuousCoverage
        Parameters:
        p - the position where to locate objects.
        Returns:
        the objects at the given location.
      • evaluate

        @UML(identifier="evaluate",
             obligation=MANDATORY,
             specification=ISO_19123)
        Set<Record> evaluate​(DirectPosition p,
                             Collection<String> list)
                      throws CannotEvaluateException
        Returns a set of records of feature attribute values for the specified direct position. Evaluation of a Thiessen polygon coverage involves two steps. The first is to locate the Thiessen value polygon that contains the input direct position; the second is to interpolate the feature attribute values at the direct position from the point-value pairs at the centres of the surrounding Thiessen value polygons.
        Specified by:
        evaluate in interface ContinuousCoverage
        Specified by:
        evaluate in interface Coverage
        Parameters:
        p - The position where to evaluate.
        list - The field of interest, or null for every fields.
        Returns:
        the feature attributes.
        Throws:
        PointOutsideCoverageException - if the point is outside the coverage domain.
        CannotEvaluateException - if the point can not be evaluated for some other reason.