Package ucar.unidata.geoloc.projection
Class UtmProjection
- java.lang.Object
-
- ucar.unidata.geoloc.ProjectionImpl
-
- ucar.unidata.geoloc.projection.UtmProjection
-
- All Implemented Interfaces:
Serializable
,Projection
public class UtmProjection extends ProjectionImpl
Universal Transverse Mercator. Ellipsoidal earth. Origin of coordinate system is relative 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].- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
GRID_MAPPING_NAME
static String
UTM_ZONE1
static String
UTM_ZONE2
-
Fields inherited from class ucar.unidata.geoloc.ProjectionImpl
atts, defaultMapArea, defaultUnits, EARTH_RADIUS, INDEX_LAT, INDEX_LON, INDEX_X, INDEX_Y, isLatLon, name, PI, PI_OVER_2, PI_OVER_4, TOLERANCE
-
-
Constructor Summary
Constructors Constructor Description UtmProjection()
Constructor with default parametersUtmProjection(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 o)
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 projectionint
getZone()
Get the zone number = [1,60]int
hashCode()
boolean
isNorth()
Get whether in North or South Hemisphere.double[][]
latLonToProj(double[][] from, double[][] to, int latIndex, int lonIndex)
Convert lat/lon coordinates to projection coordinates.float[][]
latLonToProj(float[][] from, float[][] to, int latIndex, int lonIndex)
Convert lat/lon coordinates to projection coordinates.ProjectionPoint
latLonToProj(LatLonPoint latLon, ProjectionPointImpl result)
Convert a LatLonPoint to projection coordinatesString
paramsToString()
Get the parameters as a Stringdouble[][]
projToLatLon(double[][] from, double[][] to)
Convert projection coordinates to lat/lon coordinate.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.-
Methods inherited from class ucar.unidata.geoloc.ProjectionImpl
addParameter, addParameter, addParameter, findProjectionParameter, getClassName, getDefaultMapArea, getDefaultMapAreaLL, getDefaultUnits, getHeader, getName, getProjectionParameters, isLatLon, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProj, latLonToProjBB, projToLatLon, projToLatLon, projToLatLon, projToLatLonBB, projToLatLonBBold, setDefaultMapArea, setName, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ucar.unidata.geoloc.Projection
latLonToProj, projToLatLon
-
-
-
-
Field Detail
-
GRID_MAPPING_NAME
public static final String GRID_MAPPING_NAME
- See Also:
- Constant Field Values
-
UTM_ZONE1
public static final String UTM_ZONE1
- See Also:
- Constant Field Values
-
UTM_ZONE2
public static final String UTM_ZONE2
- See Also:
- Constant Field Values
-
-
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 ellipsoidf
- the inverse flattening for the ellipsoidzone
- the UTM zone number (1-60)isNorth
- true if the UTM coordinate is in the northern hemisphere
-
-
Method Detail
-
constructCopy
public ProjectionImpl constructCopy()
Description copied from class:ProjectionImpl
copy constructor - avoid clone !!- Specified by:
constructCopy
in classProjectionImpl
- Returns:
- a copy of this Projection. TODO return Projection in ver6
-
getZone
public int getZone()
Get the zone number = [1,60]- Returns:
- zone number
-
isNorth
public boolean isNorth()
Get whether in North or South Hemisphere.- Returns:
- true if north
-
getProjectionTypeLabel
public String getProjectionTypeLabel()
Get the label to be used in the gui for this type of projection- Overrides:
getProjectionTypeLabel
in classProjectionImpl
- Returns:
- Type label
-
getCentralMeridian
public double getCentralMeridian()
-
paramsToString
public String paramsToString()
Get the parameters as a String- Specified by:
paramsToString
in interfaceProjection
- Specified by:
paramsToString
in classProjectionImpl
- 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 interfaceProjection
- Specified by:
crossSeam
in classProjectionImpl
- Parameters:
pt1
- the line goes between these two pointspt2
- the line goes between these two points- Returns:
- false if there is no seam
-
equals
public boolean equals(Object o)
Description copied from class:ProjectionImpl
Returns true if this represents the same Projection as proj.- Specified by:
equals
in interfaceProjection
- Specified by:
equals
in classProjectionImpl
- Parameters:
o
- 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 interfaceProjection
- Specified by:
latLonToProj
in classProjectionImpl
- Parameters:
latLon
- convert from these lat, lon coordinatesresult
- the object to write to- Returns:
- the given result
-
latLonToProj
public double[][] latLonToProj(double[][] from, double[][] to, int latIndex, int lonIndex)
Description copied from class:ProjectionImpl
Convert lat/lon coordinates to projection coordinates.- Overrides:
latLonToProj
in classProjectionImpl
- Parameters:
from
- array of lat/lon coordinates: from[2][n], where (from[latIndex][i], from[lonIndex][i]) is the (lat,lon) coordinate of the ith pointto
- resulting array of projection coordinates: to[2][n] where (to[0][i], to[1][i]) is the (x,y) coordinate of the ith pointlatIndex
- index of lat coordinate; must be 0 or 1lonIndex
- index of lon coordinate; must be 0 or 1- Returns:
- the "to" array
-
latLonToProj
public float[][] latLonToProj(float[][] from, float[][] to, int latIndex, int lonIndex)
Description copied from class:ProjectionImpl
Convert lat/lon coordinates to projection coordinates.- Overrides:
latLonToProj
in classProjectionImpl
- Parameters:
from
- array of lat/lon coordinates: from[2][n], where (from[latIndex][i], from[lonIndex][i]) is the (lat,lon) coordinate of the ith pointto
- resulting array of projection coordinates: to[2][n] where (to[0][i], to[1][i]) is the (x,y) coordinate of the ith pointlatIndex
- index of lat coordinate; must be 0 or 1lonIndex
- index of lon coordinate; must be 0 or 1- Returns:
- the "to" array
-
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 interfaceProjection
- Specified by:
projToLatLon
in classProjectionImpl
- Parameters:
world
- convert from these projection coordinatesresult
- 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 classProjectionImpl
- Parameters:
from
- array of projection coordinates: from[2][n], where (from[0][i], from[1][i]) is the (x, y) coordinate of the ith pointto
- 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)
Description copied from class:ProjectionImpl
Convert projection coordinates to lat/lon coordinate.- Overrides:
projToLatLon
in classProjectionImpl
- Parameters:
from
- array of projection coordinates: from[2][n], where (from[0][i], from[1][i]) is the (x, y) coordinate of the ith pointto
- 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
-
-