ucar.unidata.geoloc.projection
Class UtmProjection

java.lang.Object
  extended by ucar.unidata.geoloc.ProjectionImpl
      extended by ucar.unidata.geoloc.projection.UtmProjection
All Implemented Interfaces:
Serializable, Cloneable, Projection

public class UtmProjection
extends ProjectionImpl

Universal Transverse Mercator. Ellipsoidal earth.

Origin of coordinate system is reletive to the point where the central meridian and the equator cross. This point has x,y value = (500, 0) km for north hemisphere. and (500, 10,0000) km for south hemisphere. Increasing values always go north and east.

The central meridian = (zone * 6 - 183) degrees, where zone in [1,60].

Author:
John Caron
See Also:
Serialized Form

Field Summary
 
Fields inherited from class ucar.unidata.geoloc.ProjectionImpl
ATTR_NAME, atts, defaultMapArea, EARTH_RADIUS, INDEX_LAT, INDEX_LON, INDEX_X, INDEX_Y, isLatLon, name, PI, PI_OVER_2, PI_OVER_4, TOLERANCE
 
Constructor Summary
UtmProjection()
          Constructor with default parameters
UtmProjection(double a, double f, int zone, boolean isNorth)
          Construct a Universal Transverse Mercator Projection.
UtmProjection(int zone, boolean isNorth)
          Constructor with default WGS 84 ellipsoid.
 
Method Summary
 ProjectionImpl constructCopy()
          copy constructor - avoid clone !!
 boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2)
          Does the line between these two points cross the projection "seam".
 boolean equals(Object proj)
          Returns true if this represents the same Projection as proj.
 double getCentralMeridian()
           
 String getProjectionTypeLabel()
          Get the label to be used in the gui for this type of projection
 int getZone()
          Get the zone number = [1,60]
 boolean isNorth()
          Get whether in North or South Hemisphere.
 double[][] latLonToProj(double[][] from, double[][] to, int latIndex, int lonIndex)
          _more_
 float[][] latLonToProj(float[][] from, float[][] to, int latIndex, int lonIndex)
          _more_
 ProjectionPoint latLonToProj(LatLonPoint latLon, ProjectionPointImpl result)
          Convert a LatLonPoint to projection coordinates
static void main(String[] arg)
           
 String paramsToString()
          Get the parameters as a String
 double[][] projToLatLon(double[][] from, double[][] to)
          _more_
 float[][] projToLatLon(float[][] from, float[][] to)
          Convert projection coordinates to lat/lon coordinate.
 LatLonPoint projToLatLon(ProjectionPoint world, LatLonPointImpl result)
          Convert projection coordinates to a LatLonPoint Note: a new object is not created on each call for the return value.
 void setNorth(boolean newNorth)
          Set whether in North or South Hemisphere.
 void setZone(int newZone)
          Set the zone number = [1,60]
 
Methods inherited from class ucar.unidata.geoloc.ProjectionImpl
addParameter, addParameter, addParameter, clone, getClassName, getDefaultMapArea, getDefaultMapAreaLL, getHeader, getLatLonBoundingBox, getName, getProjectionParameters, isLatLon, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProjBB, projToLatLon, projToLatLon, projToLatLon, projToLatLon, projToLatLonBB, setDefaultMapArea, setName, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UtmProjection

public UtmProjection()
Constructor with default parameters


UtmProjection

public UtmProjection(int zone,
                     boolean isNorth)
Constructor with default WGS 84 ellipsoid.

Parameters:
zone - the UTM zone number (1-60)
isNorth - true if the UTM coordinate is in the northern hemisphere

UtmProjection

public UtmProjection(double a,
                     double f,
                     int zone,
                     boolean isNorth)
Construct a Universal Transverse Mercator Projection.

Parameters:
a - the semi-major axis (meters) for the ellipsoid
f - the inverse flattening for the ellipsoid
zone - the UTM zone number (1-60)
isNorth - true if the UTM coordinate is in the northern hemisphere
Method Detail

