  
    def update_kalman(self, time, kind, meas):
      idx = bisect_right([x[0] for x in self.observation_buffer], time)
      self.observation_buffer.insert(idx, (time, kind, meas))
      #print len(self.observation_buffer), idx, self.kf.filter.filter_time, time
      while self.observation_buffer[-1][0] - self.observation_buffer[0][0] > self.max_age:
        if self.filter_ready:
          self.kf.predict_and_observe(*self.observation_buffer.pop(0))
        else:
          self.observation_buffer.pop(0)
 
</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       #self.update_kalman(current_time, ObservationKind.ECEF_POS, fix_ecef)
 </s> add       self.update_kalman(current_time, ObservationKind.ECEF_POS, fix_ecef) </s> remove     self.kf = LocKalman(0)
 </s> add     self.kf = LiveKalman() </s> remove     pass
 </s> add  </s> remove     if dog:
      self.dog = dog
    else:
      self.dog = AstroDog(auto_update=True)
 </s> add 
  
    def update_kalman(self, time, kind, meas):
      idx = bisect_right([x[0] for x in self.observation_buffer], time)
      self.observation_buffer.insert(idx, (time, kind, meas))

      while self.observation_buffer[-1][0] - self.observation_buffer[0][0] > self.max_age:
        if self.filter_ready:
          self.kf.predict_and_observe(*self.observation_buffer.pop(0))
        else:
          self.observation_buffer.pop(0)
keep keep keep keep replace keep keep keep keep keep
 get ready for live localizer 
selfdrive/locationd/locationd.py