In [1]:
from __future__ import division, print_function

%matplotlib inline
%config InlineBackend.figure_format = "retina"

from matplotlib import rcParams
rcParams["savefig.dpi"] = 100
rcParams["font.size"] = 20

In [2]:
import os
import ketu
import numpy as np
import matplotlib.pyplot as pl
from transit import SimpleSystem


/export/bbq2/dfm/anaconda3/lib/python3.4/site-packages/astropy/config/configuration.py:682: ConfigurationMissingWarning: Configuration defaults will be used due to OSError:Could not find unix home directory to search for astropy config dir on None
  warn(ConfigurationMissingWarning(msg))

In [30]:
campaign = 1
epicid = "201178308"
# epicid = "201367065"
# epicid = "201912552"
# epicid = "201754305"

# campaign = 3
# epicid = "206475757"

# campaign = 4
# epicid = "211056809"
# epicid = "211028585"

basepath = "/export/bbq2/dfm/k2/web"
light_curve_file = os.path.join(basepath, "lightcurves/c{0}".format(campaign),
                                "{0}00000/{1}000/ktwo{2}-c{3:02d}_lpd-lc.fits"
                                .format(epicid[:4], epicid[4:6], epicid, campaign))

query = dict(
    alpha=500*np.log(100),
    min_transits=3,
    detrend=True,
    invert=False,
    light_curve_file=light_curve_file,
    basis_file=os.path.join(basepath, "elcs/c{0}-norm.h5".format(campaign)),
    catalog_file=os.path.join(basepath, "catalogs/epic.h5"),
    nbasis=500,
    initial_time=2015.0,
    # initial_time=2179.0,
    # initial_time=2264.0,
    skip=50,
    durations=[0.05],
    min_period=1.0,
    max_period=40.,
    npeaks=3,
    mask_frac=1.0,
    # injections=[dict(period=5.275, t0=0.45, radius=0.07, b=0.5, q1=0.5, q2=0.5, e=0.01, pomega=0.0)],
)

In [31]:
pipe = ketu.k2.Data(cache=False)
# pipe = ketu.k2.Inject(pipe, cache=False)
pipe = ketu.k2.Likelihood(pipe, cache=False)
pipe = ketu.OneDSearch(pipe, cache=True)
# pipe = ketu.TwoDSearch(pipe, cache=False)
pipe = ketu.IterativeTwoDSearch(pipe, cache=True, clobber=True)
pipe = ketu.Vetter(pipe, cache=True, clobber=True)
pipe = ketu.FeatureExtract(pipe, cache=True, clobber=True)

In [32]:
r = pipe.query(**query)


Querying Data
Finished querying Data in 1.05s
Querying Likelihood
tau = 9.42840576171875
tau = 9.42840576171875
tau = 9.42840576171875
tau = 9.42840576171875
tau = 2.087158203125
tau = 2.06182861328125
tau = 2.06182861328125
tau = 2.06182861328125
Finished querying Likelihood in 12.12s
Querying OneDSearch
Finished querying OneDSearch in 12.93s
Querying IterativeTwoDSearch
Finished querying IterativeTwoDSearch in 62.00s
Querying Vetter
Finished querying Vetter in 49.23s
Querying FeatureExtract
Finished querying FeatureExtract in 0.00s

In [33]:
pl.plot(r.depth_1d * np.sqrt(r.depth_ivar_1d))


Out[33]:
[<matplotlib.lines.Line2D at 0x7f3d64829da0>]

In [34]:
lcs = r.model_light_curves
[pl.errorbar(lc.time, lc.flux, yerr=lc.ferr, fmt=".", capsize=0) for lc in lcs];
[pl.errorbar(lc.time, lc.detrend_flux, yerr=lc.detrend_ferr, fmt=".", capsize=0) for lc in lcs];



In [35]:
r.peaks


