Class TimeDependentBWP

All Implemented Interfaces:
Serializable, Cloneable

public class TimeDependentBWP extends BursaWolfParameters
Parameters for a time-dependent geographic transformation between two datum. The tX, tY, tZ, rX, rY, rZ and dS parameters inherited from the parent class are values at a point in time given by getTimeReference(). Those values vary at a rate given by the parameters listed in the table below (codes, names and abbreviations are from the EPSG database):
Parameters defined by EPSG
Code Name Abbr.
1040 Rate of change of X-axis translation dtX
1041 Rate of change of Y-axis translation dtY
1042 Rate of change of Z-axis translation dtZ
1043 Rate of change of X-axis rotation drX
1044 Rate of change of Y-axis rotation drY
1045 Rate of change of Z-axis rotation drZ
1046 Rate of change of scale difference ddS
The numerical fields in this TimeDependentBWP class uses the EPSG abbreviations with 4 additional constraints compared to the EPSG definitions:
  • Unit of ddS is fixed to parts per million per year.
  • Unit of dtX, dtY and dtZ is fixed to millimetres per year.
  • Unit of drX, drY and drZ is fixed to milli arc-seconds per year.
  • Sign of rotation terms is fixed to the Position Vector convention (EPSG operation method 1053). This is the opposite sign than the Coordinate Frame Rotation (EPSG operation method 1056. The Position Vector convention is used by IAG and recommended by ISO 19111.
Since:
0.4
Version:
0.6
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    double
    Rate of change of the scale difference in parts per million per year (EPSG:1046).
    double
    Rate of change of X-axis rotation in milli arc-seconds per year (EPSG:1043), sign following the Position Vector convention.
    double
    Rate of change of Y-axis rotation in milli arc-seconds per year (EPSG:1044), sign following the Position Vector convention.
    double
    Rate of change of Z-axis rotation in milli arc-seconds per year (EPSG:1045), sign following the Position Vector convention.
    double
    Rate of change of X-axis translation in millimetres per year (EPSG:1040).
    double
    Rate of change of Y-axis translation in millimetres per year (EPSG:1041).
    double
    Rate of change of Z-axis translation in millimetres per year (EPSG:1042).
    private static final long
    Serial number for inter-operability with different versions.
    private final long
    The reference epoch for time-dependent parameters (EPSG:1047).

    Fields inherited from class org.apache.sis.referencing.datum.BursaWolfParameters

    dS, PPM, rX, rY, rZ, tX, tY, tZ
  • Constructor Summary

    Constructors
    Constructor
    Description
    TimeDependentBWP(org.opengis.referencing.datum.GeodeticDatum targetDatum, org.opengis.metadata.extent.Extent domainOfValidity, Date timeReference)
    Creates a new instance for the given target datum, domain of validity and time reference.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object object)
    Compares the specified object with this object for equality.
    Returns the reference epoch for time-dependent parameters.
    double[]
    Returns the parameter values.
    int
    Returns a hash value for this object.
    boolean
    Returns true if a transformation built from this set of parameters would perform no operation.
    boolean
    Returns true if a transformation built from this set of parameters would perform only a translation.
    (package private) final DoubleDouble
    param(int index, DoubleDouble period)
    Returns the parameter at the given index.
    (package private) final DoubleDouble
    period(Date time)
    Returns the elapsed time from the reference time to the given date in millennium, or null if none.
    void
    Inverts in-place the sign of rotation terms and their derivative.
    void
    setValues(double... elements)
    Sets the parameters to the given values.
    (package private) void
    verify(org.opengis.referencing.datum.PrimeMeridian pm)
    Verifies parameters validity after initialization.

    Methods inherited from class org.apache.sis.io.wkt.FormattableObject

    print, toString, toString, toWKT

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
    • dtX

      public double dtX
      Rate of change of X-axis translation in millimetres per year (EPSG:1040).
    • dtY

      public double dtY
      Rate of change of Y-axis translation in millimetres per year (EPSG:1041).
    • dtZ

      public double dtZ
      Rate of change of Z-axis translation in millimetres per year (EPSG:1042).
    • drX

      public double drX
      Rate of change of X-axis rotation in milli arc-seconds per year (EPSG:1043), sign following the Position Vector convention.
    • drY

      public double drY
      Rate of change of Y-axis rotation in milli arc-seconds per year (EPSG:1044), sign following the Position Vector convention.
    • drZ

      public double drZ
      Rate of change of Z-axis rotation in milli arc-seconds per year (EPSG:1045), sign following the Position Vector convention.
    • ddS

      public double ddS
      Rate of change of the scale difference in parts per million per year (EPSG:1046).
    • timeReference

      private final long timeReference
      The reference epoch for time-dependent parameters (EPSG:1047).
  • Constructor Details

    • TimeDependentBWP

      public TimeDependentBWP(org.opengis.referencing.datum.GeodeticDatum targetDatum, org.opengis.metadata.extent.Extent domainOfValidity, Date timeReference)
      Creates a new instance for the given target datum, domain of validity and time reference. All numerical parameters are initialized to 0, which correspond to an identity transform. Callers can assign numerical values to the public fields of interest after construction.
      Parameters:
      targetDatum - the target datum (usually WGS 84) for this set of parameters.
      domainOfValidity - area or region in which a coordinate transformation based on those Bursa-Wolf parameters is valid, or null is unspecified.
      timeReference - the reference epoch for time-dependent parameters.
  • Method Details

    • verify

      void verify(org.opengis.referencing.datum.PrimeMeridian pm) throws IllegalArgumentException
      Verifies parameters validity after initialization.
      Overrides:
      verify in class BursaWolfParameters
      Parameters:
      pm - the prime meridian of the enclosing GeodeticDatum.
      Throws:
      IllegalArgumentException
    • getTimeReference

      public Date getTimeReference()
      Returns the reference epoch for time-dependent parameters.
      Returns:
      the reference epoch for time-dependent parameters.
    • period

      final DoubleDouble period(Date time)
      Returns the elapsed time from the reference time to the given date in millennium, or null if none.
      Overrides:
      period in class BursaWolfParameters
    • param

      final DoubleDouble param(int index, DoubleDouble period)
      Returns the parameter at the given index. If this BursaWolfParameters is time-dependent, then the returned value shall be corrected for the given period.
      Overrides:
      param in class BursaWolfParameters
      Parameters:
      index - 0 for tX, 1 for tY, etc. in TOWGS84[…] order.
      period - the value computed by period(Date), or null.
    • getValues

      public double[] getValues()
      Returns the parameter values. The first 14 elements are always tX, tY, tZ, rX, rY, rZ, dS, dtX, dtY, dtZ, drX, drY, drZ and ddS in that order.
      Overrides:
      getValues in class BursaWolfParameters
      Returns:
      the parameter values as an array of length 14.
      Since:
      0.6
    • setValues

      public void setValues(double... elements)
      Sets the parameters to the given values. The given array can have any length. The first array elements will be assigned to the tX, tY, tZ, rX, rY, rZ, dS, dtX, dtY, dtZ, drX, drY, drZ and ddS fields in that order.
      Overrides:
      setValues in class BursaWolfParameters
      Parameters:
      elements - the new parameter values, as an array of any length.
      Since:
      0.6
    • isIdentity

      public boolean isIdentity()
      Returns true if a transformation built from this set of parameters would perform no operation. This is true when the value of all parameters is zero.
      Overrides:
      isIdentity in class BursaWolfParameters
      Returns:
      true if the parameters describe no operation.
    • isTranslation

      public boolean isTranslation()
      Returns true if a transformation built from this set of parameters would perform only a translation.
      Overrides:
      isTranslation in class BursaWolfParameters
      Returns:
      true if the parameters describe a translation only.
    • reverseRotation

      public void reverseRotation()
      Inverts in-place the sign of rotation terms and their derivative. This method can be invoked for converting a Coordinate Frame Rotation transformation (EPSG operation method 9607) to a Position Vector transformation (EPSG operation method 9606). The latter convention is used by IAG and recommended by ISO 19111.
      Overrides:
      reverseRotation in class BursaWolfParameters
    • equals

      public boolean equals(Object object)
      Compares the specified object with this object for equality.
      Overrides:
      equals in class BursaWolfParameters
      Parameters:
      object - the object to compare with the parameters.
      Returns:
      true if the given object is equal to this TimeDependentBWP.
    • hashCode

      public int hashCode()
      Returns a hash value for this object.
      Overrides:
      hashCode in class BursaWolfParameters
      Returns:
      the hash code value. This value does not need to be the same in past or future versions of this class.