# -*- coding: utf-8 -*-
import psrchive
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import argrelextrema
"""
适用积分脉冲轮廓,检测双峰的相位点
"""
arch = psrchive.Archive_load('XXX.fits')
arch.dedisperse()
data = arch.get_data()
data.shape #(64,4,1024,1024)
data_allintegral = np.sum(data, axis=0)
data_allpols = np.sum(data_allintegral, axis=0)
data_allchans = np.sum(data_allpols, axis=0)
plt.plot(data_allchans)
plt.show()、
#设置主脉冲 on-pulse 范围,为主脉冲峰值点相位左右各30个bin
nums = 30
# main脉冲
mainmax_data = max(data_allchans)
mainmax_ind = np.where(data_allchans == mainmax_data)[0][0]
# secondary 脉冲
data_remove_mpulsa = np.concatenate((data_allchans[:mainmax_ind-nums],data_allchans[mainmax_ind+nums:]),axis = 0)
secmax_data = max(data_remove_mpulsa)
secmax_ind = np.where(data_allchans == secmax_data)[0][0]
print(mainmax_data, mainmax_ind )
print(secmax_data,secmax_ind)
脉冲双峰结构检测,python程序
最新推荐文章于 2023-10-07 21:09:44 发布