Package ucar.unidata.geoloc.projection
Class FlatEarth
- java.lang.Object
-
- ucar.unidata.geoloc.ProjectionImpl
-
- ucar.unidata.geoloc.projection.FlatEarth
-
- All Implemented Interfaces:
Serializable
,Projection
public class FlatEarth extends ProjectionImpl
FlatEarth Projection This projection surface is tangent at some point (lat0, lon0) and has a y axis rotated from true North by some angle. We call it "flat" because it should only be used where the spherical geometry of the earth is not significant. In actuallity, we use the simple "arclen" routine which computes dy along a meridian, and dx along a latitude circle. We rotate the coordinate system to/from a true north system. See John Snyder, Map Projections used by the USGS, Bulletin 1532, 2nd edition (1983), p 145- See Also:
Projection
,ProjectionImpl
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
ROTATIONANGLE
-
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 FlatEarth()
Constructor with default parametersFlatEarth(double lat0, double lon0)
FlatEarth(double lat0, double lon0, double rotAngle)
FlatEarth(double lat0, double lon0, double rotAngle, double radius)
Construct a FlatEarth Projection, two standard parellels.
-
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)
This returns true when the line between pt1 and pt2 crosses the seam.boolean
equals(Object o)
Returns true if this represents the same Projection as proj.double
getOriginLat()
Get the origin latitude in degrees.double
getOriginLon()
Get the origin longitude in degrees.String
getProjectionTypeLabel()
Get the label to be used in the gui for this type of projectiondouble
getRotationAngle()
Get the rotation angle.int
hashCode()
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()
Create a String of the parameters.double[][]
projToLatLon(double[][] from, double[][] to)
Convert lat/lon coordinates to projection coordinates.float[][]
projToLatLon(float[][] from, float[][] to)
Convert lat/lon coordinates to projection coordinates.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.String
toString()
Get a String representation of this projection.-
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
-
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
-
ROTATIONANGLE
public static final String ROTATIONANGLE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FlatEarth
public FlatEarth()
Constructor with default parameters
-
FlatEarth
public FlatEarth(double lat0, double lon0)
-
FlatEarth
public FlatEarth(double lat0, double lon0, double rotAngle)
-
FlatEarth
public FlatEarth(double lat0, double lon0, double rotAngle, double radius)
Construct a FlatEarth Projection, two standard parellels. For the one standard parellel case, set them both to the same value.- Parameters:
lat0
- lat origin of the coord. system on the projection planelon0
- lon origin of the coord. system on the projection planerotAngle
- angle of rotation, in degreesradius
- earth radius in km- Throws:
IllegalArgumentException
- if lat0, par1, par2 = +/-90 deg
-
-
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
-
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.
-
getOriginLon
public double getOriginLon()
Get the origin longitude in degrees.- Returns:
- the origin longitude in degrees.
-
getOriginLat
public double getOriginLat()
Get the origin latitude in degrees.- Returns:
- the origin latitude in degrees.
-
getRotationAngle
public double getRotationAngle()
Get the rotation angle.- Returns:
- the origin latitude.
-
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
-
paramsToString
public String paramsToString()
Create a String of the parameters.- Specified by:
paramsToString
in interfaceProjection
- Specified by:
paramsToString
in classProjectionImpl
- Returns:
- a String of the parameters
-
toString
public String toString()
Description copied from class:ProjectionImpl
Get a String representation of this projection.- Overrides:
toString
in classProjectionImpl
- Returns:
- the name of the projection. This is what gets displayed when you add the projection object to a UI widget (e.g. label, combobox)
-
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
-
projToLatLon
public LatLonPoint projToLatLon(ProjectionPoint world, LatLonPointImpl result)
Description copied from class:ProjectionImpl
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
-
latLonToProj
public float[][] latLonToProj(float[][] from, float[][] to, int latIndex, int lonIndex)
Convert lat/lon coordinates to projection coordinates.- Overrides:
latLonToProj
in classProjectionImpl
- Parameters:
from
- array of lat/lon coordinates: from[2][n], where from[0][i], from[1][i] is the (lat,lon) coordinate of the ith pointto
- resulting array of projection coordinates, where to[0][i], to[1][i] is the (x,y) coordinate of the ith pointlatIndex
- index of latitude in "from"lonIndex
- index of longitude in "from"- Returns:
- the "to" array.
-
crossSeam
public boolean crossSeam(ProjectionPoint pt1, ProjectionPoint pt2)
This returns true when the line between pt1 and pt2 crosses the seam. When the cone is flattened, the "seam" is lon0 +- 180.- Specified by:
crossSeam
in interfaceProjection
- Specified by:
crossSeam
in classProjectionImpl
- Parameters:
pt1
- point 1pt2
- point 2- Returns:
- true when the line between pt1 and pt2 crosses the seam.
-
projToLatLon
public float[][] projToLatLon(float[][] from, float[][] to)
Convert lat/lon coordinates to projection coordinates.- Overrides:
projToLatLon
in classProjectionImpl
- Parameters:
from
- array of lat/lon coordinates: from[2][n], where (from[0][i], from[1][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 point- Returns:
- the "to" array
-
latLonToProj
public double[][] latLonToProj(double[][] from, double[][] to, int latIndex, int lonIndex)
Convert lat/lon coordinates to projection coordinates.- Overrides:
latLonToProj
in classProjectionImpl
- Parameters:
from
- array of lat/lon coordinates: from[2][n], where from[0][i], from[1][i] is the (lat,lon) coordinate of the ith pointto
- resulting array of projection coordinates, where to[0][i], to[1][i] is the (x,y) coordinate of the ith pointlatIndex
- index of latitude in "from"lonIndex
- index of longitude in "from"- Returns:
- the "to" array.
-
projToLatLon
public double[][] projToLatLon(double[][] from, double[][] to)
Convert lat/lon coordinates to projection coordinates.- Overrides:
projToLatLon
in classProjectionImpl
- Parameters:
from
- array of lat/lon coordinates: from[2][n], where (from[0][i], from[1][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 point- Returns:
- the "to" array
-
-