python中的z阶曲线(也称为morton阶)实现
pyzorder的Python项目详细描述
侏儒虫
z阶曲线的python实现(也称为morton阶)
z阶曲线将多维数据映射到一维。
使用z阶曲线,可以为dynamodb实现多维排序键,一次只允许一个排序键。 pyzorder有助于用z阶曲线数据实现测距索引。
(日)
什么是"z阶曲线"?
"z阶曲线"将多维数据映射到一维,同时保留数据点的局部性。 z值是通过交错输入值来计算的。
典型的用法是用于dynamodb,它一次只允许一个排序键。 例如,如果要使用X轴和Y轴索引数据, 可以用z阶曲线映射x和y,并将z阶数据作为排序键放入dynamodb表中。 但是,您必须关心"不必要的区域"。
(再次引用自z-order curve-wikipedia)
如果要访问(x=2,…,3,y=2,…,6),则相应的区域是虚线正方形。 按顺序访问Z阶曲线时,下一个值"15"应为"36"。 区域"16"到"35"是"不必要的区域"。 因此,您需要有效地处理这些"不必要的区域"。
pyzorder
实现下一个z order索引
它返回下一个有效的z阶值
您可以使用z阶曲线数据轻松实现区域索引访问。
next-zorder_index
是对tropf,h;herzog,h.(1981)的重新实现,python中的"动态平衡树中的多维范围搜索"。
下一个订单索引
在本文中显示为bigmin
。
用法
frompyzorderimportZOrderIndexerzi=ZOrderIndexer((2,3),(2,6))z_2_2=zi.zindex(2,2)# z_2_2 = 12zi.next_zorder_index(z_2_2)# return 13zi.next_zorder_index(15)# return 36
参考
- trevorprater/pymorton:一个轻量级高效的python morton编码器,支持地理哈希
- z-order curve-维基百科
- 亚马逊dynamodb中多方面查询的z-order索引:第1部分;AWS数据库博客
- 亚马逊dynamodb中多方面查询的z-order索引:第2部分;AWS数据库博客
- tropf,h.;herzog,h.(1981),"动态平衡树中的多维范围搜索"
蟒蛇目
z阶曲线(又称莫顿阶)python
Z阶曲线
二、发电机组、发电机组__可__。
"Z阶曲线"?
Z阶曲线 四、一、二、二、二、二、二、三、二、三、二、三、三、三、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四 他_次___同様_。
Z阶曲线正在实现配件。
(cited from Z-order curve - Wikipedia)
作为利用用途,对于像DynamoDB那样只能持有1个排序用索引的数据库, 当您想在多个列中实现索引时,可以使用此索引。 例如,x坐标, y坐标两者都需要索引的情况。 保存在z-order curve中交织的值,如果将该值作为排序键,就能够对二维数据进行索引。 但是,此时有一点需要注意。
(cited again from Z-order curve - Wikipedia)
(x=2, ..., 3, y=2, ..., 6)如果您想要访问该区域,则此图对应于虚线所包围的区域。 此时,按z-order的值顺序,z-order "15"之后成为范围以内的z-order "36"。 也就是说,如果访问这样的2维区域,不是单纯地追溯z-order的值,需要效率很好地处理这样的"飞地"。
pyzorder
是下一个有效的z-order"36"求next_z order_index
实装。
这使得您能够从z-order curve表示的数据中访问任何二维区域。
なお、next_zorder_index
を求めるアルゴリズムは Tropf, H.; Herzog, H. (1981), "Multidimensional Range Search in Dynamically Balanced Trees"
中提议的东西通过Python实现。(相当于论文中的BIGMIN
函数)
使用方法
αααα1参考
- trevorprater/pymorton: A lightweight and eficient Python Morton encoder with supporporporth suppporpporporporporportoporton suppporth suppporthoporth suppppporthortht for geo-hashing
- Tropf, H.; Herzog, H. (1981), "Multidimensional Range Search in Dynamically Balanced Trees"
- Z-order curve - Wikipedia
- Z-Order Indexing for Multifaceted Queries in Amazon DynamoDB: Part 1 | AWS Database Blog
- Z-order indexing for multifaceted queries in Amazon DynamoDB: Part 2 | AWS Database Blog