code: def project_ecef_vector_onto_basis(x, y, z, xx, xy, xz, yx, yy, yz, zx, zy, zz):
      
      
      out_x = x*xx + y*xy + z*xz
      out_y = x*yx + y*yy + z*yz
      out_z = x*zx + y*zy + z*zz
      
      return out_x, out_y, out_z
docs: Projects vector in ecef onto different basis, with components also expressed in ECEF
      
      Parameters
      ----------
      x : float or array-like
          ECEF-X component of vector
      y : float or array-like
          ECEF-Y component of vector
      z : float or array-like
          ECEF-Z component of vector
      xx : float or array-like
          ECEF-X component of the x unit vector of new basis 
      xy : float or array-like
          ECEF-Y component of the x unit vector of new basis 
      xz : float or array-like
          ECEF-Z component of the x unit vector of new basis