| org.geotools.referencing.operation.transform.AbstractMathTransform org.geotools.referencing.operation.transform.NADCONTransform
NADCONTransform | public class NADCONTransform extends AbstractMathTransform implements MathTransform2D,Serializable(Code) | | Transform backed by the North American Datum Conversion grid.
The North American Datum Conversion (NADCON) Transform (EPSG code 9613) is a
two dimentional datum shift method, created by the National Geodetic Survey
(NGS), that uses interpolated values from two grid shift files. This
method is used to transform NAD27 (EPSG code 4267) datum coordinates (and
some others) to NAD83 (EPSG code 4267) within the United States. There are
two set of grid shift files: NADCON and High Accuracy Reference Networks
(HARN). NADCON shfts from NAD27 (and some others) to NAD83 while HARN
shifts from the NADCON NAD83 to an improved NAD83. Both sets of grid shift
files may be downloaded from
www.ngs.noaa.gov/PC_PROD/NADCON/.
Some of the NADCON grids, their areas of use, and source datums are shown
in the following table.
Shift File Name | Area | Source Datum | Accuracy at 67% confidence (m) |
CONUS | Conterminous U S (lower 48 states) | NAD27 | 0.15 |
ALASKA | Alaska, incl. Aleutian Islands | NAD27 | 0.5 |
HAWAII | Hawaiian Islands | Old Hawaiian (4135) | 0.2 |
STLRNC | St. Lawrence Is., AK | St. Lawrence Island (4136) | -- |
STPAUL | St. Paul Is., AK | St. Paul Island (4137) | -- |
STGEORGE | St. George Is., AK | St. George Island (4138) | -- |
PRVI | Puerto Rico and the Virgin Islands | Puerto Rico (4139) | 0.05 |
Grid shift files come in two formats: binary and text. The files from the NGS are
binary and have
.las (latitude shift) and
.los (longitude shift)
extentions. Text grids may be created with the NGS nadgrd program and have
.laa (latitude shift) and
.loa (longitude shift) file extentions.
Both types of files may be used here.
The grid names to use for transforming are parameters of this
MathTransform . This parameter may be the full name and path to the grids
or just the name of the grids if the default location of the grids was set
as a preference. This preference may be set with the main method of this
class.
Transformations here have been tested to be within 0.00001 seconds of
values given by the NGS ndcon210 program for NADCON grids. American Samoa
and HARN shifts have not yet been tested. References:
See Also: NADCON -
* North American Datum Conversion Utility since: 2.1 version: $Id: NADCONTransform.java 29101 2008-02-06 12:11:19Z desruisseaux $ author: Rueben Schulz |
Method Summary | |
final public boolean | equals(Object object) Compares the specified object with this math transform for equality. | public ParameterDescriptorGroup | getParameterDescriptors() Returns the parameter descriptors for this math transform. | public ParameterValueGroup | getParameterValues() Returns the parameter values for this math transform. | public int | getSourceDimensions() Gets the dimension of input points (always 2). | public int | getTargetDimensions() Gets the dimension of output points (always 2). | final public int | hashCode() Returns a hash value for this transform. | public MathTransform | inverse() Returns the inverse of this transform. | public void | inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Transforms nad83 values to nad27. | public static void | main(String[] args) Used to set the preference for the default grid shift file location.
This allows grids parameters to be specified by name only, without the
full path. | public void | transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) Transforms a list of coordinate point ordinal values. |
NADCONTransform | public NADCONTransform(String latGridName, String longGridName) throws ParameterNotFoundException, FactoryException(Code) | | Constructs a
NADCONTransform from the specified grid shift files.
Parameters: latGridName - path and name (or just name if NADCONTransform.GRID_LOCATIONis set) to the latitude difference file. This will have a .las or .laa file extention. Parameters: longGridName - path and name (or just name if NADCONTransform.GRID_LOCATIONis set) to the longitude difference file. This will have a .los or .loa file extention. throws: ParameterNotFoundException - if a math transform parameter cannot be found. throws: FactoryException - if there is a problem creating this math transform(ie file extentions are unknown or there is an error reading thegrid files) |
equals | final public boolean equals(Object object)(Code) | | Compares the specified object with this math transform for equality.
Parameters: object - the object to compare to true if the objects are equal. |
getParameterDescriptors | public ParameterDescriptorGroup getParameterDescriptors()(Code) | | Returns the parameter descriptors for this math transform.
|
getParameterValues | public ParameterValueGroup getParameterValues()(Code) | | Returns the parameter values for this math transform.
A copy of the parameter values for this math transform. |
getSourceDimensions | public int getSourceDimensions()(Code) | | Gets the dimension of input points (always 2).
the source dimensions. |
getTargetDimensions | public int getTargetDimensions()(Code) | | Gets the dimension of output points (always 2).
the target dimensions. |
hashCode | final public int hashCode()(Code) | | Returns a hash value for this transform. To make this faster it does not
check the grid values.
a hash value for this transform. |
inverse | public MathTransform inverse()(Code) | | Returns the inverse of this transform.
the inverse of this transform |
inverseTransform | public void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws TransformException(Code) | | Transforms nad83 values to nad27. Input and output values are in
decimal degrees. This is done by itteratively finding a nad27 value that
shifts to the input nad83 value. The input nad83 value is used as the
first approximation.
Parameters: srcPts - the array containing the source point coordinates. Parameters: srcOff - the offset to the first point to be transformed in thesource array. Parameters: dstPts - the array into which the transformed point coordinates arereturned. May be the same than srcPts . Parameters: dstOff - the offset to the location of the first transformed pointthat is stored in the destination array. Parameters: numPts - the number of point objects to be transformed. throws: TransformException - if the input point is outside the areacovered by this grid. |
main | public static void main(String[] args)(Code) | | Used to set the preference for the default grid shift file location.
This allows grids parameters to be specified by name only, without the
full path. This needs to be done only once, by the user.
Path values may be simple file system paths or more complex
text representations of a url. A value of "default" resets this
preference to its default value.
Example:
java org.geotools.referencing.operation.transform.NADCONTransform file:///home/rschulz/GIS/NADCON/data
Parameters: args - a single argument for the defualt location of grid shiftfiles |
transform | public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws TransformException(Code) | | Transforms a list of coordinate point ordinal values. This method is
provided for efficiently transforming many points. The supplied array
of ordinal values will contain packed ordinal values. For example, if
the source dimension is 3, then the ordinals will be packed in this
order:
(x0,y0,z0,
x1,y1,z1
...). All input and output values are in decimal degrees.
Parameters: srcPts - the array containing the source point coordinates. Parameters: srcOff - the offset to the first point to be transformed in thesource array. Parameters: dstPts - the array into which the transformed point coordinates arereturned. May be the same than srcPts . Parameters: dstOff - the offset to the location of the first transformed pointthat is stored in the destination array. Parameters: numPts - the number of point objects to be transformed. throws: TransformException - if the input point is outside the areacovered by this grid. |
Methods inherited from org.geotools.referencing.operation.transform.AbstractMathTransform | MathTransform concatenate(MathTransform other, boolean applyOtherFirst)(Code)(Java Doc) public Shape createTransformedShape(Shape shape) throws TransformException(Code)(Java Doc) final Shape createTransformedShape(Shape shape, AffineTransform preTransform, AffineTransform postTransform, int orientation) throws TransformException(Code)(Java Doc) public Matrix derivative(Point2D point) throws TransformException(Code)(Java Doc) public Matrix derivative(DirectPosition point) throws TransformException(Code)(Java Doc) protected static void ensureNonNull(String name, Object object) throws IllegalArgumentException(Code)(Java Doc) public boolean equals(Object object)(Code)(Java Doc) protected String formatWKT(Formatter formatter)(Code)(Java Doc) public ParameterDescriptorGroup getParameterDescriptors()(Code)(Java Doc) public ParameterValueGroup getParameterValues()(Code)(Java Doc) abstract public int getSourceDimensions()(Code)(Java Doc) abstract public int getTargetDimensions()(Code)(Java Doc) public int hashCode()(Code)(Java Doc) public MathTransform inverse() throws NoninvertibleTransformException(Code)(Java Doc) static Matrix invert(Matrix matrix) throws NoninvertibleTransformException(Code)(Java Doc) public boolean isIdentity()(Code)(Java Doc) protected static boolean needCopy(int srcOff, int dimSource, int dstOff, int dimTarget, int numPts)(Code)(Java Doc) protected static double rollLongitude(double x)(Code)(Java Doc) static GeneralMatrix toGMatrix(Matrix matrix)(Code)(Java Doc) static XMatrix toXMatrix(Matrix matrix)(Code)(Java Doc) public Point2D transform(Point2D ptSrc, Point2D ptDst) throws TransformException(Code)(Java Doc) public DirectPosition transform(DirectPosition ptSrc, DirectPosition ptDst) throws TransformException(Code)(Java Doc) public void transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) throws TransformException(Code)(Java Doc)
|
|
|