Package org.apache.sis.referencing.datum
Class TimeDependentBWP
java.lang.Object
org.apache.sis.io.wkt.FormattableObject
org.apache.sis.referencing.datum.BursaWolfParameters
org.apache.sis.referencing.datum.TimeDependentBWP
- All Implemented Interfaces:
Serializable,Cloneable
Parameters for a time-dependent geographic transformation between two datum.
The
The numerical fields in this
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):
| 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 |
TimeDependentBWP class uses the EPSG abbreviations
with 4 additional constraints compared to the EPSG definitions:
- Unit of
ddSis fixed to parts per million per year. - Unit of
dtX,dtYanddtZis fixed to millimetres per year. - Unit of
drX,drYanddrZis 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
FieldsModifier and TypeFieldDescriptiondoubleRate of change of the scale difference in parts per million per year (EPSG:1046).doubleRate of change of X-axis rotation in milli arc-seconds per year (EPSG:1043), sign following the Position Vector convention.doubleRate of change of Y-axis rotation in milli arc-seconds per year (EPSG:1044), sign following the Position Vector convention.doubleRate of change of Z-axis rotation in milli arc-seconds per year (EPSG:1045), sign following the Position Vector convention.doubleRate of change of X-axis translation in millimetres per year (EPSG:1040).doubleRate of change of Y-axis translation in millimetres per year (EPSG:1041).doubleRate of change of Z-axis translation in millimetres per year (EPSG:1042).private static final longSerial number for inter-operability with different versions.private final longThe reference epoch for time-dependent parameters (EPSG:1047). -
Constructor Summary
ConstructorsConstructorDescriptionTimeDependentBWP(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 TypeMethodDescriptionbooleanCompares the specified object with this object for equality.Returns the reference epoch for time-dependent parameters.double[]Returns the parameter values.inthashCode()Returns a hash value for this object.booleanReturnstrueif a transformation built from this set of parameters would perform no operation.booleanReturnstrueif a transformation built from this set of parameters would perform only a translation.(package private) final DoubleDoubleparam(int index, DoubleDouble period) Returns the parameter at the given index.(package private) final DoubleDoubleReturns the elapsed time from the reference time to the given date in millennium, ornullif none.voidInverts in-place the sign of rotation terms and their derivative.voidsetValues(double... elements) Sets the parameters to the given values.(package private) voidverify(org.opengis.referencing.datum.PrimeMeridian pm) Verifies parameters validity after initialization.Methods inherited from class org.apache.sis.referencing.datum.BursaWolfParameters
clone, formatTo, getDomainOfValidity, getPositionVectorTransformation, getTargetDatum, invert, isToWGS84, setPositionVectorTransformationMethods inherited from class org.apache.sis.io.wkt.FormattableObject
print, toString, toString, toWKT
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerial number for inter-operability with different versions.- See Also:
-
dtX
public double dtXRate of change of X-axis translation in millimetres per year (EPSG:1040). -
dtY
public double dtYRate of change of Y-axis translation in millimetres per year (EPSG:1041). -
dtZ
public double dtZRate of change of Z-axis translation in millimetres per year (EPSG:1042). -
drX
public double drXRate of change of X-axis rotation in milli arc-seconds per year (EPSG:1043), sign following the Position Vector convention. -
drY
public double drYRate of change of Y-axis rotation in milli arc-seconds per year (EPSG:1044), sign following the Position Vector convention. -
drZ
public double drZRate of change of Z-axis rotation in milli arc-seconds per year (EPSG:1045), sign following the Position Vector convention. -
ddS
public double ddSRate of change of the scale difference in parts per million per year (EPSG:1046). -
timeReference
private final long timeReferenceThe 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, ornullis unspecified.timeReference- the reference epoch for time-dependent parameters.
-
-
Method Details
-
verify
Verifies parameters validity after initialization.- Overrides:
verifyin classBursaWolfParameters- Parameters:
pm- the prime meridian of the enclosingGeodeticDatum.- Throws:
IllegalArgumentException
-
getTimeReference
Returns the reference epoch for time-dependent parameters.- Returns:
- the reference epoch for time-dependent parameters.
-
period
Returns the elapsed time from the reference time to the given date in millennium, ornullif none.- Overrides:
periodin classBursaWolfParameters
-
param
Returns the parameter at the given index. If thisBursaWolfParametersis time-dependent, then the returned value shall be corrected for the given period.- Overrides:
paramin classBursaWolfParameters- Parameters:
index- 0 fortX, 1 fortY, etc. inTOWGS84[…]order.period- the value computed byperiod(Date), ornull.
-
getValues
public double[] getValues()Returns the parameter values. The first 14 elements are alwaystX,tY,tZ,rX,rY,rZ,dS,dtX,dtY,dtZ,drX,drY,drZandddSin that order.- Overrides:
getValuesin classBursaWolfParameters- 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 thetX,tY,tZ,rX,rY,rZ,dS,dtX,dtY,dtZ,drX,drY,drZandddSfields in that order.- Overrides:
setValuesin classBursaWolfParameters- Parameters:
elements- the new parameter values, as an array of any length.- Since:
- 0.6
-
isIdentity
public boolean isIdentity()Returnstrueif a transformation built from this set of parameters would perform no operation. This is true when the value of all parameters is zero.- Overrides:
isIdentityin classBursaWolfParameters- Returns:
trueif the parameters describe no operation.
-
isTranslation
public boolean isTranslation()Returnstrueif a transformation built from this set of parameters would perform only a translation.- Overrides:
isTranslationin classBursaWolfParameters- Returns:
trueif 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:
reverseRotationin classBursaWolfParameters
-
equals
Compares the specified object with this object for equality.- Overrides:
equalsin classBursaWolfParameters- Parameters:
object- the object to compare with the parameters.- Returns:
trueif the given object is equal to thisTimeDependentBWP.
-
hashCode
public int hashCode()Returns a hash value for this object.- Overrides:
hashCodein classBursaWolfParameters- Returns:
- the hash code value. This value does not need to be the same in past or future versions of this class.
-