From c0a1fa083c039d1e637a31fe0718d3e63425191d Mon Sep 17 00:00:00 2001 From: sblunt Date: Tue, 9 Jun 2020 17:41:22 -0700 Subject: [PATCH 01/13] use dill rather than pickle --- radvel/posterior.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radvel/posterior.py b/radvel/posterior.py index 86676508..9b0beec2 100644 --- a/radvel/posterior.py +++ b/radvel/posterior.py @@ -1,6 +1,6 @@ from .likelihood import Likelihood import numpy as np -import pickle +import dill as pickle import radvel from radvel.gp import CeleriteKernel From 2e467a55c826766b9cab58c03bb0335f847f299a Mon Sep 17 00:00:00 2001 From: sblunt Date: Thu, 11 Jun 2020 13:43:49 -0700 Subject: [PATCH 02/13] add dill to requirements --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index e1b25b57..affe281b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,3 +12,4 @@ ipykernel>=4.10.0 jinja2>=2.9 python-dateutil>=2.5.0 h5py>=2.10.0 +dill From af6d805c53521a064fa0595e8b7e77275aafcf32 Mon Sep 17 00:00:00 2001 From: megbedell Date: Wed, 24 Jun 2020 13:16:38 -0400 Subject: [PATCH 03/13] update planet_parameters with change of basis --- radvel/basis.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/radvel/basis.py b/radvel/basis.py index eebcc53a..2eacba0a 100644 --- a/radvel/basis.py +++ b/radvel/basis.py @@ -393,6 +393,7 @@ def _setpar(key, new_value): if isinstance(params_out, radvel.model.Parameters): params_out.basis = Basis('per tp e w k', self.num_planets) + params_out.planet_parameters = params_out.basis.name.split() return params_out def v_from_synth(self, params_in, newbasis): @@ -727,6 +728,7 @@ def _delpar(key): self.params = newbasis.split() params_out.basis = Basis(newbasis, self.num_planets) + params_out.planet_parameters = params_out.basis.name.split() return params_out From 3ad0d7999398311779d606c97ae275842f0cae00 Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 15 Sep 2020 15:42:52 -0700 Subject: [PATCH 04/13] debugging plot curv bug --- radvel/plot/orbit_plots.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radvel/plot/orbit_plots.py b/radvel/plot/orbit_plots.py index e693e373..15ba04c8 100644 --- a/radvel/plot/orbit_plots.py +++ b/radvel/plot/orbit_plots.py @@ -275,7 +275,7 @@ def plot_phasefold(self, pltletter, pnum): bin_markersize = bin_fac * rcParams['lines.markersize'] bin_markeredgewidth = bin_fac * rcParams['lines.markeredgewidth'] - rvmod2 = self.model(self.rvmodt, planet_num=pnum) - self.slope + rvmod2 = self.model(self.rvmodt, planet_num=pnum)# - self.slope modph = t_to_phase(self.post.params, self.rvmodt, pnum, cat=True) - 1 rvdat = self.rawresid + self.model(self.rvtimes, planet_num=pnum) - self.slope_low phase = t_to_phase(self.post.params, self.rvtimes, pnum, cat=True) - 1 From 38424bcbab69c40d3dca4a296b2b0f1dcd46657e Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 15 Sep 2020 15:44:29 -0700 Subject: [PATCH 05/13] debugging plot curv bug --- radvel/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radvel/__init__.py b/radvel/__init__.py index 0857d24e..a4074d46 100644 --- a/radvel/__init__.py +++ b/radvel/__init__.py @@ -29,7 +29,7 @@ def _custom_warningfmt(msg, *a, **b): __all__ = ['model', 'likelihood', 'posterior', 'mcmc', 'prior', 'utils', 'fitting', 'report', 'cli', 'driver', 'gp'] -__version__ = '1.4.1' +__version__ = '1.4.2' __spec__ = __name__ __package__ = __path__[0] From 5ac104921f1776eb5bccb2f580fc9bd1450ad392 Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 15 Sep 2020 16:11:13 -0700 Subject: [PATCH 06/13] undoing dvdt change --- radvel/plot/orbit_plots.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radvel/plot/orbit_plots.py b/radvel/plot/orbit_plots.py index 15ba04c8..e693e373 100644 --- a/radvel/plot/orbit_plots.py +++ b/radvel/plot/orbit_plots.py @@ -275,7 +275,7 @@ def plot_phasefold(self, pltletter, pnum): bin_markersize = bin_fac * rcParams['lines.markersize'] bin_markeredgewidth = bin_fac * rcParams['lines.markeredgewidth'] - rvmod2 = self.model(self.rvmodt, planet_num=pnum)# - self.slope + rvmod2 = self.model(self.rvmodt, planet_num=pnum) - self.slope modph = t_to_phase(self.post.params, self.rvmodt, pnum, cat=True) - 1 rvdat = self.rawresid + self.model(self.rvtimes, planet_num=pnum) - self.slope_low phase = t_to_phase(self.post.params, self.rvtimes, pnum, cat=True) - 1 From 2b02b0c69c485a5207c40e34d32fe20f8f60549d Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 22 Sep 2020 16:29:24 -0700 Subject: [PATCH 07/13] incorporate Paul's changes for draw_models_from_chain --- radvel/model.py | 26 +++++++++++++++++++++++++- radvel/utils.py | 7 +++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/radvel/model.py b/radvel/model.py index cd6e0acc..641cce0c 100644 --- a/radvel/model.py +++ b/radvel/model.py @@ -289,7 +289,31 @@ def __call__(self,t,*args,**kwargs): vel += self.vector.vector[self.vector.indices['curv']][0] * (t - self.time_base)**2 return vel - + def array_to_params(self,param_values): + + new_params = self.params + + vary_parameters = self.list_vary_params() + + for i in range(len(vary_parameters)): + new_params[vary_parameters[i]] = Parameter(value=param_values[i]) + + return new_params + + def list_vary_params(self): + keys = self.list_params() + + return [key for key in keys if self.params[key].vary] + + def list_params(self): + try: + keys = self.params_order + except AttributeError: + keys = list(self.params.keys()) + self.params_order = keys + return keys + + def _standard_rv_calc(t,params,vector,planet_num=None): vel = np.zeros(len(t)) params_synth = params.basis.v_to_synth(vector) diff --git a/radvel/utils.py b/radvel/utils.py index 4d58531c..8f66448f 100644 --- a/radvel/utils.py +++ b/radvel/utils.py @@ -654,12 +654,11 @@ def draw_models_from_chain(mod, chain, t, nsamples=50): """ np.random.seed(0) - chain_samples = chain.ix[np.random.choice(chain.index, nsamples)] + chain_samples = chain.iloc[np.random.choice(chain.index, nsamples)] models = [] for i in chain_samples.index: - params = np.array(chain.ix[i, mod.vary_parameters]) + params = np.array(chain.loc[i, mod.list_vary_params()]) params = mod.array_to_params(params) - models += [mod.model(params, t)] + models += [mod(t)] models = np.vstack(models) return models - From 67e288ecf74ac79f519078e5031eacc83236d605 Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 22 Sep 2020 17:14:50 -0700 Subject: [PATCH 08/13] fix model comparison bug --- radvel/cli.py | 2 +- radvel/driver.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/radvel/cli.py b/radvel/cli.py index f6d31e55..72cb5a7c 100644 --- a/radvel/cli.py +++ b/radvel/cli.py @@ -175,7 +175,7 @@ def main(): psr_report = subpsr.add_parser('report', parents=[psr_parent], description="Merge output tables and plots into LaTeX report" ) - psr_report.add_argument('--comptype', dest='comptype', action='store', default='ic', type=str, + psr_report.add_argument('--comptype', dest='comptype', action='store', default='nplanets', type=str, help='Type of model comparison table to include. Default: ic') psr_report.add_argument('--latex-compiler', default='pdflatex', type=str, help='Path to latex compiler') diff --git a/radvel/driver.py b/radvel/driver.py index 3ed2cb9a..22e67f3d 100644 --- a/radvel/driver.py +++ b/radvel/driver.py @@ -17,6 +17,7 @@ import pandas as pd import numpy as np +from numpy import inf from astropy import constants as c if sys.version_info[0] < 3: @@ -358,7 +359,7 @@ def ic_compare(args): if not hasattr(args, 'mixed') or (hasattr(args, 'mixed') and args.mixed): statsdictlist += radvel.fitting.model_comp(ipost, params=paramlist, verbose=args.verbose) - savestate = {'ic': statsdictlist} + savestate = {compareparam: statsdictlist} save_status(statfile, 'ic_compare', savestate) @@ -583,7 +584,7 @@ def report(args): derived = False try: compstats = eval(status.get('ic_compare', args.comptype)) - except: + except KeyError: print("WARNING: Could not find {} model comparison \ in {}.\nPlease make sure that you have run `radvel ic -t {}` (or, e.g., `radvel \ ic -t nplanets e trend jit gp`)\ From 2deb62239d8e05e1cf0c4037790cea0224b3cf1b Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 22 Sep 2020 17:18:51 -0700 Subject: [PATCH 09/13] fix nplanets=0 phase plot bug --- radvel/plot/orbit_plots.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radvel/plot/orbit_plots.py b/radvel/plot/orbit_plots.py index e693e373..10ec789e 100644 --- a/radvel/plot/orbit_plots.py +++ b/radvel/plot/orbit_plots.py @@ -451,8 +451,8 @@ def plot_multipanel(self, nophase=False, letter_labels=True): # phase-folded plots if not nophase: - gs_phase = gridspec.GridSpec(self.phase_nrows, self.phase_ncols) - + gs_phase = gridspec.GridSpec(max([1,self.phase_nrows]), max([1,self.phase_ncols])) + if self.phase_ncols == 1: gs_phase.update(left=0.12, right=0.93, top=divide - self.rv_phase_space * 0.5, From 5964f76f43e964f3273dfefa332058629cb187dc Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Tue, 22 Sep 2020 17:26:48 -0700 Subject: [PATCH 10/13] fix CI --- radvel/driver.py | 1 + 1 file changed, 1 insertion(+) diff --git a/radvel/driver.py b/radvel/driver.py index 22e67f3d..903bc1dc 100644 --- a/radvel/driver.py +++ b/radvel/driver.py @@ -330,6 +330,7 @@ def ic_compare(args): if args.simple: statsdictlist += radvel.fitting.model_comp(ipost, params=[], verbose=args.verbose) + compareparam = 'nplanets' else: if hasattr(args, 'fixjitter') and args.fixjitter: for param in ipost.params: From 7930fb3b39d72a961882b8455ec613049d7c842a Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Wed, 23 Sep 2020 09:07:09 -0700 Subject: [PATCH 11/13] dummy commit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ba14812..636fd1aa 100644 --- a/README.md +++ b/README.md @@ -57,4 +57,4 @@ Follow examples in - `radvel/docs/tutorials/SyntheticData.ipynb` - `radvel/docs/tutorials/K2-24_Fitting+MCMC.ipynb` - `radvel/docs/tutorials/164922_Fitting+MCMC.ipynb` -- `radvel/docs/tutorials/GaussianProcess-tutorial.ipynb` +- `radvel/docs/tutorials/GaussianProcess-tutorial.ipynb` \ No newline at end of file From 378ee376f3dcd5f3d931e781f1a2ddbedeeed45b Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Wed, 23 Sep 2020 09:12:59 -0700 Subject: [PATCH 12/13] back to 'ic' in stat file --- radvel/cli.py | 2 +- radvel/driver.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/radvel/cli.py b/radvel/cli.py index 72cb5a7c..f6d31e55 100644 --- a/radvel/cli.py +++ b/radvel/cli.py @@ -175,7 +175,7 @@ def main(): psr_report = subpsr.add_parser('report', parents=[psr_parent], description="Merge output tables and plots into LaTeX report" ) - psr_report.add_argument('--comptype', dest='comptype', action='store', default='nplanets', type=str, + psr_report.add_argument('--comptype', dest='comptype', action='store', default='ic', type=str, help='Type of model comparison table to include. Default: ic') psr_report.add_argument('--latex-compiler', default='pdflatex', type=str, help='Path to latex compiler') diff --git a/radvel/driver.py b/radvel/driver.py index 903bc1dc..6e5e92f7 100644 --- a/radvel/driver.py +++ b/radvel/driver.py @@ -330,7 +330,6 @@ def ic_compare(args): if args.simple: statsdictlist += radvel.fitting.model_comp(ipost, params=[], verbose=args.verbose) - compareparam = 'nplanets' else: if hasattr(args, 'fixjitter') and args.fixjitter: for param in ipost.params: @@ -360,7 +359,7 @@ def ic_compare(args): if not hasattr(args, 'mixed') or (hasattr(args, 'mixed') and args.mixed): statsdictlist += radvel.fitting.model_comp(ipost, params=paramlist, verbose=args.verbose) - savestate = {compareparam: statsdictlist} + savestate = {'ic': statsdictlist} save_status(statfile, 'ic_compare', savestate) From 67ef2d11937300e2416bd9f06804ac1b2cf832cc Mon Sep 17 00:00:00 2001 From: BJ Fulton Date: Wed, 23 Sep 2020 09:18:53 -0700 Subject: [PATCH 13/13] working on CI --- radvel/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radvel/driver.py b/radvel/driver.py index 6e5e92f7..74e53689 100644 --- a/radvel/driver.py +++ b/radvel/driver.py @@ -583,7 +583,7 @@ def report(args): else: derived = False try: - compstats = eval(status.get('ic_compare', args.comptype)) + compstats = eval(status.get('ic_compare', 'ic')) except KeyError: print("WARNING: Could not find {} model comparison \ in {}.\nPlease make sure that you have run `radvel ic -t {}` (or, e.g., `radvel \