R-Tree

一、R-Tree树介绍

R树是一种空间索引结构,由对象的边界框与 id 来进行索引和查找,对空间中的物体进行查找时可以加快查找速度。R树对几何物体与信息进行查找时有特别明显的优势,边界框的形势如(llx,lly,rux,ruy)或者(llx,rux,lly,ruy)的一个最小边界矩形(MBR)。

R树是一种平衡树,树中的每个非叶子节点保存的是对象的边界框,而叶子节点保存的是我们插入的对象。对于R树的各种实现来说,每个节点的默认容量(也就是每个节点中保存的最大节点数量)影响着查找与搜索的效率。

二、python中Rtree的使用

python中有rtree的库,名字就叫做rtree,在使用时先构造rtree的索引,然后向索引中插入我们的对象和边界框,需要注意的是,往rtree中插入的对象必须是可以pickled的对象。

在python中rtree的默认值为100,当插入的数量大于100时,rtree就会分裂出一个新的节点来进行存储,并且会增加一层。

注:边界框的插入有特定的规则,当rtree的 interleaved 值为True时(默认值为True),最小边界框的形式如:

[xmin, ymin, ..., kmin, xmax, ymax, ..., kmax]

当interleaved的值为False时,最小边界框的形式如:

[xmin, xmax, ymin, ymax, ..., ..., kmin, kmax]

rtree的查询结果返回的是一个迭代器,我们可以拿到插入时的id、边界框,对象。

import rtree

tree = rtree.Rtree()
print(tree)
index = 0
for i in range(100):
    coord = (i-1, i-1, i, i)
    obj = i    # 我们插入的对象
    tree.insert(index, coord, obj)
    index += 1
print(tree)

# rtree的查找,边界框,是否查找对象:默认为False不查找
result = tree.intersection((0,0,1,1),objects=True)
# 结果是一个迭代器
result = list(result)
print(result)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/717188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BatchNormalization和Layer Normalization解析

Batch Normalization 是google团队2015年提出的,能够加速网络的收敛并提升准确率 1.Batch Normalization原理 图像预处理过程中通常会对图像进行标准化处理,能够加速网络的收敛,如下图所示,对于Conv1来说输入的就是满足某一分布…

Dart 弱引用进阶

前言 村里的老人说:“真正的强者,都是扮猪吃老虎。” 日常开发中经常需要用到弱引用,Dart 语言里也有提供弱引用的接口 WeakReference,我们可以基于它开发更强大的复杂结构。 在前面的文章中,我们用到了一个以弱引用…

无需配置MySQL,Navicat也有在线版了?

前言 随着互联网技术的飞速发展,远程办公和在线协作成为了新的趋势。为了满足这一需求,TitanIDE模板市场近日上线了Navicat模板,使得数据库管理变得更加便捷、高效。现在,用户只需在浏览器打开TitanIDE,即可轻松使用N…

2024年上网行为审计软件排名,推荐这五款上网行为管理软件

上网行为审计软件是企业IT管理中不可或缺的一部分,它们旨在帮助组织监控、管理、审计员工的互联网使用情况,确保网络资源的合理利用,提高工作效率,同时维护企业信息安全。下面将介绍几款市场上知名的上网行为审计软件,…

通用大模型VS垂直大模型 难兄难弟?

在互联网🌏背景下的快速发展与人工智能AI的崛起是21世纪科技进步的重要标志🏅, 近年来,随着计算能力的显著提升🚀、海量数据的积累以及算法创新,尤其是深度学习技术的突破,人工智能领域迎来了…

Windows 与 Java 环境下的 Redis 利用分析

1 前言 在最近的一次攻防演练中,遇到了两个未授权访问的 Redis 实例。起初以为可以直接利用,但后来发现竟然是Windows Java (Tomcat)。因为网上没有看到相关的利用文章,所以在经过摸索,成功解决之后决定简单写一写。 本文介绍了…

树莓派pico入坑笔记,快捷键键盘制作

使用usb_hid功能制作快捷键小键盘,定义了6个键,分别是 ctrlz ctrlv ctrlc ctrla ctrlw ctrln 对应引脚 board.GP4, board.GP8, board.GP13 board.GP28, board.GP20, board.GP17 需要用到的库,记得复制进单片机存储里面 然后是main主程…

