Interface RectifiedGrid

  • All Superinterfaces:
    Grid, ReferenceableGrid

    @UML(identifier="CV_RectifiedGrid",
         specification=ISO_19123)
    public interface RectifiedGrid
    extends ReferenceableGrid
    Grid for which there is an affine transformation between the grid coordinates and the coordinates of an external coordinate reference system. A rectified grid is defined by an origin in an external coordinate reference system, and a set of offset vectors that specify the direction and distance between grid lines within that external CRS.
    Note: If the coordinate reference system is related to the earth by a datum, the grid is a georectified grid.

    Constraints:

    • The dimension of the grid shall be less than or equal to the dimension of the coordinate reference system of the point that is the origin.
    • The number of offset vectors shall equal the dimension of the grid.
    • The dimension of all offset vectors shall equal the dimension of the coordinate reference system, even if an offset vector is aligned with an axis of the external coordinate system.
    Since:
    GeoAPI 2.1
    Departure from OGC/ISO specification:
    ISO 19123 defines RectifiedGrid as a direct sub-type of Grid. In GeoAPI, RectifiedGrid extends Grid indirectly, through ReferenceableGrid. In the GeoAPI hierarchy, RectifiedGrid is considered as a special case of ReferenceableGrid where the grid to CRS coordinate operation is affine. This hierarchy make easier to leverage the same code for both the affine and non-affine cases when the code does not require a strictly affine operation.
    • Method Detail

      • getOrigin

        @UML(identifier="origin",
             obligation=MANDATORY,
             specification=ISO_19123)
        DirectPosition getOrigin()
        Returns the origin of the rectified grid in an external coordinate reference system.
        Returns:
        the origin of the rectified grid.
      • getOffsetVectors

        @UML(identifier="offsetVectors",
             obligation=MANDATORY,
             specification=ISO_19123)
        List<double[]> getOffsetVectors()
        Returns the offset vectors that determine the grid spacing in each direction. The vectors are defined in terms of the external coordinate reference system.
        Returns:
        the offset vectors that determine the grid spacing in each direction.
      • transformCoordinates

        @UML(identifier="coordConv",
             obligation=MANDATORY,
             specification=ISO_19123)
        DirectPosition transformCoordinates​(GridCoordinates g)
        Converts through an affine transform grid coordinates to a direct position.
        Specified by:
        transformCoordinates in interface ReferenceableGrid
        Parameters:
        g - The grid coordinates to convert.
        Returns:
        the "real world" coordinates.
        Departure from OGC/ISO specification:
        A "convertCoordinates" method name would match better the ISO identifier. However since RectifiedGrid extends ReferenceableGrid in GeoAPI, we have to use the same method names than the later. Here, transform is to be understood as a term encompassing both transformation and conversion. This is similar to the MathTransform name policy.
      • inverseTransformCoordinates

        @UML(identifier="invCoordConv",
             obligation=MANDATORY,
             specification=ISO_19123)
        GridCoordinates inverseTransformCoordinates​(DirectPosition p)
        Converts through an affine transform a direct position to the grid coordinates of the nearest grid point.
        Specified by:
        inverseTransformCoordinates in interface ReferenceableGrid
        Parameters:
        p - The "real world" coordinates to convert.
        Returns:
        the grid coordinates.
        Departure from OGC/ISO specification:
        A "inverseConvertCoordinates" method name would match better the ISO identifier. However since RectifiedGrid extends ReferenceableGrid in GeoAPI, we have to use the same method names than the later. Here, transform is to be understood as a term encompassing both transformation and conversion. This is similar to the MathTransform name policy.