二维数据的梯度正交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 JList侦听器找不到符号   多点触摸跨平台java应用程序(Windows、Mac和Linux(Ubuntu)(可能是Android))   在UnitTest中找不到java类加载器资源   java当我尝试在Eclipse中运行我的minecraft mod时,我总是遇到这个错误,这是什么意思?   内部有一个同步块的静态方法,在java中阻止整个类?   不支持java操作:具有BillableStatus的费用在采购中应具有AccountBasedExpenseLineDetail行的CustomerRef   java运行时常量池GC集合   java无法解析配置“:app:\u debugApk”的所有依赖项。找不到名为“default”的配置   在GCP计算引擎中托管Neo4j的java   java如何从BroadcastReceiver更新片段选项卡?   线程“main”组织中的java异常。冬眠注释异常:@org。冬眠注释。表引用未知表:ProductForPractice   在Java/Groovy中嵌入处理   java Android REST教程/示例项目   java我可以在同一测试中在一个模拟器上启动应用程序,在另一个模拟器上启动移动浏览器吗?   java如何更改通知横幅的方向?   安卓 Java帮助实现Firebase授权   if else之后的rs.next()中出现java错误?