python - bin光曲线后的Lightkurve nan值
问题描述
我正在使用带有 Python 3.8.5 和 astropy 4.2 的lightkurve 2.0.2 库来处理系外行星凌日。但是,当我想将光曲线合并到固定数量的点时,light_curve.flux
除了前两个之外的所有值都是 nan。我做错了什么?
import lightkurve as lk
tp = lk.search_targetpixelfile("Kepler-10", mission="Kepler", exptime="long", quarter=1).download()
lc = tp.to_lightcurve().flatten().remove_outliers()
fold = lc.fold(0.837)
bin = fold.bin(n_bins=101)
print(bin.flux) # [0.99999749 0.99999977 nan nan nan nan nan nan nan ... nan nan nan nan]
解决方案
在您的情况下,分箱是根据fold
变量的时间数据完成的。让我们看一下数据:
print(fold)
# => time flux ...
# electron / s ...
# -------------------- ------------------ ...
# -0.41839904743025785 0.9999366372082438 ...
# -0.41790346068516393 0.9999900469016064 ...
# -0.41710349403700253 1.000098604170269 ...
# ... ... ...
# 0.41749621545238175 1.0000351718333538 ...
# 0.4178061659377394 1.0000272820282354 ...
# 0.41829640771343823 1.0000199004079346 ...
这意味着我们有大约 -0.4 天到 0.4 天的数据。
然后使用bin = fold.bin(n_bins=101)
. 关于bin
方法参数的文档(截断):
time_bin_size : `~astropy.units.Quantity`, float The time interval for the binned time series. (Default: 0.5 days; default unit: days.) time_bin_start : `~astropy.time.Time`, optional The start time for the binned time series. Defaults to the first time in the sampled time series. n_bins : int, optional The number of bins to use. Defaults to the number needed to fit all the original points. Note that this will create this number of bins of length ``time_bin_size`` independent of the lightkurve length.
你只传递n_bins
参数。这意味着,该方法将从 -0.4 开始创建 101 个宽度为 0.5 的 bin。所以第一个 bin 从 -0.4 到 0.1,第二个从 0.1 到 0.6,第三个从 0.6 到 1.1,...
现在很明显,只有前两个 bin 包含数据。
而不是n_bins
,使用bins
:
bins : int The number of bins to divide the lightkurve into. In contrast to ``n_bins`` this sets the length of ``time_bin_size`` accordingly.
这是结果:
bin = fold.bin(bins=101)
print(bin.flux)
# => [1.0000268 1.00003322 1.00001914 1.00001018 1.00000905 1.00002073
# 0.99999502 1.00000155 1.0000071 0.99999901 1.000028 0.99998768
# 0.99998992 1.00003623 1.00001132 1.00005118 0.99998819 1.00001886
# ...
# 1.00001082 1.00004898 1.0000009 1.00001234 1.00000681] electron / s
该bins
参数在 lightkurve 2.0.2 中不可用,但在 2.0.6 中(感谢@Michal)。
推荐阅读
- python - Python:显示类型继承
- ruby-on-rails - 尽管使用了 JavaScript 警报窗口,但销毁方法测试并未失败
- 3d - 寻找由一组(可能相交的)三角形组成的多面体
- swift - 碰撞检测不一致
- sql - 插入数据时 MSSQL2008 与 2016 的不同行为
- rust - 为什么我的 Diesel 结构中的可选字段没有实现特征
- javascript - Jquery IdleTimeOut 插件集成错误
- ibm-mq - 如何在 webaphere MQ 中跟踪消息
- c++ - 为什么将 double 类型转换为 int 似乎会在第 16 位之后对其进行舍入?
- mysql - 需要优化左连接下的这个视图查询