检测可疑openstreetmap变更集的python包

osmcha的Python项目详细描述


Osmcha

osm变更集分析器osmcha是一个python包,用于检测可疑的osm变更集。 它设计用于osmcha-django, 但也可以单独使用或在其他项目中使用。

您可以在 osmcha-frontend repository

https://badge.fury.io/py/osmcha.svghttps://travis-ci.org/willemarcel/osmcha.svghttps://coveralls.io/repos/willemarcel/osmcha/badge.svg

安装

pip install osmcha

用法

python库

你可以阅读replication changeset file 直接从网络:

c=ChangesetList('https://planet.openstreetmap.org/replication/changesets/002/236/374.osm.gz')

或者从本地文件系统。

c=ChangesetList('tests/245.osm.gz')

c.changesets将返回一个列表,其中包含文件中列出的所有变更集的数据。

您可以使用 将兴趣区域设置为第二个参数。

最后,要分析特定的变更集,请执行以下操作:

ch=Analyse(changeset_id)ch.full_analysis()

自定义检测规则

在以下情况下,可以通过定义首选值自定义检测规则 初始化Analyze类。请参见下面的默认值。

ch=Analyse(changeset_id,create_threshold=200,modify_threshold=200,delete_threshold=30,percentage=0.7,top_threshold=1000,suspect_words=[...],illegal_sources=[...],excluded_words=[...])

命令行界面

命令行接口可用于直接验证特定的变更集 从终点站。

用法:osmcha <changeset_id>

检测规则

osmcha通过分析变更集创建、修改了多少映射特性来工作 或者删除,并通过验证comment中是否存在某些可疑单词, ^变更集的{tt7}$和imagery_used字段。此外,我们还 考虑使用的软件编辑器是否允许导入数据或进行批量编辑。 我们考虑powerfull editors:josm、merkaartor、level0、qgis和arcgis。

Usage部分,您可以看到如何自定义这些检测规则。

可能的导入

如果创建的元素数为 大于创建、修改和删除的元素总数的70%,如果 使用powerfull editors之一创建1000多个元素或200个元素。

质量修正

如果修改元素的数量 大于创建、修改和删除的元素总数的70%,如果 修改超过200个元素。

大量缺失

删除超过1000个元素的所有变更集都被视为mass deletion。 如果变更集删除200到1000个元素,并且删除的元素数 元素大于创建、修改和删除的元素总数的70% 它还被标记为mass deletion

可疑词

可疑词是从a yaml file加载的。 您可以通过使用环境设置另一个默认文件来自定义单词 变量:

export SUSPECT_WORDS=<path_to_the_file>

或者将单词列表传递给Analyse类,有关该节的更多信息 Customizing Detection Rules。我们用一份非法来源清单来分析 sourceimagery_used字段以及要检查的另一个更一般的列表 注释字段。我们还有一个排除词的列表,以避免误报。

新映射器

验证用户的编辑时间是否少于5天或映射时间是否少于5天。

用户有多个块

由接收到多个块的用户创建的变更集将是 已标记。

未知的id实例

验证使用id editor创建的变更集以检查主机实例。受信任的 id实例是:OSM.orgStravaImproveOSMiDeditorHeyMapcatiD indoorSoftekRapiD

如果您为一个组织部署了一个id实例,请让我们知道,这样我们就可以白名单它。

测试

在OSMCHA上运行测试

git clone https://github.com/willemarcel/osmcha.git
cd osmcha
pip install -e .[test]
py.test -v

更改日志

检查CHANGELOG以获取版本历史记录。

许可证

gplv3

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

推荐PyPI第三方库


热门话题
数据库java操作符是如何工作的?   带有JSON迭代器的java类型安全警告   java@NotNull类型注释Solrj   JDBC无法将19y旧Java连接到新的SQL Server。它在旧服务器上运行良好   java两个线程获得相同的值   java阶乘方法工作不好!   java Android体系结构决策   java如何使用JSON中的@RequestBody绑定自定义对象的映射   java Android ActionBarSherlock定制topbar?   java自定义DozerConverter仅在SpringBoot测试中调用   java为什么Hibernate试图映射@Transient方法?   MongoDB Java自己的编解码器不工作   java无法从MySQL中的存储引擎读取自动增量值   java使用SwingFXUtils将BuffereImage(awt)转换为Image(JavaFx)   java Camel hdfs2到文件协议文件传输   java什么是GZIP JSFSeam web应用程序页面的最佳方法