code: def setup_smp(self):
          
          if self.obssim_smp_pairs is None:
              return
          if len(self.obssim_smp_pairs) == 2:
              if isinstance(self.obssim_smp_pairs[0],str):
                  self.obssim_smp_pairs = [self.obssim_smp_pairs]
          for obs_smp,sim_smp in self.obssim_smp_pairs:
              self.log("processing {0} and {1} smp files".format(obs_smp,sim_smp))
              if not os.path.exists(obs_smp):
                  self.logger.lraise("couldn't find obs smp: {0}".format(obs_smp))
              if not os.path.exists(sim_smp):
                  self.logger.lraise("couldn't find sim smp: {0}".format(sim_smp))
              new_obs_smp = os.path.join(self.m.model_ws,
                                                os.path.split(obs_smp)[-1])
              shutil.copy2(obs_smp,new_obs_smp)
              new_sim_smp = os.path.join(self.m.model_ws,
                                                os.path.split(sim_smp)[-1])
              shutil.copy2(sim_smp,new_sim_smp)
              pyemu.smp_utils.smp_to_ins(new_sim_smp)
docs: setup observations from PEST-style SMP file pairs