Out[35]:
[{'data_span': 80.072509765625,
  'depth': 8.8475559460076489,
  'depth_ivar': 2.9543488759929635,
  'duration': 0.05,
  'duty_cycle': 0.96129837702871412,
  'lnZ_box': -3165.0646626461753,
  'lnZ_none': -3455.5463708176167,
  'lnZ_outlier': -3431.1938895231074,
  'lnZ_period': -2395.3568379977528,
  'lnZ_transit': -2218.531552624183,
  'lnZ_vee': -2250.9925429879822,
  'lnlike_box': -3150.5872187867949,
  'lnlike_none': -3455.5463708176167,
  'lnlike_outlier': -3436.7455202590472,
  'lnlike_period': -2393.0128611598507,
  'lnlike_transit': -2202.9492699999532,
  'lnlike_vee': -2236.8048843942029,
  'osc_period': 1.6078817222012987,
  'period': 1.6111411430756646,
  'phic_same': 1223.1225155615198,
  'phic_same_second': 1211.8097170029396,
  'phic_variable': -52740.08404737727,
  's2n': 15.207373312868423,
  't0': 1.0050827463159528,
  'transit_b': 1.0605212399606336,
  'transit_duration': 1.1004599562164883,
  'transit_period': 1.6093655215182598,
  'transit_q1': 0.99963442926783352,
  'transit_q2': 0.99995460213129761,
  'transit_ror': 0.34511565377815973,
  'transit_t0': 0.99798660712525133},
 {'data_span': 80.072509765625,
  'depth': 8.5435204878258464,
  'depth_ivar': 2.6271197075482982,
  'duration': 0.05,
  'duty_cycle': 0.90137328339575529,
  'lnZ_box': -2179.9344087167105,
  'lnZ_none': -2202.9492702505863,
  'lnZ_outlier': -2187.0354133896922,
  'lnZ_period': -2186.6617893673006,
  'lnZ_transit': -2203.9162709788748,
  'lnZ_vee': -2188.9222464204786,
  'lnlike_box': -2164.3486597142173,
  'lnlike_none': -2202.9492702505863,
  'lnlike_outlier': -2192.5959516862736,
  'lnlike_period': -2184.3178125293985,
  'lnlike_transit': -2196.7390973432321,
  'lnlike_vee': -2176.3737081010199,
  'osc_period': 1.6078817222012987,
  'period': 1.6111411430756646,
  'phic_same': 1210.3899648362944,
  'phic_same_second': 1204.9049840837426,
  'phic_variable': -52756.230256998606,
  's2n': 13.847672900262308,
  't0': 1.0800827463159486,
  'transit_b': 0.52664339653963221,
  'transit_duration': 0.11942053757015968,
  'transit_period': 1.6077660501669813,
  'transit_q1': 0.48561044851495028,
  'transit_q2': 0.49772940393857862,
  'transit_ror': 0.039180344354284573,
  'transit_t0': 1.0793877931392091},
 {'data_span': 80.072509765625,
  'depth': 6.8873334502480761,
  'depth_ivar': 2.852101814322396,
  'duration': 0.05,
  'duty_cycle': 0.85518102372034954,
  'lnZ_box': -2173.104492211517,
  'lnZ_none': -2196.7390897313171,
  'lnZ_outlier': -2146.4970015633266,
  'lnZ_period': -2169.4248077633752,
  'lnZ_transit': -2194.0681210914249,
  'lnZ_vee': -2172.5208770473237,
  'lnlike_box': -2159.169173801231,
  'lnlike_none': -2196.7390897313171,
  'lnlike_outlier': -2152.0507278625037,
  'lnlike_period': -2167.080830925473,
  'lnlike_transit': -2195.3212378791841,
  'lnlike_vee': -2160.3540761521904,
  'osc_period': 1.6078817222012987,
  'period': 1.6111411430756646,
  'phic_same': 1192.5733609477395,
  'phic_same_second': 1185.677713298893,
  'phic_variable': -52770.434924703957,
  's2n': 11.6314436842482,
  't0': 1.1550827463159514,
  'transit_b': 0.6505489748469282,
  'transit_duration': 0.039475500502419998,
  'transit_period': 1.6102643298553381,
  'transit_q1': 0.49811057872125941,
  'transit_q2': 0.50006593164027136,
  'transit_ror': 0.036613686619526485,
  'transit_t0': 1.1562344453613123}]

In [36]:
p = r.peaks[0]

s = SimpleSystem(period=p["transit_period"],
                 t0=p["transit_t0"],
                 ror=p["transit_ror"],
                 impact=p["transit_b"],
                 duration=p["transit_duration"],
                 q1=p["transit_q1"],
                 q2=p["transit_q2"])

mod = [1e3*(s.light_curve(lc.time)-1.0) for lc in lcs]
[pl.plot(lc.time %  p["transit_period"], lc.flux - lc.predict(lc.flux - m), ".") for lc, m in zip(lcs, mod)]
# [pl.plot(lc.time %  p["transit_period"], m, ".") for lc, m in zip(lcs, mod)]
pl.gca().axvline(p["transit_t0"]);
pl.xlim(p["transit_t0"]-1, p["transit_t0"]+1)


Out[36]:
(-0.0020133928747486651, 1.9979866071252514)

In [ ]:


In [ ]:


In [ ]: