California-Planet-Search / radvel

General Toolkit for Modeling Radial Velocity Data
http://radvel.readthedocs.io
MIT License
57 stars 52 forks source link

RVLikelihood() parameter key error #333

Closed neilzim closed 3 years ago

neilzim commented 3 years ago

After upgrading from v1.3.8 to v1.4.2, my calls to RVLikelihood() result in a list index error. The same problem occurs in your tutorial notebook docs/tutorials/SyntheticData.ipynb. Therefore if you run that notebook as-is, it should reproduce my error.

In cell 4 ("Generate a likelihood") the command like_syn = radvel.likelihood.RVLikelihood(rv_mod,t,syn_rv,zeros(t.size)+errvel) results in:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-4-afdaacee57a4> in <module>()
----> 1 like_syn = radvel.likelihood.RVLikelihood(rv_mod,t,syn_rv,zeros(t.size)+errvel)
      2 like_syn.params['gamma'] = radvel.Parameter(value=0)
      3 like_syn.params['jit'] = radvel.Parameter(value=errvel)
      4 
      5 truths = copy.deepcopy(like_syn.params) # Store away model parameters for later reference

/Users/nzimmerm/anaconda3/envs/DC_nb/lib/python3.7/site-packages/radvel/likelihood.py in __init__(self, model, t, vel, errvel, suffix, decorr_vars, decorr_vectors, **kwargs)
    346         super(RVLikelihood, self).__init__(
    347             model, t, vel, errvel, extra_params=self.extra_params,
--> 348             decorr_params=self.decorr_params, decorr_vectors=self.decorr_vectors
    349             )
    350 

/Users/nzimmerm/anaconda3/envs/DC_nb/lib/python3.7/site-packages/radvel/likelihood.py in __init__(self, model, x, y, yerr, extra_params, decorr_params, decorr_vectors)
     48 
     49         self.vector.dict_to_vector()
---> 50         self.vector.vector_names()
     51 
     52     def __repr__(self):

/Users/nzimmerm/anaconda3/envs/DC_nb/lib/python3.7/site-packages/radvel/model.py in vector_names(self)
    233         for key in self.params.keys():
    234             try:
--> 235                 names[self.indices[key]] = key
    236             except KeyError:
    237                 pass

IndexError: list assignment index out of range
bjfultn commented 3 years ago

@spencerhurt would you mind taking a look at this? It looks like something has gone wrong with the vector initialization. I took a quick look but the problem wasn't obvious to me.

spencerhurt commented 3 years ago

It looks like one of the recent updates caused an indexing error when initializing the vector object. I submitted a pull request and the Synthetic Data Tutorial now runs fine for me. Thanks for bringing this up, and let us know if the problem keeps coming up!

neilzim commented 3 years ago

Thank you very much, @spencerhurt and @bjfultn.

telmonteiro commented 10 months ago

Hi!

I have a very similar error. Running the most recent version of RadVel, and when I run

df = radvel.mcmc(post,nwalkers=20,nrun=400,savename='rawchains.h5')

It returns

Traceback (most recent call last): File "/mnt/c/Users/...folder.../RadVel.py", line 73, in <module> df = radvel.mcmc(post,nwalkers=20,nrun=400,savename='rawchains.h5') File "/home/...username.../.local/lib/python3.10/site-packages/radvel/mcmc.py", line 301, in mcmc names = post.name_vary_params() File "/home/...username.../.local/lib/python3.10/site-packages/radvel/likelihood.py", line 170, in name_vary_params list.append(self.vector.names[i]) IndexError: list index out of range

The code is according to https://github.com/California-Planet-Search/radvel/pull/338.