eulerPoleUtils tools

csi.eulerPoleUtils.euler2gps(evec, Pxyz)

Compute linear velocity due to angular rotation about an Euler pole.

csi.eulerPoleUtils.geo2topo(dR, Rr, indat=())
Transforms an ECEF relative position vector ‘dR’ to a topocentric vector ENU ‘rt’
  • dR.shape MUST be (3,N) for matvecseq to work

csi.eulerPoleUtils.gps2euler(lat, lon, elev, ve, vn, se=None, sn=None)

Solve for the Euler pole given station positions and velocitites.

Arguments: lat array of station latitudes (radians) lon array of station longitudes (radians) elev array of station elevations ve array of station east velocities/displacements (meters) vn array of station north velocities/displacements (meters) se east velocitiy uncertainties (meters) sn north velocity uncertainties (meters)

Output: elat latitude of euler pole elon longitude of euler pole omega pole rotation angle

csi.eulerPoleUtils.llh2xyz(lat, lon, h)

Convert lat-lon-h to XYZ assuming a spherical Earth with radius equal to the local ellipsoid radius.

csi.eulerPoleUtils.matmatseq(mat1, mat2)

Multiplies matrix stacked along the depth dimension by another matrix stacked along the depth dimension

mat1.shape must be (3,3,N) mat2.shape must be (3,3,N) out.shape will be (3,3,N)

csi.eulerPoleUtils.matvecseq(mat, vec)

Multiplies matrix stacked along the depth dimension by a row vector stacked along the vertical dimension

mat.shape must be (3,3,N) vec.shape must be (N,3) out.shape will be (N,3)

csi.eulerPoleUtils.rotmat2euler(R)

Computes the Euler pole vector from a rotation matrix R.

csi.eulerPoleUtils.topo2geo(rt, Rr, indat=())
Transforms a topocentric ENU vector ‘rt’ to ECEF coordinate vector ‘dR’
  • rt.shape MUST be (3,N) for matvecseq to work

csi.eulerPoleUtils.unit(A)

Reads in an input Nx3 matrix of XYZ points and outputs the unit vectors and norms.

csi.eulerPoleUtils.xyz2llh(X)

Convert XYZ coordinates to latitude, longitude, height, assuming a spherical Earth.