【leetcode刷题】面试经典150题 88.合并两个有序数组

leetcode刷题 面试经典150 88. 合并两个有序数组 难度:简单 文章目录 一、题目内容二、自己实现代码2.1 实现思路2.2 实现代码2.3 结果分析 三、 官方解法3.1 直接合并后排序3.1.1 算法实现3.1.2 代码实现3.1.3 代码分析 3.2 双指针3.2.1 算法实现3.2.2 代码实现3.2…

列表(list)(Python)

文章目录 一、定义二、列表常用操作 一、定义 list ["张三", "李四", "王五", "赵六"]二、列表常用操作 分类关键字/函数/方法说明增加列表.append(值)在列表末尾追加值列表.insert(索引, 值)在指定位置插入值&#xff…

从11个视角看全球Rust程序员1/4:深度解读JetBrains最新报告

讲动人的故事,写懂人的代码 五个月前,编程界的大佬JetBrains发布了他们的全球开发者年度报告。 小吾从这份报告中找出了下面11个关于全球程序员如何使用Rust的有趣的趋势,让你学习和使用Rust更轻松。 1 这两年有多少程序员在工作中使用了Rust? 2 全球程序员使用Rust有多…

2024年数字媒体、新闻与管理国际会议(DMJM 2024)

2024年数字媒体、新闻与管理国际会议(DMJM 2024) 2024 International Conference on Digital Media, Journalism, and Management 【重要信息】 大会地点:长沙 大会官网:http://www.cdmjm.com 投稿邮箱:cdmjmsub-conf…

colab挂载googledrive云盘

参考: Google Colab简易\入门\常规\常用操作和命令_colab快捷键-CSDN博客 首先新建一个或者打开一个笔记本。 等待连接成功。 点击这个图标,变为如下这样: 挂载成功。 这里我是用现有的ipynb文件挂载: 他让我运行代码: 他会提示这个运行这…

相约北京“信通院数据智能大会”

推动企业数智化转型发展,凝聚产业共识,引领行业发展方向,摩斯将参与信通院首届“数据智能大会”(6月19-20日,北京)。 本次大会设置多个主题论坛,将发布多项研究成果,分享产业最新实…

微信核销通知地址设置返回:请开通回调通知产品权限

1.背景 微信代金券设置核销通知地址时返回: {"code":"REQUEST_BLOCKED","message":"请开通回调通知产品权限\n"} 2.解决方法 登录对应的微信商户号,然后访问如下链接: 微信支付 - 中国领先的第三方支付平台 | 微信支付提…

从11个视角看全球Rust程序员2/4:深度解读JetBrains最新报告

讲动人的故事,写懂人的代码 5 Rust代码最常使用什么协议与其他代码交互? REST API: 2022年:51%2023年:51%看上去REST API的使用比例挺稳定的,没啥变化。语言互操作性(Language Interop): 2022年:53%2023年:43%语言互操作性的比例在2023年下来了一些,掉了10个百分点…

编译器优化入门(基于ESP32)

主要参考资料: kimi: https://kimi.moonshot.cn/ ESP-IDF 支持多种编译器,但默认情况下,它使用的是乐鑫官方提供的 Xtensa 编译器,这是一个针对 ESP32 芯片架构(Tensilica Xtensa LX6 微处理器)优化的交叉编…

springboot应用启动太慢排查 半天才打印日志

springboot应用启动太慢排查 半天才打印日志 解决办法 hostnamectl 命令查看主机名 vim /etc/hosts 加上主机名配置 127.0.0.1 hostname

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 火星字符串(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

Elixir学习笔记——Erlang 库

Elixir 提供了与 Erlang 库的出色互操作性。事实上,Elixir 不鼓励简单地包装 Erlang 库,而是直接与 Erlang 代码交互。在本节中,我们将介绍一些 Elixir 中没有的最常见和最有用的 Erlang 功能。 Erlang 模块的命名约定与 Elixir 不同&#x…

电商风控指南 | 直播间里的藏匿的“羊毛党”,普通消费者看不到

目录 直播间里的羊毛党 电商要针对性进行防范 随着618网购节的开启,各大电商平台的直播间再次成为消费者关注的焦点。在5月20日的一场酒水电商直播中,主播仅用43分钟便实现了成交额破亿,售出3万瓶白酒。然而,这些“秒杀”特价商品…