  
    def liveLocationMsg(self, time):
      fix = messaging.log.LiveLocationData.new_message()
      predicted_state = self.kf.x
      fix_ecef = predicted_state[0:3]
      fix_pos_geo = coord.ecef2geodetic(fix_ecef)
      fix.lat = float(fix_pos_geo[0])
      fix.lon = float(fix_pos_geo[1])
      fix.alt = float(fix_pos_geo[2])
  
 
</s> remove     fix.speed = float(np.linalg.norm(predicted_state[7:10]))
 </s> add     fix.speed = float(np.linalg.norm(predicted_state[States.ECEF_VELOCITY])) </s> remove     if dog:
      self.dog = dog
    else:
      self.dog = AstroDog(auto_update=True)
 </s> add  </s> remove     orientation_ned_euler = ned_euler_from_ecef(fix_ecef, quat2euler(predicted_state[3:7]))
 </s> add     orientation_ned_euler = ned_euler_from_ecef(fix_ecef, quat2euler(predicted_state[States.ECEF_ORIENTATION])) </s> remove     fix.imuFrame = [(180/np.pi)*float(predicted_state[23]), (180/np.pi)*float(predicted_state[24]), (180/np.pi)*float(predicted_state[25])]
 </s> add     #fix.imuFrame = [(180/np.pi)*float(predicted_state[23]), (180/np.pi)*float(predicted_state[24]), (180/np.pi)*float(predicted_state[25])] </s> remove     local_vel = rotations_from_quats(predicted_state[3:7]).T.dot(predicted_state[7:10])
 </s> add     local_vel = rotations_from_quats(predicted_state[States.ECEF_ORIENTATION]).T.dot(predicted_state[States.ECEF_VELOCITY])
    fix_ecef = predicted_state[States.ECEF_POS]
  
    def liveLocationMsg(self, time):
      fix = messaging.log.LiveLocationData.new_message()
      predicted_state = self.kf.x
    fix_ecef = predicted_state[States.ECEF_POS]
      fix_pos_geo = coord.ecef2geodetic(fix_ecef)
      fix.lat = float(fix_pos_geo[0])
      fix.lon = float(fix_pos_geo[1])
      fix.alt = float(fix_pos_geo[2])
  
keep keep keep keep replace keep keep keep keep keep
 get ready for live localizer 
selfdrive/locationd/locationd.py