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.