def get(self, par_names=None, obs_names=None):
        """get a new pst object with subset of parameters and/or observations

        Parameters
        ----------
        par_names : list
            a list of parameter names to have in the new Pst instance.
            If None, all parameters are in the new Pst instance. Default
            is None
        obs_names : list
            a list of observation names to have in the new Pst instance.
            If None, all observations are in teh new Pst instance. Default
            is None

        Returns
        -------
        Pst : Pst
            a new Pst instance

        """
        pass
        #if par_names is None and obs_names is None:
        #    return copy.deepcopy(self)
        if par_names is None:
            par_names = self.parameter_data.parnme
        if obs_names is None:
            obs_names = self.observation_data.obsnme

        new_par = self.parameter_data.copy()
        if par_names is not None:
            new_par.index = new_par.parnme
            new_par = new_par.loc[par_names, :]
        new_obs = self.observation_data.copy()
        new_res = None

        if obs_names is not None:
            new_obs.index = new_obs.obsnme
            new_obs = new_obs.loc[obs_names]
            if self.__res is not None:
                new_res = copy.deepcopy(self.res)
                new_res.index = new_res.name
                new_res = new_res.loc[obs_names, :]

        new_pargp = self.parameter_groups.copy()
        new_pargp.index = new_pargp.pargpnme.apply(str.strip)
        new_pargp_names = new_par.pargp.value_counts().index
        new_pargp = new_pargp.loc[new_pargp_names,:]

        new_pst = Pst(self.filename, resfile=self.resfile, load=False)
        new_pst.parameter_data = new_par
        new_pst.observation_data = new_obs
        new_pst.parameter_groups = new_pargp
        new_pst.__res = new_res
        new_pst.prior_information = self.prior_information
        new_pst.rectify_pi()
        new_pst.control_data = self.control_data.copy()

        new_pst.model_command = self.model_command
        new_pst.template_files = self.template_files
        new_pst.input_files = self.input_files
        new_pst.instruction_files = self.instruction_files
        new_pst.output_files = self.output_files

        if self.tied is not None:
            warnings.warn("Pst.get() not checking for tied parameter " +
                  "compatibility in new Pst instance",PyemuWarning)
            #new_pst.tied = self.tied.copy()
        new_pst.other_lines = self.other_lines
        new_pst.pestpp_options = self.pestpp_options
        new_pst.regul_lines = self.regul_lines

        return new_pst
get a new pst object with subset of parameters and/or observations

        Parameters
        ----------
        par_names : list
            a list of parameter names to have in the new Pst instance.
            If None, all parameters are in the new Pst instance. Default
            is None
        obs_names : list
            a list of observation names to have in the new Pst instance.
            If None, all observations are in teh new Pst instance. Default
            is None

        Returns
        -------
        Pst : Pst
            a new Pst instance