python中的z阶曲线(也称为morton阶)实现

pyzorder的Python项目详细描述


侏儒虫

z阶曲线的python实现(也称为morton阶)

z阶曲线将多维数据映射到一维。

使用z阶曲线,可以为dynamodb实现多维排序键,一次只允许一个排序键。 pyzorder有助于用z阶曲线数据实现测距索引。

(日)

什么是"z阶曲线"?

"z阶曲线"将多维数据映射到一维,同时保留数据点的局部性。 z值是通过交错输入值来计算的。

 src= (引自z-order curve-维基百科

典型的用法是用于dynamodb,它一次只允许一个排序键。 例如,如果要使用X轴和Y轴索引数据, 可以用z阶曲线映射x和y,并将z阶数据作为排序键放入dynamodb表中。 但是,您必须关心"不必要的区域"。

 src= (再次引用自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

参考

蟒蛇目

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

参考

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

推荐PyPI第三方库


热门话题
Java:不解析XML的简单XML。例外   KIE Workbench的java自定义UI   java将元素从bucket移动到LinkedList,但有一个元素被完全删除   如何将java stream collect转换为scala   java运行AsynkTask多次不工作   java组织。xml。萨克斯。SAXParseException:cvccomplextype。2.4.c:匹配的通配符是严格的   java是一种计算排序算法所需时间的合适方法   java在O(logn)时间内对排序整数数组中具有相同数字的数字进行计数   xpages从当前数据库javaAgent调用另一个数据库的javaAgent   java如何在instagram中上传特定位置的所有照片   JavaApachePOI可以有效地删除多个列   java创建的对象数   java我可以在关闭连接时关闭Oracle JDBC自动提交吗?