Class Stereographic

  • All Implemented Interfaces:
    Serializable, Projection

    public class Stereographic
    extends ProjectionImpl
    Stereographic projection, spherical earth. Projection plane is a plane tangent to the earth at latt, lont. see John Snyder, Map Projections used by the USGS, Bulletin 1532, 2nd edition (1983), p 153
    See Also:
    Serialized Form
    • Constructor Detail

      • Stereographic

        public Stereographic()
        Constructor with default parameters = North Polar
      • Stereographic

        public Stereographic​(double latt,
                             double lont,
                             double scale)
        Construct a Stereographic Projection.
        Parameters:
        latt - tangent point of projection, also origin of projection coord system
        lont - tangent point of projection, also origin of projection coord system
        scale - scale factor at tangent point, "normally 1.0 but may be reduced"
      • Stereographic

        public Stereographic​(double latt,
                             double lont,
                             double scale,
                             double false_easting,
                             double false_northing)
        Construct a Stereographic Projection.
        Parameters:
        latt - tangent point of projection, also origin of projection coord system
        lont - tangent point of projection, also origin of projection coord system
        scale - scale factor at tangent point, "normally 1.0 but may be reduced"
      • Stereographic

        public Stereographic​(double latt,
                             double lont,
                             double scale,
                             double false_easting,
                             double false_northing,
                             double radius)
        Construct a Stereographic Projection.
        Parameters:
        latt - tangent point of projection, also origin of projection coord system
        lont - tangent point of projection, also origin of projection coord system
        scale - scale factor at tangent point, "normally 1.0 but may be reduced"
        false_easting - false easting in units of x coords
        false_northing - false northing in units of y coords
        radius - earth radius in km
      • Stereographic

        public Stereographic​(double lat_ts_deg,
                             double latt_deg,
                             double lont_deg,
                             boolean north)
        Construct a polar Stereographic Projection, from the "natural origin" and the tangent point, calculating the scale factor.
        Parameters:
        lat_ts_deg - Latitude at natural origin (degrees_north)
        latt_deg - tangent point of projection (degrees_north)
        lont_deg - tangent point of projection, also origin of projection coord system (degrees_east)
        north - true if north pole, false is south pole
    • Method Detail

      • factory

        public static Stereographic factory​(double latt,
                                            double lont,
                                            double latTrue)
        Construct a Stereographic Projection using latitude of true scale and calculating scale factor.

        Since the scale factor at lat = k = 2*k0/(1+sin(lat)) [Snyder,Working Manual p157] then to make scale = 1 at lat, set k0 = (1+sin(lat))/2

        Parameters:
        latt - tangent point of projection, also origin of projection coord system
        lont - tangent point of projection, also origin of projection coord system
        latTrue - latitude of true scale in degrees north; latitude where scale factor = 1.0
        Returns:
        Stereographic projection
      • getScale

        public double getScale()
        Get the scale
        Returns:
        the scale
      • getNaturalOriginLat

        public double getNaturalOriginLat()
        Get the latitude at natural origin in degrees
        Returns:
        latitude at natural origin
      • getTangentLon

        public double getTangentLon()
        Get the tangent longitude in degrees
        Returns:
        the origin longitude in degrees.
      • getTangentLat

        public double getTangentLat()
        Get the tangent latitude in degrees
        Returns:
        the origin latitude in degrees.
      • getEarthRadius

        public double getEarthRadius()
      • isNorth

        public boolean isNorth()
      • isPolar

        public boolean isPolar()
      • setScale

        @Deprecated
        public void setScale​(double scale)
        Deprecated.
      • setTangentLat

        @Deprecated
        public void setTangentLat​(double latt)
        Deprecated.
      • setTangentLon

        @Deprecated
        public void setTangentLon​(double lont)
        Deprecated.
      • setCentralMeridian

        @Deprecated
        public void setCentralMeridian​(double lont)
        Deprecated.
      • setFalseEasting

        @Deprecated
        public void setFalseEasting​(double falseEasting)
        Deprecated.
        Set the false_easting, in km. natural_x_coordinate + false_easting = x coordinate
        Parameters:
        falseEasting - x offset
      • setFalseNorthing

        @Deprecated
        public void setFalseNorthing​(double falseNorthing)
        Deprecated.
        Set the false northing, in km. natural_y_coordinate + false_northing = y coordinate
        Parameters:
        falseNorthing - y offset
      • toString

        public String toString()
        Description copied from class: ProjectionImpl
        Get a String representation of this projection.
        Overrides:
        toString in class ProjectionImpl
        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)
      • 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 o)
        Description copied from class: ProjectionImpl
        Returns true if this represents the same Projection as proj.
        Specified by:
        equals in interface Projection
        Specified by:
        equals in class ProjectionImpl
        Parameters:
        o - projection in question
        Returns:
        true if this represents the same Projection as proj.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getFalseEasting

        public double getFalseEasting()
        Get the false easting, in km.
        Returns:
        the false easting.
      • getFalseNorthing

        public double getFalseNorthing()
        Get the false northing, in km.
        Returns:
        the false northing.
      • 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
      • latLonToProj

        public float[][] latLonToProj​(float[][] from,
                                      float[][] to,
                                      int latIndex,
                                      int lonIndex)
        Convert lat/lon coordinates to projection coordinates.
        Overrides:
        latLonToProj in class ProjectionImpl
        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 point
        to - resulting array of projection coordinates: to[2][n] where (to[0][i], to[1][i]) is the (x,y) coordinate of the ith point
        latIndex - index of lat coordinate; must be 0 or 1
        lonIndex - index of lon coordinate; must be 0 or 1
        Returns:
        the "to" array
      • 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
      • latLonToProj

        public double[][] latLonToProj​(double[][] from,
                                       double[][] to,
                                       int latIndex,
                                       int lonIndex)
        Convert lat/lon coordinates to projection coordinates.
        Overrides:
        latLonToProj in class ProjectionImpl
        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 point
        to - resulting array of projection coordinates: to[2][n] where (to[0][i], to[1][i]) is the (x,y) coordinate of the ith point
        latIndex - index of lat coordinate; must be 0 or 1
        lonIndex - index of lon coordinate; must be 0 or 1
        Returns:
        the "to" array
      • projToLatLon

        public double[][] projToLatLon​(double[][] from,
                                       double[][] 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