将多项式拟合到 35 阶数据

问题描述

我有 3 个数据文件;波长/像素、计数/像素和背景/像素。每个数据文件有多个订单(订单总数 = 35)。我需要将多项式拟合到 background/pixels 的每个阶数,然后计算每个阶数的 counts/background 并绘制波长 -vs-counts/background。这是我目前所做的


import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits

# Load and open FITS files
counts_image = ("counts.fits")
wavelength_image = ("wavelength.fits")
background_image = ("backgound.fits")

sp = fits.open(counts_image)
sp_w = fits.open(wavelength_image)
sp_b = fits.open(background_image)

# Array data
counts = np.array(sp[0].data)
wave = np.array(sp_w[0].data)
background = np.array(sp_b[0].data)

# Perform fit for each order number (0-34)
order_number = 27 

# 4th order polynomial
coeffs = np.polyfit(wave[order_number],backgound[order_number],deg=4)
poly = np.poly1d(coeffs)
yp = np.polyval(poly,wave[order_number])
plt.plot(wave[order_number],yp)

# Counts/background fit
counts_fit = counts[order_number]/yp

# Plotting
plt.figure()
plt.plot(wave[order_number],counts_fit)

在这适用于一个订单号。如何扩展订单以适应所有 35 个订单,从而生成一个图?我是 python 的新手,所以任何帮助和建议将不胜感激。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)