Class SphericalCoords


  • public class SphericalCoords
    extends java.lang.Object
    Utility class for spherical coordinate (lat-lon) transformations. Given lat, lon, lat, lon you can find the distance or azimuth and given lat, lon, distance, azimuth you can find the lat lon of the resultant point. Just uses spherical relations, no ellpticity correction is applied. See Appendix A of "Seismology and Plate Tectonics" by David Gubbins Cambridge University Press, 1990 and Chapter 3 of "Plate Tectonics: How it Works" by Allan Cox and Robert Brian Hart Blackwell Scientific Publications, 1986
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static double dtor  
      protected static double rtod  
      static double TWOPI  
    • Constructor Summary

      Constructors 
      Constructor Description
      SphericalCoords()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static double azimuth​(double latA, double lonA, double latB, double lonB)
      Calculates azimuth between two lat lon pairs.
      static double azimuth​(edu.sc.seis.seisFile.Location a, edu.sc.seis.seisFile.Location b)  
      static double distance​(double latA, double lonA, double latB, double lonB)
      Calculates angular distance between two lat lon pairs.
      static double distance​(edu.sc.seis.seisFile.Location a, edu.sc.seis.seisFile.Location b)  
      static double latFor​(double latA, double lonA, double distance, double azimuth)
      Calculates the latitude of a point a given distance along a given azimuth from a starting lat lon.
      static double latFor​(edu.sc.seis.seisFile.Location a, double distance, double azimuth)
      Calculates the latitude of a point a given distance along a given azimuth from a starting lat lon.
      static double lonFor​(double latA, double lonA, double distance, double azimuth)
      Calculates the longitude of a point a given distance along a given azimuth from a starting lat lon.
      static double lonFor​(edu.sc.seis.seisFile.Location a, double distance, double azimuth)
      Calculates the latitude of a point a given distance along a given azimuth from a starting lat lon.
      static double[] rotate​(double latA, double lonA, double[] pole, double angleDeg)
      rotates a point about a pole by an angle.
      static double[] rotationPole​(double latA, double lonA, double latB, double lonB)
      Find the rotation pole required to rotate the first lat lon pair to the second.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SphericalCoords

        public SphericalCoords()
    • Method Detail

      • distance

        public static double distance​(double latA,
                                      double lonA,
                                      double latB,
                                      double lonB)
        Calculates angular distance between two lat lon pairs.
      • distance

        public static double distance​(edu.sc.seis.seisFile.Location a,
                                      edu.sc.seis.seisFile.Location b)
      • azimuth

        public static double azimuth​(double latA,
                                     double lonA,
                                     double latB,
                                     double lonB)
        Calculates azimuth between two lat lon pairs.
      • azimuth

        public static double azimuth​(edu.sc.seis.seisFile.Location a,
                                     edu.sc.seis.seisFile.Location b)
      • rotationPole

        public static double[] rotationPole​(double latA,
                                            double lonA,
                                            double latB,
                                            double lonB)
        Find the rotation pole required to rotate the first lat lon pair to the second. Just does a cross product.
        Returns:
        a 3 element double array with the X, Y and Z components of the pole.
      • rotate

        public static double[] rotate​(double latA,
                                      double lonA,
                                      double[] pole,
                                      double angleDeg)
        rotates a point about a pole by an angle.
        Parameters:
        pole - is a 3 element double array with X, Y and Z components of the pole.
        Returns:
        [lat, lon] in array.
      • latFor

        public static double latFor​(edu.sc.seis.seisFile.Location a,
                                    double distance,
                                    double azimuth)
        Calculates the latitude of a point a given distance along a given azimuth from a starting lat lon.
      • latFor

        public static double latFor​(double latA,
                                    double lonA,
                                    double distance,
                                    double azimuth)
        Calculates the latitude of a point a given distance along a given azimuth from a starting lat lon.
      • lonFor

        public static double lonFor​(edu.sc.seis.seisFile.Location a,
                                    double distance,
                                    double azimuth)
        Calculates the latitude of a point a given distance along a given azimuth from a starting lat lon.
      • lonFor

        public static double lonFor​(double latA,
                                    double lonA,
                                    double distance,
                                    double azimuth)
        Calculates the longitude of a point a given distance along a given azimuth from a starting lat lon.