画费米卫星光变曲线

from astropy.table import Table
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime,timedelta,date
pd.set_option('display.max_columns',None)
"""
费米卫星每列数据
START:从2001年1月1日00时00分00秒开始到此刻的总秒数,不算闰秒
STOP:

"""
class FermiPlot():
    def __init__(self,fitsName):
        self.fitsName=fitsName
        self.data=Table.read(self.fitsName).to_pandas()
        print(self.data.columns)
        print(self.data)
        self.data["START"]=self.data["START"].apply(self.modifiedJulianDay)
        print(self.data)
    def plotFermi(self):
        data=self.data
        fig,ax=plt.subplots(figsize=(10,5))
        yInterval=plt.MultipleLocator(5*10**(-7))
        ax.yaxis.set_major_locator(yInterval)
        ax.set_ylim((0,3*10**(-6)))
        ax.scatter(data['START'],data['FLUX_100_300000'])
        ax.set_xlim((54000,60000))
        ax.errorbar(data['START'],data['FLUX_100_300000']
                    ,yerr=data['ERROR_100_300000']
                    ,fmt="o"
                    # ,mec='black'
                    # ,mfc='black'
                    # ,ecolor='black'
                    )
        plt.show()
    def modifiedJulianDay(self,fermiTime):
        """
        将一个费米时间转换为修正儒略历日
        :修正儒略历MJD是从1858年11月17日开始的一共的天数.
        Fermi的时间是从2001年1月1日0点开始的一共的秒数.
        一天一共86400秒,从Fermi数据可以看出,每一行停止时间都比开始时间差86400秒,也就是都是一整天的数据.
        输入一个费米时间,算出他是费米的第几天,加上费米开始到MJD开始的天数就是这个费米时间的MJD
        """
        startMjd=datetime(year=1858,month=11,day=17,hour=0,minute=0,second=0)
        startFermi=datetime(year=2001,month=1,day=1,hour=0,minute=0,second=0)
        deltaMjdFermiDays=(startFermi-startMjd).days#MJD开始到Fermi开始的总共的天数
        fermiTimeDays=timedelta(seconds=fermiTime).days#所输入Fermi时间的天数
        return fermiTimeDays+deltaMjdFermiDays
if __name__=="__main__":
    FermiPlot('0954_658.fits').plotFermi()



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值