检测可疑openstreetmap变更集的python包
osmcha的Python项目详细描述
Osmcha
osm变更集分析器osmcha是一个python包,用于检测可疑的osm变更集。 它设计用于osmcha-django, 但也可以单独使用或在其他项目中使用。
您可以在 osmcha-frontend repository。
安装
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。我们用一份非法来源清单来分析 source和imagery_used字段以及要检查的另一个更一般的列表 注释字段。我们还有一个排除词的列表,以避免误报。
新映射器
验证用户的编辑时间是否少于5天或映射时间是否少于5天。
用户有多个块
由接收到多个块的用户创建的变更集将是 已标记。
测试
在OSMCHA上运行测试
git clone https://github.com/willemarcel/osmcha.git
cd osmcha
pip install -e .[test]
py.test -v
更改日志
检查CHANGELOG以获取版本历史记录。
许可证
gplv3