pyacs.sol.helmert module

Helmert (similarity) transformation estimation and matrix construction.

pyacs.sol.helmert.estimate_helmert(H_Gpoint_ref, H_Gpoint_free, vcv_xyz=None, psd=None, tran=True, rot=True, scale=True, lexclude=[], method='Dikin_LS', threshold=5.0, verbose=True)[source]

Estimate Helmert (or similarity) parameters between two coordinate sets.

Default is 7-parameter transformation (translation, rotation, scale).

Parameters:
  • H_Gpoint_ref (dict) – Dictionary of Gpoint instances used as reference.

  • H_Gpoint_free (dict) – Dictionary of Gpoint instances used as free (to be transformed).

  • vcv_xyz (array-like, optional) – Variance-covariance of coordinates. Default is None.

  • psd (object, optional) – Post-seismic deformation object from sinex library.

  • tran (bool, optional) – Include translation. Default is True.

  • rot (bool, optional) – Include rotation. Default is True.

  • scale (bool, optional) – Include scale. Default is True.

  • lexclude (list, optional) – Site codes to exclude. Default is [].

  • method (str, optional) – ‘LS’ (least-squares) or ‘Dikin_LS’ (L1 then L2). Default is ‘Dikin_LS’.

  • threshold (float, optional) – Outlier rejection threshold. Default is 5.

  • verbose (bool, optional) – If True, print progress. Default is True.

Returns:

Result of the estimation (transformation parameters and related info).

Return type:

object

pyacs.sol.helmert.find_outliers_Helmert(R, threshold=5)[source]

Returns index outliers points

pyacs.sol.helmert.helmert_matrix(x, y, z, tran=True, rot=True, scale=True, equilibrate=True)[source]

Generate Helmert transformation matrix for a single point.

Builds the design matrix for translation/rotation/scale transformation.

Parameters:
  • x (float) – Point geocentric X coordinate (m).

  • y (float) – Point geocentric Y coordinate (m).

  • z (float) – Point geocentric Z coordinate (m).

  • tran (bool, optional) – Include translation. Default is True.

  • rot (bool, optional) – Include rotation. Default is True.

  • scale (bool, optional) – Include scale. Default is True.

  • equilibrate (bool, optional) – If True (default), use km for position and mas for scale for better conditioning.

Returns:

Transformation design matrix (2D).

Return type:

numpy.matrix

pyacs.sol.helmert.observation_equation_helmert_local(xf, yf, zf, xr, yr, zr, tran=True, rot=True, scale=True)[source]

Generate linear observation equations for Helmert transformation (E,N,U).

Parameters:
  • xf (float) – Geocentric coordinates in the initial (‘free’) frame (m).

  • yf (float) – Geocentric coordinates in the initial (‘free’) frame (m).

  • zf (float) – Geocentric coordinates in the initial (‘free’) frame (m).

  • xr (float) – Geocentric coordinates in the final (reference) frame (m).

  • yr (float) – Geocentric coordinates in the final (reference) frame (m).

  • zr (float) – Geocentric coordinates in the final (reference) frame (m).

  • tran (bool, optional) – Include translation. Default is True.

  • rot (bool, optional) – Include rotation. Default is True.

  • scale (bool, optional) – Include scale. Default is True.

Returns:

  • A (numpy.matrix) – Design matrix.

  • B (numpy.matrix) – Observation vector.

Notes

VCV (variance-covariance) is not accounted for yet.