Class Geostationary

  • All Implemented Interfaces:
    Serializable, Projection

    public class Geostationary
    extends ProjectionImpl
    Describe: https://cf-pcmdi.llnl.gov/trac/ticket/72 Accepted for CF-1.7 grid_mapping_name = geostationary Map parameters: latitude_of_projection_origin longitude_of_projection_origin perspective_point_height semi_minor_axis semi_major_axis inverse_flattening sweep_angle_axis fixed_angle_axis Map coordinates: The x (abscissa) and y (ordinate) rectangular coordinates are identified by the standard_name attribute value projection_x_coordinate and projection_y_coordinate respectively. In the case of this projection, the projection coordinates in this projection are directly related to the scanning angle of the satellite instrument, and their units are radians. Notes: The algorithm for computing the mapping may be found at http://www.eumetsat.int/idcplg?IdcService=GET_FILE&dDocName=PDF_CGMS_03&RevisionSelectionMethod=LatestReleased. This document assumes the point of observation is directly over the equator, and that the sweep_angle_axis is y. Notes on using the PROJ.4 software packages for computing the mapping may be found at http://trac.osgeo.org/proj/wiki/proj%3Dgeos and http://remotesensing.org/geotiff/proj_list/geos.html . The "perspective_point_height" is the distance to the surface of the ellipsoid. Adding the earth major axis gives the distance from the centre of the earth. The "sweep_angle_axis" attribute indicates which axis the instrument sweeps. The value = "y" corresponds to the spin-stabilized Meteosat satellites, the value = "x" to the GOES-R satellite. The "fixed_angle_axis" attribute indicates which axis the instrument is fixed. The values are opposite to "sweep_angle_axis". Only one of those two attributes are mandatory. latitude_of_projection_origin will be taken as zero (at the Equator). inverse_flattening may be specified independent of the semi_minor/major axes (GRS80). If left unspecified it will be computed from semi_minor/major_axis values.
    Since:
    12/5/13
    See Also:
    Serialized Form
    • Constructor Detail

      • Geostationary

        public Geostationary​(double subLonDegrees,
                             double perspective_point_height,
                             double semi_minor_axis,
                             double semi_major_axis,
                             double inv_flattening,
                             boolean isSweepX)
      • Geostationary

        @Deprecated
        public Geostationary​(double subLonDegrees,
                             double perspective_point_height,
                             double semi_minor_axis,
                             double semi_major_axis,
                             double inv_flattening,
                             boolean isSweepX,
                             double geoCoordinateScaleFactor)
        Deprecated.
        Remove in v6.x. Use constructor without geoCoordinateScaleFactor as units are handled outside of projection classes
      • Geostationary

        public Geostationary()
      • Geostationary

        public Geostationary​(double subLonDegrees)
      • Geostationary

        public Geostationary​(double subLonDegrees,
                             boolean isSweepX)
      • Geostationary

        @Deprecated
        public Geostationary​(double subLonDegrees,
                             String sweepAngleAxis,
                             double geoCoordinateScaleFactor)
        Deprecated.
        Remove in v6.x. Use constructor without geoCoordinateScaleFactor as units are handled outside of projection classes
    • Method Detail

      • constructCopy

        public ProjectionImpl constructCopy()
        copy constructor - avoid clone !!
        Specified by:
        constructCopy in class ProjectionImpl
        Returns:
        a copy of this Projection. TODO return Projection in ver6
      • latLonToProj

        public ProjectionPoint latLonToProj​(LatLonPoint latlon,
                                            ProjectionPointImpl destPoint)
        Returns an x/y grid point in projection coordinate matching a lat/lon point. The units of the returned result will be in radians unless the Geostationary object was created using one of the constructors that takes a geoCoordinateScaleFactor parameter. If that parameter is provided, then the units of x and y are in radians divided by the scaling factor.
        Specified by:
        latLonToProj in interface Projection
        Specified by:
        latLonToProj in class ProjectionImpl
        Parameters:
        latlon - convert from these lat, lon coordinates
        destPoint - the object to write to
        Returns:
        destPoint
      • projToLatLon

        public LatLonPoint projToLatLon​(ProjectionPoint ppt,
                                        LatLonPointImpl destPoint)
        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 interface Projection
        Specified by:
        projToLatLon in class ProjectionImpl
        Parameters:
        ppt - convert from these projection coordinates
        destPoint - the object to write to
        Returns:
        LatLonPoint convert to these lat/lon coordinates
      • crossSeam

        public boolean crossSeam​(ProjectionPoint pt1,
                                 ProjectionPoint pt2)
        Description copied from class: ProjectionImpl
        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
      • latLonToProjBB

        public ProjectionRect latLonToProjBB​(LatLonRect rect)
        Create a ProjectionRect from the given LatLonRect. Handles lat/lon points that do not intersect the projection panel. LOOK NEEDS OVERRIDDING
        Specified by:
        latLonToProjBB in interface Projection
        Overrides:
        latLonToProjBB in class ProjectionImpl
        Parameters:
        rect - the LatLonRect
        Returns:
        ProjectionRect, or null if no part of the LatLonRect intersects the projection plane