Lightkurve错误-属性错误:“ NoneType”对象没有属性“ Sap_Flux”

时间:2019-06-21 16:03:48

标签: python pandas astropy

我有一个Excel文件,其中包含有关50001个开普勒对象的基本信息。我正在尝试使用大熊猫阅读开普勒ID的列,然后将这些ID放入Lightkurve搜索中,在这里我可以对所有四分之一的观测数据进行通用的光弯曲。这是我的代码:

import os
import pylab as plt
import numpy as np
from astropy.table import Table, Column
from astroquery.simbad import Simbad
import pandas as pd 
from astroquery.mast import Observations
import lightkurve as lk
from lightkurve import search_lightcurvefile 
from astropy.io import fits 


data = pd.read_excel ('C:\keplerDataSet.xlsx') 
df = pd.DataFrame(data, columns= ['Kepler_ID']) 
idlist = df[1:2]

for obj in idlist:
   lc = search_lightcurvefile('obj', quarter=1).download().SAP_FLUX.normalize()
   for q in range(2,17):
        lc = lc.append(search_lightcurvefile('obj',quarter=q).download().SAP_FLUX.normalize())

它给我的错误是这样的: '属性错误:'NoneType'对象没有属性'Sap_Flux'

我是一个本科生,我对编程还很陌生,所以任何建设性的批评都非常受欢迎。

2 个答案:

答案 0 :(得分:0)

似乎download调用返回的对象没有SAP_FLUX属性。

如果您尝试以下操作,您将能够看到下载的字符串表示形式(通常包括有助于谷歌搜索的类型名称)以及它在大型python列表中具有的属性。

for obj in idlist:
   download = search_lightcurvefile('obj', quarter=1).download()
   print(download, dir(download))
   download.SAP_FLUX.normalize()

答案 1 :(得分:0)

问题在于您需要指定任务,因为此搜索还需要K2和TESS进行调用。

所以不是

download = search_lightcurvefile('obj', quarter = 1).download()

您需要

download = search_lightcurvefile('obj', mission = ['Kepler'], quarter = 1).download()