diff --git a/pycbc/inference/io/base_hdf.py b/pycbc/inference/io/base_hdf.py index 88e7733ce8a..3d2f4688495 100644 --- a/pycbc/inference/io/base_hdf.py +++ b/pycbc/inference/io/base_hdf.py @@ -661,6 +661,8 @@ def copy_samples(self, other, parameters=None, parameter_names=None, # if list of desired parameters is different, rename if set(parameters) != set(self.variable_params): other.attrs['variable_params'] = parameters + if read_args is None: + read_args = {} samples = self.read_samples(parameters, **read_args) logging.info("Copying {} samples".format(samples.size)) # if different parameter names are desired, get them from the samples @@ -671,7 +673,10 @@ def copy_samples(self, other, parameters=None, parameter_names=None, samples = FieldArray.from_kwargs(**arrs) other.attrs['variable_params'] = samples.fieldnames logging.info("Writing samples") - other.write_samples(other, samples, **write_args) + if write_args is None: + write_args = {} + other.write_samples({p: samples[p] for p in samples.fieldnames}, + **write_args) def copy(self, other, ignore=None, parameters=None, parameter_names=None, read_args=None, write_args=None): diff --git a/pycbc/inference/sampler/base_mcmc.py b/pycbc/inference/sampler/base_mcmc.py index 95194f3524a..b657468e7a1 100644 --- a/pycbc/inference/sampler/base_mcmc.py +++ b/pycbc/inference/sampler/base_mcmc.py @@ -454,8 +454,14 @@ def set_state_from_file(self, filename): def set_start_from_config(self, cp): """Sets the initial state of the sampler from config file """ - init_prior = initial_dist_from_config(cp, self.variable_params) - self.set_p0(prior=init_prior) + if cp.has_option('sampler', 'start-file'): + start_file = cp.get('sampler', 'start-file') + logging.info("Using file %s for initial positions", start_file) + init_prior = None + else: + start_file = None + init_prior = initial_dist_from_config(cp, self.variable_params) + self.set_p0(samples_file=start_file, prior=init_prior) def resume_from_checkpoint(self): """Resume the sampler from the checkpoint file