跳转到主要内容

一个简单的Python模块,包含一个用C++优化的原地线性排名滤波器。

项目描述

Travis Build Status License PyPI Release conda-forge Release Join the chat at https://gitter.im/nanshe-org/rank_filter


Rank Filter

动机

此软件包旨在提供一个高效的C++编写的线性排名滤波器,并带有Python绑定。它可以接受单精度或双精度浮点数作为输入。这是必需的,因为在SciPy中发现的等效百分位数滤波器被发现太慢且过于通用。VIGRA中没有等效的。

需求

为了构建此软件包,需要以下需求。

  1. Python (2.7.x 或 3.5.x)

  2. Boost (1.56.0 或更高版本)

  3. NumPy (1.7.0 或更高版本)

  4. Cython (0.23.0 或更高版本)

  5. Setuptools (18.0 或更高版本)

安装

最简单的方法是安装我们的 conda 软件包。或者,也可以从 pip 安装,但需要C++编译器和较新版本的 setuptools

构建

有多种方法可以构建此软件包。

  1. 标准的Python构建和安装。

  2. Conda配方构建和安装。

  3. CMake构建和安装。

任何这些形式的纯安装基本上应该是等效的。

入门

要开始,只需克隆存储库并将目录更改为存储库。

git clone https://github.com/nanshe-org/rank_filter
cd rank_filter

使用Python

要直接使用Python构建/安装,只需运行以下命令。

python setup.py install

使用Conda

要使用Conda构建/安装,只需运行以下命令。

conda build rank_filter.recipe
conda install --use-local rank_filter.

使用CMake

为了找到Boost包含文件和库,必须将安装Boost的目录设置为BOOST_ROOT

cmake -DBOOST_ROOT=<path-to-Boost-root> .

此外,如果这些变量在环境中已设置,则CMake安装程序也会获取它们。

export BOOST_ROOT=<path-to-Boost-root>
cmake .

此外,可以通过使用PYTHON_EXECUTABLE变量来设置首选的Python解释器。

检查

在构建Python绑定之前,检查C++代码是否通过其自己的测试套件是有意义的。可以使用以下命令使用make来完成。这一步不是必需的,但在构建时总是会运行。这些测试并不能保证Python模块会正常工作。它们只是验证C++代码是否正常工作。

make check
构建

使用make可以轻松地完成构建。这将在slib目录中创建一个共享对象,该对象可以作为模块被Python导入。如检查部分所述,将首先运行C++测试。如果它们失败,则不会构建Python模块。它们并不保证Python模块会工作。相反,测试阶段可以用来验证模块。

make
测试

一旦构建了Python模块,就值得测试它是否正常工作。可以使用以下命令使用make来完成。与C++测试不同,这些是使用nose运行的Python测试。这些测试是C++测试的Python等价物。它们不仅验证基本命令是否运行,而且还确保只有正确的结果才会通过。

make test
安装

构建和测试后,就是安装的时候了。使用make,以下命令将模块安装到指定的Python的site-package文件夹中,允许使用该Python导入此模块。

make install
清理

有关清理有一些额外的选项。可以清理所有构建中间文件(包括CMake生成的文件),只留下最终构建产品。这是通过以下方式实现的。

make distclean

如果希望同时消除构建产品和所有中间文件,则可以使用以下方式。

make reset

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

rank_filter-0.5.2.tar.gz (24.8 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面