constructCopy

public ProjectionImpl constructCopy()
copy constructor - avoid clone !!

Specified by:
constructCopy in class ProjectionImpl
Returns:
a copy of this Projection

getZone

public int getZone()
Get the zone number = [1,60]

Returns:
_more_

setZone

public void setZone(int newZone)
Set the zone number = [1,60]

Parameters:
newZone - _more_

isNorth

public boolean isNorth()
Get whether in North or South Hemisphere.

Returns:
_more_

setNorth

public void setNorth(boolean newNorth)
Set whether in North or South Hemisphere.

Parameters:
newNorth - _more_

getProjectionTypeLabel

public String getProjectionTypeLabel()
Get the label to be used in the gui for this type of projection

Overrides:
getProjectionTypeLabel in class ProjectionImpl
Returns:
Type label

getCentralMeridian

public double getCentralMeridian()

paramsToString

public String paramsToString()
Get the parameters as a String

Specified by:
paramsToString in interface Projection
Specified by:
paramsToString in class ProjectionImpl
Returns:
the parameters as a String

crossSeam

public boolean crossSeam(ProjectionPoint pt1,
                         ProjectionPoint pt2)
Does the line between these two points cross the projection "seam".

Specified by:
crossSeam in interface Projection
Specified by:
crossSeam in class ProjectionImpl
Parameters:
pt1 - the line goes between these two points
pt2 - the line goes between these two points
Returns:
false if there is no seam

equals

public boolean equals(Object proj)
Returns true if this represents the same Projection as proj.

Specified by:
equals in interface Projection
Specified by:
equals in class ProjectionImpl
Parameters:
proj - projection in question
Returns:
true if this represents the same Projection as proj.

latLonToProj

public ProjectionPoint latLonToProj(LatLonPoint latLon,
                                    ProjectionPointImpl result)
Convert a LatLonPoint to projection coordinates

Specified by:
latLonToProj in interface Projection
Specified by:
latLonToProj in class ProjectionImpl
Parameters:
latLon - convert from these lat, lon coordinates
result - the object to write to
Returns:
the given result

latLonToProj

public double[][] latLonToProj(double[][] from,
                               double[][] to,
                               int latIndex,
                               int lonIndex)
_more_

Overrides:
latLonToProj in class ProjectionImpl
Parameters:
from - _more_
to - _more_
latIndex - _more_
lonIndex - _more_
Returns:
_more_

latLonToProj

public float[][] latLonToProj(float[][] from,
                              float[][] to,
                              int latIndex,
                              int lonIndex)
_more_

Overrides:
latLonToProj in class ProjectionImpl
Parameters:
from - _more_
to - _more_
latIndex - _more_
lonIndex - _more_
Returns:
_more_

projToLatLon

public LatLonPoint projToLatLon(ProjectionPoint world,
                                LatLonPointImpl result)
Convert projection coordinates to a LatLonPoint Note: a new object is not created on each call for the return value.

Specified by:
projToLatLon in interface Projection
Specified by:
projToLatLon in class ProjectionImpl
Parameters:
world - convert from these projection coordinates
result - the object to write to
Returns:
LatLonPoint convert to these lat/lon coordinates

projToLatLon

public float[][] projToLatLon(float[][] from,
                              float[][] to)
Convert projection coordinates to lat/lon coordinate.

Overrides:
projToLatLon in class ProjectionImpl
Parameters:
from - array of projection coordinates: from[2][n], where (from[0][i], from[1][i]) is the (x, y) coordinate of the ith point
to - resulting array of lat/lon coordinates: to[2][n] where (to[0][i], to[1][i]) is the (lat, lon) coordinate of the ith point
Returns:
the "to" array

projToLatLon

public double[][] projToLatLon(double[][] from,
                               double[][] to)
_more_

Overrides:
projToLatLon in class ProjectionImpl
Parameters:
from - _more_
to - _more_
Returns:
_more_

main

public static void main(String[] arg)


Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.