Source code for pyacs.lib.coordinates.denu_at_x0y0z0_to_xyz

import numpy as np


###################################################################
[docs] def denu_at_x0y0z0_to_xyz(de, dn, du, x0, y0, z0): ################################################################### """Convert local vector (dE, dN, dU) at a reference point to geocentric XYZ. Parameters ---------- de : float or array_like East component of local vector, meters. dn : float or array_like North component of local vector, meters. du : float or array_like Up component of local vector, meters. x0 : float X of reference point in geocentric cartesian, meters. y0 : float Y of reference point in geocentric cartesian, meters. z0 : float Z of reference point in geocentric cartesian, meters. Returns ------- x, y, z : float or ndarray Resulting point in geocentric cartesian coordinates, meters. """ from .xyz2geo import xyz2geo from .mat_rot_local_to_general import mat_rot_local_to_general (lam, phi, _) = xyz2geo(x0, y0, z0) R = mat_rot_local_to_general(lam, phi) DL = np.array([de, dn, du]) X0 = np.array([x0, y0, z0]) XYZ = np.dot(R, DL) + X0 return (XYZ[0], XYZ[1], XYZ[2])