|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.geotools.coverage.grid.GeneralGridGeometry
public class GeneralGridGeometry
Describes the valid range of grid coordinates and the math transform to transform grid coordinates to real world coordinates. Grid geometries contains:
All grid geometry attributes are optional because some of them may be inferred from a wider
context. For example a grid geometry know nothing about rendered
images, but GridCoverage2D
do. Consequently, the later may infer the grid range by itself.
By default, any request for an undefined attribute will thrown an
InvalidGridGeometryException
. In order to check if an attribute is defined,
use isDefined(int)
.
GridGeometry2D
,
ImageGeometry
,
Serialized FormField Summary | |
---|---|
static int |
CRS_BITMASK
A bitmask to specify the validity of the coordinate reference system. |
static int |
ENVELOPE_BITMASK
A bitmask to specify the validity of the envelope. |
static int |
GRID_RANGE_BITMASK
A bitmask to specify the validity of the grid range. |
static int |
GRID_TO_CRS_BITMASK
A bitmask to specify the validity of the grid to CRS transform. |
protected org.opengis.coverage.grid.GridEnvelope |
gridRange
The valid coordinate range of a grid coverage, or null if none. |
protected org.opengis.referencing.operation.MathTransform |
gridToCRS
The math transform (usually an affine transform), or null if none. |
Constructor Summary | |
---|---|
GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange,
org.opengis.geometry.Envelope userRange)
Constructs a new grid geometry from an envelope. |
|
GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange,
org.opengis.geometry.Envelope userRange,
boolean[] reverse,
boolean swapXY)
Deprecated. Use GridToEnvelopeMapper instead, which provides more control. |
|
GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange,
org.opengis.referencing.operation.MathTransform gridToCRS,
org.opengis.referencing.crs.CoordinateReferenceSystem crs)
Constructs a new grid geometry from a grid range and a math transform mapping pixel center. |
|
GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange,
org.opengis.referencing.datum.PixelInCell anchor,
org.opengis.referencing.operation.MathTransform gridToCRS,
org.opengis.referencing.crs.CoordinateReferenceSystem crs)
Constructs a new grid geometry from a grid range and a math transform mapping pixel center or corner. |
|
GeneralGridGeometry(org.opengis.coverage.grid.GridGeometry other)
Creates a new grid geometry with the same values than the given grid geometry. |
|
GeneralGridGeometry(org.opengis.referencing.datum.PixelInCell anchor,
org.opengis.referencing.operation.MathTransform gridToCRS,
org.opengis.geometry.Envelope envelope)
Constructs a new grid geometry from an envelope and a math transform. |
Method Summary | |
---|---|
boolean |
equals(java.lang.Object object)
Compares the specified object with this grid geometry for equality. |
org.opengis.referencing.crs.CoordinateReferenceSystem |
getCoordinateReferenceSystem()
Returns the "real world" coordinate reference system. |
int |
getDimension()
Returns the number of dimensions. |
org.opengis.geometry.Envelope |
getEnvelope()
Returns the bounding box of "real world" coordinates for this grid geometry. |
org.opengis.coverage.grid.GridEnvelope |
getGridRange()
Returns the valid coordinate range of a grid coverage. |
org.opengis.referencing.operation.MathTransform |
getGridToCRS()
Returns the transform from grid coordinates to real world earth coordinates. |
org.opengis.referencing.operation.MathTransform |
getGridToCRS(org.opengis.referencing.datum.PixelInCell anchor)
Returns the transform from grid coordinates to real world earth coordinates. |
int |
hashCode()
Returns a hash value for this grid geometry. |
boolean |
isDefined(int bitmask)
Returns true if all the parameters specified by the argument are set. |
java.lang.String |
toString()
Returns a string representation of this grid geometry. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int CRS_BITMASK
isDefined(int)
method.
public static final int ENVELOPE_BITMASK
isDefined(int)
method.
public static final int GRID_RANGE_BITMASK
isDefined(int)
method.
public static final int GRID_TO_CRS_BITMASK
isDefined(int)
method.
protected final org.opengis.coverage.grid.GridEnvelope gridRange
null
if none. The lowest valid
grid coordinate is zero for BufferedImage
, but may be non-zero for
arbitrary RenderedImage
. A grid with 512 cells can have a minimum coordinate of 0
and maximum of 512, with 511 as the highest valid index.
RenderedImage.getMinX()
,
RenderedImage.getMinY()
,
RenderedImage.getWidth()
,
RenderedImage.getHeight()
protected final org.opengis.referencing.operation.MathTransform gridToCRS
null
if none.
This math transform maps pixel center
to "real world" coordinate using the following line:
gridToCRS.transform(pixels, point);
Constructor Detail |
---|
public GeneralGridGeometry(org.opengis.coverage.grid.GridGeometry other)
GeneralGridGeometry
.
other
- The other grid geometry to copy.public GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange, org.opengis.referencing.operation.MathTransform gridToCRS, org.opengis.referencing.crs.CoordinateReferenceSystem crs) throws org.opengis.geometry.MismatchedDimensionException, java.lang.IllegalArgumentException
gridRange
- The valid coordinate range of a grid coverage, or null
if none.gridToCRS
- The math transform which allows for the transformations from grid
coordinates (pixel's center) to real world earth coordinates.
May be null
, but this is not recommanded.crs
- The coordinate reference system for the "real world" coordinates, or
null
if unknown. This CRS is given to the
envelope.
org.opengis.geometry.MismatchedDimensionException
- if the math transform and the CRS don't have
consistent dimensions.
java.lang.IllegalArgumentException
- if the math transform can't transform coordinates
in the domain of the specified grid range.public GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange, org.opengis.referencing.datum.PixelInCell anchor, org.opengis.referencing.operation.MathTransform gridToCRS, org.opengis.referencing.crs.CoordinateReferenceSystem crs) throws org.opengis.geometry.MismatchedDimensionException, java.lang.IllegalArgumentException
gridRange
- The valid coordinate range of a grid coverage, or null
if none.anchor
- CELL_CENTER
for OGC conventions or
CELL_CORNER
for Java2D/JAI conventions.gridToCRS
- The math transform which allows for the transformations from grid
coordinates to real world earth coordinates. May be null
,
but this is not recommanded.crs
- The coordinate reference system for the "real world" coordinates, or
null
if unknown. This CRS is given to the
envelope.
org.opengis.geometry.MismatchedDimensionException
- if the math transform and the CRS don't have
consistent dimensions.
java.lang.IllegalArgumentException
- if the math transform can't transform coordinates
in the domain of the specified grid range.public GeneralGridGeometry(org.opengis.referencing.datum.PixelInCell anchor, org.opengis.referencing.operation.MathTransform gridToCRS, org.opengis.geometry.Envelope envelope) throws org.opengis.geometry.MismatchedDimensionException, java.lang.IllegalArgumentException
anchor
argument.
anchor
- CELL_CENTER
for OGC conventions or
CELL_CORNER
for Java2D/JAI conventions.gridToCRS
- The math transform which allows for the transformations from grid
coordinates to real world earth coordinates. May be null
,
but this is not recommended.envelope
- The envelope (including CRS) of a grid coverage, or null
if none.
org.opengis.geometry.MismatchedDimensionException
- if the math transform and the envelope doesn't have
consistent dimensions.
java.lang.IllegalArgumentException
- if the math transform can't transform coordinates
in the domain of the grid range.public GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange, org.opengis.geometry.Envelope userRange) throws org.opengis.geometry.MismatchedDimensionException
GridToEnvelopeMapper
javadoc.
More specifically, heuristic rules are applied for:
gridRange
- The valid coordinate range of a grid coverage.userRange
- The corresponding coordinate range in user coordinate. This rectangle must
contains entirely all pixels, i.e. the rectangle's upper left corner must
coincide with the upper left corner of the first pixel and the rectangle's
lower right corner must coincide with the lower right corner of the last
pixel.
org.opengis.geometry.MismatchedDimensionException
- if the grid range and the envelope doesn't have
consistent dimensions.@Deprecated public GeneralGridGeometry(org.opengis.coverage.grid.GridEnvelope gridRange, org.opengis.geometry.Envelope userRange, boolean[] reverse, boolean swapXY) throws org.opengis.geometry.MismatchedDimensionException
GridToEnvelopeMapper
instead, which provides more control.
GridToEnvelopeMapper
; see its javadoc for details.
If this convenience constructor do not provides suffisient control on axis order or reversal, then an affine transform shall be created explicitly and the grid geometry shall be created using the constructor expecting a math transform argument.
gridRange
- The valid coordinate range of a grid coverage.userRange
- The corresponding coordinate range in user coordinate. This envelope must
contains entirely all pixels, i.e. the envelope's upper left corner must
coincide with the upper left corner of the first pixel and the envelope's
lower right corner must coincide with the lower right corner of the last
pixel.reverse
- Tells for each axis in user space whatever or not its direction
should be reversed. A null
value reverse no axis. Callers will
typically set reverse[1]
to true
in order to reverse the
y axis direction.swapXY
- If true
, then the two first axis will be interchanged. Callers will
typically set this argument to true
when the geographic coordinate
system has axis in the (y,x) order. The reverse
parameter then apply to axis after the swap.
org.opengis.geometry.MismatchedDimensionException
- if the grid range and the envelope doesn't have
consistent dimensions.Method Detail |
---|
public int getDimension()
public org.opengis.referencing.crs.CoordinateReferenceSystem getCoordinateReferenceSystem() throws InvalidGridGeometryException
null
).
InvalidGridGeometryException
- if this grid geometry has no CRS (i.e.
isDefined(CRS_BITMASK)
returned false
).GridGeometry2D.getCoordinateReferenceSystem2D()
public org.opengis.geometry.Envelope getEnvelope() throws InvalidGridGeometryException
null
).
InvalidGridGeometryException
- if this grid geometry has no envelope (i.e.
isDefined(ENVELOPE_BITMASK)
returned false
).GridGeometry2D.getEnvelope2D()
public org.opengis.coverage.grid.GridEnvelope getGridRange() throws InvalidGridGeometryException
BufferedImage
, but may be non-zero for arbitrary
RenderedImage
. A grid with 512 cells can have a minimum coordinate of 0 and
maximum of 512, with 511 as the highest valid index.
getGridRange
in interface org.opengis.coverage.grid.GridGeometry
null
).
InvalidGridGeometryException
- if this grid geometry has no grid range (i.e.
isDefined(GRID_RANGE_BITMASK)
returned false
).GridGeometry2D.getGridRange2D()
public org.opengis.referencing.operation.MathTransform getGridToCRS() throws InvalidGridGeometryException
Coverage.getCoordinateReferenceSystem()
.
Note: OpenGIS requires that the transform maps pixel centers to real world coordinates. This is different from some other systems that map pixel's upper left corner.
getGridToCRS
in interface org.opengis.coverage.grid.GridGeometry
null
).
InvalidGridGeometryException
- if this grid geometry has no transform (i.e.
isDefined(GRID_TO_CRS_BITMASK)
returned false
).GridGeometry2D.getGridToCRS2D()
public org.opengis.referencing.operation.MathTransform getGridToCRS(org.opengis.referencing.datum.PixelInCell anchor) throws InvalidGridGeometryException
getGridToCRS()
except that the transform may maps
other parts than pixel center.
anchor
- The pixel part to map.
null
).
InvalidGridGeometryException
- if this grid geometry has no transform (i.e.
isDefined(GRID_TO_CRS_BITMASK)
returned false
).getGridToCRS(org.opengis.referencing.datum.PixelInCell)
public boolean isDefined(int bitmask) throws java.lang.IllegalArgumentException
true
if all the parameters specified by the argument are set.
bitmask
- Any combinaison of CRS_BITMASK
, ENVELOPE_BITMASK
, GRID_RANGE_BITMASK
and GRID_TO_CRS_BITMASK
.
true
if all specified attributes are defined (i.e. invoking the
corresponding method will not thrown an InvalidGridGeometryException
).
java.lang.IllegalArgumentException
- if the specified bitmask is not a combinaison of known
masks.ImageLayout.isValid(int)
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object object)
equals
in class java.lang.Object
object
- The object to compare with.
true
if the given object is equals to this grid geometry.public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |