二维数据的梯度正交q多项式拟合

Scikit-Qfit的Python项目详细描述


scikit-qfit是一个支持将梯度正交q多项式拟合到2d数据的软件包。

说明

此包实现了中描述的算法:

有关q-自由形式多项式的其他项目文档和参考资料,请访问: http://scikit-qfit.readthedocs.org/

安装

该软件包可以通过pip安装:

> pip install scikit-qfit

用法

若要从数据映射生成无q形式的频谱,请传递坐标数组x和y以及 以shape(x.size,y.size)作为qspec()方法参数的数据。方位和径向光谱 极限分别由m_max和n_max设置。

>>> import skqfit.qspectre as qf
>>> ...
>>> qspec = qf.qspec(x, y, zmap, m_max=500, n_max=500)

为了观察光谱成分的贡献,有必要在正向处理步骤中使用正弦和余弦元素。 在修改光谱之后,逆过程将创建一个数据映射以及x和y导数。

>>> qs = qf.QSpectrum()
>>> qs.data_map(x, y, zmap)
>>> a_nm, b_nm = qs.q_fit(mmax, nmax)
>>> ... # modify spectrum
>>> nmap, dfdx, dfdy = qs.build_map(x, y, a_nm, b_nm, inc_deriv=True)

通过传递一组表示 (x,y)坐标。

>>> zv, dfdx, dfdy = qs.build_profile(xv, yv, a_nm, b_nm, inc_deriv=True)

限制

该算法所需的雅可比多项式计算可以产生非常大的数目,从而限制了光谱分辨率。 对于径向和方位项(n,m)的最大值为1500。使用大于此值的值可能导致溢出。 如果数据映射的标称光谱分辨率大于此限制,则应在处理之前过滤数据 以避免混淆。

注意,这个过程是一个n^2算法,因此将径向项和方位项的数目加倍需要四倍的时间。

依赖关系

该软件包需要numpy和scipy,并在linux上使用:

  • Python 2.7.6
  • numpy 1.14.5
  • scipy 1.0.0

这些python、numpy和scipy版本在测试时可以在ubuntu 18.04linux版本上获得。 这个包已经用Python3.6成功地进行了非正式测试,我不知道为什么它不应该使用 这些包的后续版本。

确认

  • 格雷格福布斯支持算法的实现和验证。
  • andreas beutler,Mahr GmbH,用于选择将此工作作为开放源码提供。

此项目是使用PyScaffold 3.2.1建立的。详细信息和用法 有关pyscaffold的信息,请参见https://pyscaffold.org/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓 studio中使用调用jaxws web服务的jar文件   java双时间模拟时钟不打印两个不同的时间   java Jackson反序列化处理不带字段的生成值   多线程在java同步中读锁的目的是什么   为什么java中有这么多获取日期时间的方法?   java从listview中的TextView获取数据   java是否可以定义如何对枚举进行(反)序列化以在枚举内持久化?   Java:异常处理我的catch()有问题   VMWare java SDK:可用的PerfMetricID何时不报告数据?   exec在Java中执行命令而不重定向输出   java使用SpringXML配置实现观察者模式?   java在竹笔平板电脑中使用JPen