python - 如何使用 Python 计算 FWHM?
问题描述
我正在开发一个 python 系统,我需要计算图形 FWHM,其中用户说出 X 和 Y 轴的 txt 文件(我将轴保存在 2 个列表 xList 和 yList2 中)。我运行了两个图形,得到的结果是:30.918nm(正确值:34.786 nm)和 76.601nm(正确值:74.710nm)。我正在使用这个解决方案:使用 python 进行 FWHM 计算。我的代码是:
import numpy as np
def lin_interp(x, y, i, half):
return x[i] + (x[i+1] - x[i]) * ((half - y[i]) / (y[i+1] - y[i]))
class FWHM:
def __init__(self, xList, yList2):
self.xList = xList
self.yList2 = yList2
#pega os valores máximo e mínimo do eixo Y e divide por 2
y_min = (min(yList2))
y_max = (max(yList2))
med_y = ((y_max-y_min)/2)
#cálculo para descobrir os pontos (x1 e x2) que estão à meia altura
signs = np.sign(np.add(yList2, -med_y))
zero_crossings = (signs[0:-2] != signs[1:-1])
zero_crossings_i = np.where(zero_crossings)[0]
x1 = lin_interp(xList, yList2, zero_crossings_i[1], med_y)
x2 = lin_interp(xList, yList2, zero_crossings_i[0], med_y)
#printa os pontos do eixo X e o FWHM
print(x1, x2, abs(x1-x2))
解决方案
推荐阅读
- mysql - 如何对具有日期范围的别名字段求和
- git - git fork 实际上是如何工作的?
- c++ - 如何让 clang-tidy 一个接一个地依次应用 FixItHints?
- android - 将图像作为(字节数组)从android上传到asp.net mvc服务器
- apache-spark - HBase + Spark:Dataframe 不将现有列值替换为相同 RowKey 的空值
- python - 在生产中从 python 金字塔项目部署/重新加载代码
- android - 当应用程序在 android pie (API 28) 中被杀死时检测网络状态并从后台上传视频数据
- ssl - Hyperledger Fabric SDK 未启动 TLS 握手
- msbuild - 错误:多个包与指定模式匹配:D:\a\r1\a\**\*.zip。请限制搜索模式
- django - 我有缩进错误。如何修复它......?