python - 将多项式拟合到 35 阶数据
问题描述
我有 3 个数据文件;波长/像素、计数/像素和背景/像素。每个数据文件有多个订单(订单总数 = 35)。我需要将多项式拟合到背景/像素的每个顺序,然后计算每个顺序的计数/背景并绘制波长-vs-计数/背景。这是我到目前为止所做的
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 新手,所以任何帮助和建议将不胜感激。
谢谢你。
解决方案
推荐阅读
- maven - 使用 cmd 在“系统变量”“路径”中设置 MAVEN_HOME 时如何解决可见性问题
- vb.net - VB.NET - PS 管道 - 响应错误
- lua - 如何使用 Lua patten 获取所有字符串?
- geolocation - 如何处理地理位置弹出
- mysql - 如何更新层次连接表
- python - 如何检查一个元素是否存在于一组 4 个列表中的 3 个列表中
- java - 将 Java Map 代码更改为 VAVR (javaslang)
- android - 我可以同时使用 setupWithNavController 和 setOnNavigationItemSelectedListener
- git - 测试:HEAD [rejected-nonfast-forward] 错误,同时将更改从 anypoint studio 推送到 GIT
- clojure - Clojure 中的 `ISeqable` 是什么以及它与 `ISeq` (`clojure.lang.ISeq`) 有什么关系