code: def train_and_save(self, model_filename, cannon_data_filename, 
          clobber=False, **kwargs):
          
  
          if any(map(os.path.exists,
              (model_filename, cannon_data_filename))) and not clobber:
              raise IOError("output file already exists")
  
          trained = self.train_global(**kwargs)
          with open(cannon_data_filename, "wb") as fp:
              pickle.dump(trained, fp, -1)
  
          self._configuration["model_grid"]["cannon_data"] = cannon_data_filename
          logger.info("Cannon coefficients pickled to {}".format(
              cannon_data_filename))
  
          self.save(model_filename, clobber)
  
          return True
docs: Train the Cannon coefficients.