CN111914043B - 时空数据编码方法及装置、存储介质、计算设备 - Google Patents
时空数据编码方法及装置、存储介质、计算设备 Download PDFInfo
- Publication number
- CN111914043B CN111914043B CN202010479064.XA CN202010479064A CN111914043B CN 111914043 B CN111914043 B CN 111914043B CN 202010479064 A CN202010479064 A CN 202010479064A CN 111914043 B CN111914043 B CN 111914043B
- Authority
- CN
- China
- Prior art keywords
- space
- vertex
- curve
- dimensional
- subspace
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000010276 construction Methods 0.000 claims description 136
- 238000013507 mapping Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 9
- 230000009466 transformation Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000002372 labelling Methods 0.000 claims description 2
- 238000001914 filtration Methods 0.000 abstract description 7
- 230000035772 mutation Effects 0.000 abstract description 5
- 230000001133 acceleration Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Geometry (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种时空数据编码方法及装置、存储介质、计算设备。其中,该方法包括:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。本发明解决了将Z填充曲线作为空间填充曲线,虽然Z填充曲线的编码能够对时空空间进行连续编码,但是在空间填充曲线的拐点处存在空间上不相邻,具有明显的突变性,导致在做邻近查询时需要增加二次过滤的工作量的技术问题。
Description
技术领域
本发明涉及数据编码领域,具体而言,涉及一种时空数据编码方法及装置、存储介质、计算设备。
背景技术
既有空间属性又有时间属性的数据称为时空数据。随着各类具有定位功能的设备,如手机、智能手表、车载GPS等在生活及生产中应用,每天产生大量轨迹数据,这些轨迹数据反映了人们生活和经济活动的规律,对广告投放、商业选址、人口管理、交通管理、城市规划等应用有非常大的价值。这些轨迹数据都具有空间属性(经纬度)和时间属性(时间戳),具有明显的高维特征,是一种典型时空数据。对于这些庞大轨迹数据量需要有合适的索引支撑才能有效节约计算资源并降低处理时间。
轨迹数据索引分为两类:高维索引和一维编码索引,高维索引典型代表是R-Tree和KD-Tree,一维编码索引代表是空间填充曲线索引。高维索引是以维度空间划分为基础,在维度区间内做范围检索;一维编码索引是以空间填充曲线为基础(对空间做规则分割获得规则格网,然后再用一条不间断、不自相交的曲线穿越这些格网,每一个格网对应一个节点),对曲线中的节点赋予唯一编码,再使用B+-Tree或前缀树存储编码索引项。
典型的空间填充曲线主要有Z填充曲线和Hilbert填充曲线。空间填充曲线的阶数(即空间分割的级数)代表曲线逼近的精度,阶数越高则单位区域内填充的曲线越密集,曲线的精度就越高。图1是二维Z填充曲线,从左至右,由上到下代表1阶(空间被4等分)、2阶(空间被16等分)、3阶(空间被64等分)和4阶(空间被256等分)填充曲线;图2是三维Z填充曲线,图3是二维Hilbert填充曲线(从左至右,由上到下代表1阶至6阶),图4是三维Hilbert填充曲线(从左至右,由上到下代表1阶至4阶)。通过对填充曲线中的节点赋予唯一编码来代表空间位置,图5是一种Z填充曲线的编码(把二进制用Base32编码转换就得到经典的GeoHash编码,也称为Z3编码)。如何对曲线中的节点做编码的本质是如何建立高维空间与一维空间的映射关系。这类编码需要特殊设计才能满足需求,是需要解决的核心问题。
现阶段,将Z填充曲线作为空间填充曲线,虽然如图5所示的Z填充曲线的编码(Z3编码)能够对时空空间进行连续编码,但是在空间填充曲线的拐点处存在空间上不相邻,具有明显的突变性(“Z型”突变),这导致在做邻近查询时需要增加二次过滤的工作量。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种时空数据编码方法及装置、存储介质、计算设备,以至少解决将Z填充曲线作为空间填充曲线,虽然Z填充曲线的编码能够对时空空间进行连续编码,但是在空间填充曲线的拐点处存在空间上不相邻,具有明显的突变性,导致在做邻近查询时需要增加二次过滤的工作量的技术问题。
根据本发明实施例的一个方面,提供了一种时空数据编码方法,包括:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,所述子空间几何体中的顶点为所述次级顶点,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
根据本发明实施例的另一方面,还提供了另一种时空数据编码方法,包括:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;基于多个子空间几何体将空间填充曲线对应的时空编码信息转换为一维编码信息。
根据本发明实施例的另一方面,还提供了一种时空数据编码装置,包括:分解模块,用于将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体;分割模块,用于对空间几何体按照预设阶数进行分割,得到多个子空间几何体;转换模块,用于对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,所述子空间几何体中的顶点为所述次级顶点,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;拼接模块,用于对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
根据本发明实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以上的时空数据编码方法。
根据本发明实施例的再一方面,还提供了一种计算设备,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,所述子空间几何体中的顶点为所述次级顶点,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
在本发明实施例中,采用将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据的方式,通过选择Hilbert三维曲线作为空间填充曲线,并对该空间填充曲线进行编码,克服了Z填充曲线编码能够对时空空间进行连续编码,而在空间填充曲线的拐点处存在空间上不相邻问题,从而实现了编码邻近的项一定是时空邻近的,做邻近计算时不需要增加额外的过滤计算的技术效果,进而解决了将Z填充曲线作为空间填充曲线,虽然Z填充曲线的编码能够对时空空间进行连续编码,但是在空间填充曲线的拐点处存在空间上不相邻,具有明显的突变性,导致在做邻近查询时需要增加二次过滤的工作量的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本申请实施例的一种二维Z填充曲线的示意图;
图2是根据本申请实施例的一种三维Z填充曲线的示意图;
图3是根据本申请实施例的一种二维Hilbert填充曲线的示意图;
图4是根据本申请实施例的一种三维Hilbert填充曲线的示意图;
图5示出了一种Z填充曲线的编码;
图6示出了一种用于实现时空数据编码方法的计算机终端(或移动设备)的硬件结构框图;
图7是根据本发明实施例的一种时空数据编码方法的流程图;
图8是根据本申请实施例的一种基本构造单元的结构示意图;
图9是根据本申请实施例的一种加速映射表生成流程图;
图10是根据本申请实施例的一种将时空坐标转换为一维时空编码的流程图;
图11是根据本申请实施例的一种Z3编码的流程图;
图12是根据本申请实施例的另一种时空数据编码方法的流程图;
图13是根据本申请实施例的一种时空数据编码装置的结构图;
图14是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
编码:是信息从一种形式或格式转换为另一种形式的过程。
时空数据:既有空间属性又有时间属性的数据。
Base32编码:是使用32个可打印字符(字母A-Z和数字2-7)对任意字节数据进行编码的方案,编码后的字符串不用区分大小写并排除了容易混淆的字符,可以方便地由人类使用并由计算机处理。
自相交:一条线存在两个以上的交点。
空间填充曲线:是一条连续曲线,这条曲线不自相交,而且穿越空间所有规则格网。
Hilbert空间填充曲线:只要恰当选择函数,画出一条连续的参数曲线,当参数t在[0,1]区间取值时,曲线将遍历单位正方形中所有的点,得到一条充满空间的曲线。希尔伯特曲线是一条连续而又不可导的曲线。
投影:是两个面上的点与点的对应关系,从一个面上的点,映射到另外一个面上的点。
构造单元:填充曲线的组成部分,对应一段填充曲线。
Z3编码:Z3编码建立在Z型编码之上(Morton码),是二维Z编码的扩展。二维Z编码又称Z2编码,是对二维Z填充曲线(如图1所示)中每一个节点赋予唯一值即编码值(如图5所示),这些值按照顺序增加,即按照“Z”的行进方向,编码值逐次增加。Z3编码是对三维Z填充曲线中每一个节点赋予唯一值,依然按照曲线的行进方向编码值逐渐增加。
Z3编码是对三维空间(x,y,t)中每一个位置赋予一维有序值,这里x,y对应地理空间坐标即经度和纬度,而t对应时间坐标即时间戳。下面详细阐述Z3编码技术流程,流程图如图11所示。
整个编码有6个主要步骤构成,下面逐一说明每一个步骤。
步骤S1101,设置分割输入点是(x,y,t),按照空间精度确定空间分割的级数(Level),级数越高,对应的空间精度就越高,通常分割的最大级数设为12;
步骤S1102,设定时间t的间粒度和取值范围,这里假设t的最小粒度为小时,取值范围[0,24*365]即[0,8760],用Buffer存储编码,计迭代累计次数count=0;
步骤S1103,如果count>=Level,则转入步骤S1106;
步骤S1104,对纬度、经度、时间区间做二等分,分别得到左右区间(对三维空间做递归划分),纬度初始区间是[-90,90],经度的初始区间[-180,180],时间区间[0,8760];
步骤S1105,分别判断x,y,t所属区间并输出标记,如果x属于纬度右区间输出1,否则输出0;如果y属于经度右区间则输出1,否则输出0;如果t属于右区间输出1,否则输出0;按照顺序追加到Buffer;count累加1,返回步骤S1103;
步骤S1106,编码结束Buffer中存储的0,1码序列即为点(x,y,t)的Z3编码。
实施例1
根据本发明实施例,还提供了一种时空数据编码的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图6示出了一种用于实现时空数据编码方法的计算机终端(或移动设备)的硬件结构框图。如图6所示,计算机终端60(或移动设备60)可以包括一个或多个(图中采用602a、602b,……,602n来示出)处理器602(处理器602可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器604、以及用于通信功能的传输模块606。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端60还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
应当注意到的是上述一个或多个处理器602和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端60(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器604可用于存储应用软件的软件程序以及模块,如本发明实施例中的时空数据编码方法对应的程序指令/数据存储装置,处理器602通过运行存储在存储器604内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的时空数据编码方法。存储器604可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器604可进一步包括相对于处理器602远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端60。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端60的通信供应商提供的无线网络。在一个实例中,传输模块606包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块606可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端60(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图7所示的时空数据编码方法。图7是根据本申请实施例1的一种时空数据编码方法的流程图,如图7所示,该方法包括以下步骤:
步骤S702,将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元。
根据本申请的一个可选的实施例,步骤S702中的空间填充曲线为Hilbert三维曲线。
Hilbert三维曲线作为空间填充曲线的编码结构由96个bit组成,其中最高2个bit表示空间变换方式,紧接着3个bit表示所属投影面,后面90个bit表示空间位置,最后1个bit是标识位。标识位是1代表当前编码为叶子,0是非叶子(叶子是最大阶分割后得到的立方体)。
执行步骤S702是为了把一条复杂的填充曲线分解成易于处理部分。具体的,三维Hilbert填充曲线存在自相似性,可以把一条填充曲线分解成若干子曲线的组合,每一条子曲线对应一个分解单元,这里设定每一个分解单元对应一个立方体,把一个立方体对应的填充结构称为基本构造单元。需要说明的是,上述立方体也可以用球体、长方体、三棱锥代替。
在本申实施例中,基本构造单元是一个立方体,设定立方体8个顶点局部坐标分别是(0,0,0),(1,0,0),(1,1,0),(0,1,0),(0,0,1),(1,0,1),(1,1,1),(0,1,1),如图8所示的基本构造单元的结构示意图。对这8个顶点做标记,映射关系如下:
(0,0,0)->0,(1,0,0)->4,(1,1,0)->6,(0,1,0)->2,(0,0,1)->1,(1,0,1)->5,(1,1,1)->7,(0,1,1)->3。
0为顶点(0,0,0)的编码值,4为顶点(1,0,0)的编码值,如图8所示。
步骤S704,对空间几何体按照预设阶数进行分割,得到多个子空间几何体。
步骤S706,对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,子空间几何体中的顶点为次级顶点,即子空间几何体中的顶点被称为次级顶点,一维编码信息每个顶点坐标中均包括:时间信息和空间信息。
步骤S708,对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
通过上述方法,通过选择Hilbert三维曲线作为空间填充曲线,并对该空间填充曲线进行编码,克服了Z填充曲线编码能够对时空空间进行连续编码,而在空间填充曲线的拐点处存在空间上不相邻问题,从而实现了编码邻近的项一定是时空邻近的,做邻近计算时不需要增加额外的过滤计算的技术效果。
根据本申请的一个可选的实施例,步骤S704通过以下方法实现:按照空间填充曲线经过空间几何体的初级顶点的顺序,对空间几何体进行标记,得到多个构造单元,其中,多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中空间填充曲线经过各个初级顶点的顺序不同;对多个构造单元对应的空间几何体按照预设阶数进行分割,得到多个子空间几何体。
根据本申请的一个可选的实施例,按照空间填充曲线经过空间几何体的初级顶点的顺序,对空间几何体进行标记,得到多个构造单元,包括:获取空间几何体的初级顶点的坐标,其中,初级顶点坐标中均包括:时间信息和空间信息;将初级顶点的坐标转换为一维编码信息,并采用一维编码信息对初级顶点进行标记;依据初级顶点的标记确定每个空间几何体的构造信息,并对构造信息进行标记,得到多个构造单元,其中,构造信息中包括子曲线经过的初级顶点和经过初级顶点的顺序信息。其中,初级顶点被定义为空间几何体的顶点。
在本步骤中,按照填充曲线经过顶点的顺序,对基本构造单元(即上面子曲线对应的空间几何体)进行标记,总计有24个,如下所述。立方体有8个顶点,每一种画法为:
构造单元C0:{3,2,6,7,5,4,0,1};
构造单元C1:{0,1,5,4,6,7,3,2};
构造单元C2:{0,2,3,1,5,7,6,4};
构造单元C3:{5,7,6,4,0,2,3,1};
构造单元C4:{0,2,6,4,5,7,3,1};
构造单元C5:{6,2,3,7,5,1,0,4};
构造单元C6:{5,1,0,4,6,2,3,7};
构造单元C7:{5,1,3,7,6,2,0,4};
构造单元C8:{6,2,0,4,5,1,3,7};
构造单元C9:{0,4,5,1,3,7,6,2};
构造单元C10:{3,7,6,2,0,4,5,1};
构造单元C11:{0,4,6,2,3,7,5,1};
构造单元C12:{3,7,5,1,0,4,6,2};
构造单元C13:{5,4,0,1,3,2,6,7};
构造单元C14:{5,4,6,7,3,2,0,1};
构造单元C15:{3,2,0,1,5,4,6,7};
构造单元C16:{6,7,3,2,0,1,5,4};
构造单元C17:{0,1,3,2,6,7,5,4};
构造单元C18:{6,7,5,4,0,1,3,2};
构造单元C19:{5,7,3,1,0,2,6,4};
构造单元C20:{3,1,0,2,6,4,5,7};
构造单元C21:{6,4,5,7,3,1,0,2};
构造单元C22:{3,1,5,7,6,4,0,2};
构造单元C23:{6,4,0,2,3,1,5,7};
设定C4为单位构造单元。24个构造单元,先构造C4,以其为基准,对C4进行变换得到其余23个。每个构造单元的{}中的顶点顺序(即从左到右的排列顺序是填充曲线经过顶点的顺序)
在本申请的一个可选的实施例中,执行步骤S704时,在进行任意一阶变换时,从多个构造单元中选择预设数量个构造单元作为初始构造单元,其中,预设数量个构造单元中包括部分重复的构造单元;在每个构造单元对应的空间几何体的每个顶点处,按照初始构造单元的属性对空间几何体再次进行分割,得到子空间几何体,其中,子空间几何体对应的初始子构造单元包括:初始子构造单元的父节点的构造信息和初始子构造单元的当前构造信息,属性为空间填充曲线经过空间几何体的顶点的顺序;将初始子构造单元转换为以目标构造单元为构造基准的构造单元,以保证填充曲线的连续性,其中,目标构造单元为从多个构造单元中选择的构造单元。
执行本步骤是为了控制填充曲线走向。当前构造单元为C(构造单元C为上述24种基本构造单元之一),对C做再分割得到8个初始构造单元{C1,C2,C4,C0,C1,C4,C3,C0},这8个初始构造单元的最终结构由如下映射规则设定。立方体划分,每个顶点有8个小立方体。
(C0,C0)->C4;(C0,C1)->C22;(C0,C2)->C5;(C0,C3)->C10;(C0,C4)->C0;
(C1,C0)->C22;(C1,C1)->C4;(C1,C2)->C9;(C1,C3)->C6;(C1,C4)->C1;
(C2,C0)->C15;(C2,C1)->C17;(C2,C2)->C4;(C2,C3)->C19;(C2,C4)->C2;
(C3,C0)->C14;(C3,C1)->C18;(C3,C2)->C19;(C3,C3)->C4;(C3,C4)->C3;
(C4,C0)->C0;(C4,C1)->C1;(C4,C2)->C2;(C4,C3)->C3;(C4,C4)->C4;
(C5,C0)->C8;(C5,C1)->C7;(C5,C2)->C0;(C5,C3)->C16;(C5,C4)->C5;
(C6,C0)->C7;(C6,C1)->C8;(C6,C2)->C13;(C6,C3)->C1;(C6,C4)->C6;
(C7,C0)->C6;(C7,C1)->C5;(C7,C2)->C14;(C7,C3)->C17;(C7,C4)->C7;
(C8,C0)->C5;(C8,C1)->C6;(C8,C2)->C15;(C8,C3)->C18;(C8,C4)->C8;
(C9,C0)->C12;(C9,C1)->C11;(C9,C2)->C1;(C9,C3)->C13;(C9,C4)->C9;
(C10,C0)->C11;(C10,C1)->C12;(C10,C2)->C16;(C10,C3)->C0;(C10,C4)->C10;
(C11,C0)->C10;(C11,C1)->C9;(C11,C2)->C17;(C11,C3)->C14;(C11,C4)->C11;
(C12,C0)->C9;(C12,C1)->C10;(C12,C2)->C18;(C12,C3)->C15;(C12,C4)->C12;
(C13,C0)->C19;(C13,C1)->C23;(C13,C2)->C6;(C13,C3)->C9;(C1,C4)->C13;
(C14,C0)->C3;(C14,C1)->C21;(C14,C2)->C7;(C14,C3)->C11;(C1,C4)->C14;
(C15,C0)->C2;(C15,C1)->C20;(C15,C2)->C8;(C15,C3)->C12;(C1,C4)->C15;
(C16,C0)->C23;(C16,C1)->C19;(C16,C2)->C10;(C16,C3)->C5;(C16,C4)->C16;
(C17,C0)->C20;(C17,C1)->C2;(C17,C2)->C11;(C17,C3)->C7;(C17,C4)->C17;
(C18,C0)->C21;(C18,C1)->C3;(C18,C2)->C12;(C18,C3)->C8;(C18,C4)->C18;
(C19,C0)->C13;(C19,C1)->C16;(C19,C2)->C3;(C19,C3)->C2;(C19,C4)->C19;
(C20,C0)->C17;(C20,C1)->C15;(C20,C2)->C23;(C20,C3)->C22;(C20,C4)->C20;
(C21,C0)->C18;(C21,C1)->C14;(C21,C2)->C22;(C21,C3)->C23;(C21,C4)->C21;
(C22,C0)->C1;(C22,C1)->C0;(C22,C2)->C21;(C22,C3)->C20;(C22,C4)->C22;
(C23,C0)->C16;(C23,C1)->C13;(C23,C2)->C20;(C23,C3)->C21;(C23,C4)->C23。
其中,(CX,CY)=Z中,X表示小立方体的顶点Y的外围顶点,->表示将(CX,CY)转换为构造单元C,以使得最终得到的曲线是连续的,Z代表小立方体(CX,CY)的最终结构。
根据本申请的一个可选的实施例,步骤S706可以通过以下方法实现:将各个次级顶点的顶点坐标映射至规则几何体的相应平面,得到多个平面坐标;对多个平面坐标按照不同的移位间隔进行移位,得到与多个子曲线对应的一维编码信息,其中,相邻的移位间隔具有相同的偏差值。
其中,所述不同的移位间隔是按照预设的步长进行逐级递减的,例如,对于第1段编码,对平面坐标向同一方向移位28位,第二段编码对应的平面坐标向同一方向移位24位,第三段编码对应的平面坐标移位20位,以后移位距离依次递减。
根据本申请的一个可选的实施例,对多个平面坐标按照不同的移位间隔进行移位,得到与多个子曲线对应的一维编码信息之前,还需要从多个平面坐标中选择基准平面坐标,对基准平面坐标进行缩放处理,以将基准平面坐标的取值映射至预设取值区间;对缩放后的基准平面坐标按照不同的移位间隔进行移位,基于移位后的基准平面坐标确定与多个子曲线对应的一维编码信息。
其中,缩放处理的含义为将基准平面坐标的取值映射至预设取值区间,例如,当前的基准平面坐标为(i,j,k),现在每个坐标值(即i,j,k中的任意一个取值)映射至取值区间[0,230-1]。
在本申请的一个可选的实施例中,基于移位后的基准平面坐标确定与多个子曲线对应的一维编码信息,包括:对移位后的基准平面坐标与预设值进行与运算,得到N个比特,并基于该N个比特确定与N个比特对应的编码段,并将该编码段作为子曲线对应的一维编码信息,其中,N的取值为一维编码信息中比特序列的循环周期。其中,预设值对应的二进制比特数量与N的取值是相同的。例如,N为4,基准平面坐标为(i,j,k)只有三个数值,此处需要与十进制为15对应的二进制序列(即二进制序列1111)进行与运算。
在本申请的一些可选的实施例中,步骤S708可以通过以下方法实现:基于各个次级顶点的顶点坐标进行映射时使用平面的平面标识、投影标识和各个编码段确定空间填充曲线对应的编码数据。
例如,将上述平面标识、投影标识和各个编码段进行组合,得到空间填充曲线对应的编码数据。编码由96个bit组成,其中最高2个bit表示空间变换方式(例如用正方体包围球体做球面坐标投影的投影标识),紧接着3个bit表示所属投影面,后面90个bit表示空间位置,最后1个bit是标识位。标识位是1代表当前编码为叶子,0是非叶子(叶子是最大阶分割后得到的立方体)。
其中,步骤S704中在对预设阶数进行分割时,可以表现为对立方体进行迭代变换,具体地,图9是根据本申请实施例的一种加速映射表生成流程图,如图9所示,包括以下步骤:
步骤S901,设定迭代划分的最大层级是4;
步骤S902,设置起始层级Level为0,起始坐标i,j,k均为0,起始位置p为零;
步骤S903,判断当前层级是否小于最大层级,如果小于则转入步骤S904,否则转入步骤S906;
步骤S904,层级Level累加1,更新下一层级起始坐标i=i*2,j=j*2,k=k*2,更新下一层级起始位置p=p*8;
步骤S905,利用已经设计的“子节点结构变换映射”获取子节点结构以及子节点顶点的位置,转入步骤S903;
步骤S906,在映射表中填入坐标i,j,k,子节点构造单元号与曲线p的对应关系。
通过上述步骤,生成局部加速映射表是为了避免生成编码时需要递归计算。
在得到小立方体后,将每个小立方体的坐标进行转换,得到编码信息,例如:图10是根据本申请实施例的一种将时空坐标转换为一维时空编码的流程图,如图10所示,包括以下步骤:
对于时空坐标(x,y,t),其中x,y表示空间维度,例如,x表示经度,y表示维度,t为时间维度,把(x,y,t)转换成一维时空编码包含13个主要流程,详细流程说明如下:
步骤S1001,对球面坐标做“六面体投影”,即用正方体包围球体做球面坐标投影,并设置投影标识为“00”(即编码的起始2位bit);
步骤S1002,获取投影面,按照投影所对应的六面体面作为面编号(即3位bit表示面编号);
步骤S1003,对空间坐标和时间坐标做单位化处理,即把投影后空间坐标以及时间做缩放处理,映射到区间得到整数坐标i,j,k;
步骤S1004,构造第1段编码,对i,j,k做移位运算,分别右移28位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;每做一次移位;
步骤S1005,构造第2段编码,对i,j,k做移位运算,分别右移24位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1006,构造第3段编码,对i,j,k做移位运算,分别右移20位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1007,构造第4段编码,对i,j,k做移位运算,分别右移16位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1008,构造第5段编码,对i,j,k做移位运算,分别右移12位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1009,构造第6段编码,对i,j,k做移位运算,分别右移8位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1010,构造第7段编码,对i,j,k做移位运算,分别右移4位,并同“15”做“与运算”,得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1011,构造第8段编码,对i,j,k同“15”做“与运算”得到4个bit,再通过查找“加速映射表”获得局部编码段;
步骤S1012,对8段获取的编码做拼接处理;
步骤S1013,输出时空编码,在编码前部加上2个bit投影标识,3个bit面编号构成完整编码。
上述方法实现了一种新的时空编码技术,编码邻近的项一定是时空邻近的,做邻近计算时不需要增加额外的过滤计算;编码具有全局唯一性、在编码中蕴含时空信息。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的时空数据编码方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图12是根据本申请实施例的另一种时空数据编码方法的流程图,如图12所示,该方法包括以下步骤:
步骤S1202,将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元。
步骤S1204,对空间几何体按照预设阶数进行分割,得到多个子空间几何体。
步骤S1206,基于多个子空间几何体将空间填充曲线对应的时空编码信息转换为一维编码信息。
需要说明的是,图12所示实施例的优选实施方式可以参见图7所示实施例的相关描述,此处不再赘述。
实施例3
根据本发明实施例,还提供了一种用于实施上述时空数据编码方法的装置,如图13所示,该装置包括:
分解模块1300,用于将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为所述空间填充曲线的基本构造单元。
分割模块1302,用于对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体。
转换模块1304,用于对所述子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与所述各个次级顶点对应的多个一维编码信息,其中,所述一维编码信息每个顶点坐标中均包括:时间信息和空间信息。
拼接模块1306,用于对与所述各个次级顶点对应的多个一维编码信息进行拼接,得到所述空间填充曲线对应的编码数据。
此处需要说明的是,上述分解模块1300、分割模块1302、转换模块1304和拼接模块1306对应于实施例1中的步骤S702至步骤S708,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端60中。
实施例4
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的时空数据编码方法中以下步骤的程序代码:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元;对空间几何体按照预设阶数进行分割,得到多个子空间几何体,其中,子空间几何体的顶点与空间填充曲线的节点相对应;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
可选地,图14是根据本申请实施例的一种计算机终端的结构框图。如图14所示,该计算机终端1400可以包括:一个或多个(图中仅示出一个)处理器1402、存储器1404、以及显示屏、音频模块、射频模块。
其中,存储器1404可用于存储软件程序以及模块,如本发明实施例中的时空数据编码方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的时空数据编码方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元;对空间几何体按照预设阶数进行分割,得到多个子空间几何体,其中,子空间几何体的顶点与空间填充曲线的节点相对应;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
可选的,上述处理器还可以执行如下步骤的程序代码:按照空间填充曲线经过空间几何体的初级顶点的顺序,对空间几何体进行标记,得到多个构造单元,其中,多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中空间填充曲线经过各个初级顶点的顺序不同;对多个构造单元对应的空间几何体按照预设阶数进行分割,得到多个子空间几何体。
可选的,上述处理器还可以执行如下步骤的程序代码:获取空间几何体的初级顶点的坐标,其中,初级顶点坐标中均包括:时间信息和空间信息;将初级顶点的坐标转换为一维编码信息,并采用一维编码信息对初级顶点进行标记;依据初级顶点的标记确定每个空间几何体的构造信息,并对构造信息进行标记,得到多个构造单元,其中,构造信息中包括子曲线经过的初级顶点和经过初级顶点的顺序信息。
可选的,上述处理器还可以执行如下步骤的程序代码:在进行任意一阶变换时,从多个构造单元中选择预设数量个构造单元作为初始构造单元,其中,预设数量个构造单元中包括部分重复的构造单元;在每个构造单元对应的空间几何体的每个顶点处,按照初始构造单元的属性对空间几何体再次进行分割,得到子空间几何体,其中,子空间几何体对应的初始子构造单元包括:初始子构造单元的父节点的构造信息和初始子构造单元的当前构造信息,属性为空间填充曲线经过空间几何体的顶点的顺序;将初始子构造单元转换为以目标构造单元为构造基准的构造单元,以保证填充曲线的连续性,其中,目标构造单元为从多个构造单元中选择的构造单元。
可选的,上述处理器还可以执行如下步骤的程序代码:将各个次级顶点的顶点坐标映射至规则几何体的相应平面,得到多个平面坐标;对多个平面坐标按照不同的移位间隔进行移位,得到与多个子曲线对应的一维编码信息,其中,相邻的移位间隔具有相同的偏差值。
可选的,上述处理器还可以执行如下步骤的程序代码:从多个平面坐标中选择基准平面坐标,对基准平面坐标进行缩放处理,以将基准平面坐标的取值映射至预设取值区间;对缩放后的基准平面坐标按照不同的移位间隔进行移位,基于移位后的基准平面坐标确定与多个子曲线对应的一维编码信息。
可选的,上述处理器还可以执行如下步骤的程序代码:对移位后的基准平面坐标与预设值进行与运算,得到N个比特,并基于该N个比特确定与N个比特对应的编码段,并将该编码段作为子曲线对应的一维编码信息,其中,N的取值为一维编码信息中比特序列的循环周期。
可选的,上述处理器还可以执行如下步骤的程序代码:基于各个次级顶点的顶点坐标进行映射时使用平面的平面标识、投影标识和各个编码段确定空间填充曲线对应的编码数据。
处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;基于多个子空间几何体将空间填充曲线对应的时空编码信息转换为一维编码信息。
采用本发明实施例,提供了一种时空数据编码的方案。通过选择Hilbert三维曲线作为空间填充曲线,并对该空间填充曲线进行编码,从而克服了Z填充曲线编码能够对时空空间进行连续编码,而在空间填充曲线的拐点处存在空间上不相邻问题,进而解决了将Z填充曲线作为空间填充曲线,虽然Z填充曲线的编码能够对时空空间进行连续编码,但是在空间填充曲线的拐点处存在空间上不相邻,具有明显的突变性,导致在做邻近查询时需要增加二次过滤的工作量的技术问题。
本领域普通技术人员可以理解,图14所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,计算机终端1400还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的时空数据编码方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:(将间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元;对空间几何体按照预设阶数进行分割,得到多个子空间几何体,其中,子空间几何体的顶点与空间填充曲线的节点相对应;对子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与各个次级顶点对应的多个一维编码信息,其中,一维编码信息每个顶点坐标中均包括:时间信息和空间信息;对与各个次级顶点对应的多个一维编码信息进行拼接,得到空间填充曲线对应的编码数据。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:按照空间填充曲线经过空间几何体的初级顶点的顺序,对空间几何体进行标记,得到多个构造单元,其中,多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中空间填充曲线经过各个初级顶点的顺序不同;对多个构造单元对应的空间几何体按照预设阶数进行分割,得到多个子空间几何体。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取空间几何体的初级顶点的坐标,其中,初级顶点坐标中均包括:时间信息和空间信息;将初级顶点的坐标转换为一维编码信息,并采用一维编码信息对初级顶点进行标记;依据初级顶点的标记确定每个空间几何体的构造信息,并对构造信息进行标记,得到多个构造单元,其中,构造信息中包括子曲线经过的初级顶点和经过初级顶点的顺序信息。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在进行任意一阶变换时,从多个构造单元中选择预设数量个构造单元作为初始构造单元,其中,预设数量个构造单元中包括部分重复的构造单元;在每个构造单元对应的空间几何体的每个顶点处,按照初始构造单元的属性对空间几何体再次进行分割,得到子空间几何体,其中,子空间几何体对应的初始子构造单元包括:初始子构造单元的父节点的构造信息和初始子构造单元的当前构造信息,属性为空间填充曲线经过空间几何体的顶点的顺序;将初始子构造单元转换为以目标构造单元为构造基准的构造单元,以保证填充曲线的连续性,其中,目标构造单元为从多个构造单元中选择的构造单元。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将各个次级顶点的顶点坐标映射至规则几何体的相应平面,得到多个平面坐标;对多个平面坐标按照不同的移位间隔进行移位,得到与多个子曲线对应的一维编码信息,其中,相邻的移位间隔具有相同的偏差值。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:从多个平面坐标中选择基准平面坐标,对基准平面坐标进行缩放处理,以将基准平面坐标的取值映射至预设取值区间;对缩放后的基准平面坐标按照不同的移位间隔进行移位,基于移位后的基准平面坐标确定与多个子曲线对应的一维编码信息。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对移位后的基准平面坐标与预设值进行与运算,得到N个比特,并基于该N个比特确定与N个比特对应的编码段,并将该编码段作为子曲线对应的一维编码信息,其中,N的取值为一维编码信息中比特序列的循环周期。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于各个次级顶点的顶点坐标进行映射时使用平面的平面标识、投影标识和各个编码段确定空间填充曲线对应的编码数据。
根据本申请的一个可选的实施例,存储介质还可以被设置为存储用于执行以下步骤的程序代码:将空间填充曲线分解为多个子曲线,其中,每个子曲线对应一个空间几何体,每个空间几何体对应的填充结构为空间填充曲线的基本构造单元;对空间几何体按照预设阶数进行分割,得到多个子空间几何体;基于多个子空间几何体将空间填充曲线对应的时空编码信息转换为一维编码信息。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种时空数据编码方法,包括:
将空间填充曲线分解为多个子曲线,其中,所述空间填充曲线为Hilbert三维曲线,每个子曲线对应一个空间几何体;
对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体;
对所述子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与所述各个次级顶点对应的多个一维编码信息,其中,所述子空间几何体中的顶点为所述次级顶点,所述一维编码信息每个顶点坐标中均包括:时间信息和空间信息;
对与所述各个次级顶点对应的多个一维编码信息进行拼接,得到所述空间填充曲线对应的编码数据;
其中,对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体,包括:按照所述空间填充曲线经过所述空间几何体的初级顶点的顺序,对所述空间几何体进行标记,得到多个构造单元,其中,所述空间几何体的顶点为初级顶点,所述多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中所述空间填充曲线经过各个初级顶点的顺序不同;对所述多个构造单元对应的空间几何体按照预设阶数进行分割,得到所述多个子空间几何体。
2.根据权利要求1所述的方法,其中,按照所述空间填充曲线经过所述空间几何体的初级顶点的顺序,对所述空间几何体进行标记得到多个构造单元,包括:
获取所述空间几何体的初级顶点的坐标,其中,所述初级顶点坐标中均包括:时间信息和空间信息;将所述初级顶点的坐标转换为一维编码信息,并采用所述一维编码信息对所述初级顶点进行标记;
依据所述初级顶点的标记确定每个空间几何体的构造信息,并对所述构造信息进行标记,得到所述多个构造单元,其中,所述构造信息中包括所述子曲线经过的所述初级顶点和经过所述初级顶点的顺序信息。
3.根据权利要求1所述的方法,其中,对所述多个构造单元对应的空间几何体按照预设阶数进行分割,得到所述多个子空间几何体,包括:
在进行任意一阶变换时,从多个构造单元中选择预设数量个构造单元作为初始构造单元,其中,所述预设数量个构造单元中包括部分重复的构造单元;
在每个构造单元对应的空间几何体的每个顶点处,按照所述初始构造单元的属性对所述空间几何体再次进行分割,得到子空间几何体,其中,所述子空间几何体对应的初始子构造单元包括:初始子构造单元的父节点的构造信息和初始子构造单元的当前构造信息,所述属性为所述空间填充曲线经过所述空间几何体的顶点的顺序;
将所述初始子构造单元转换为以目标构造单元为构造基准的构造单元,以保证填充曲线的连续性,其中,所述目标构造单元为从所述多个构造单元中选择的构造单元。
4.根据权利要求1所述的方法,其中,对所述子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与所述各个次级顶点对应的多个一维编码信息,包括:
将所述各个次级顶点的顶点坐标映射至规则几何体的相应平面,得到多个平面坐标;
对所述多个平面坐标按照不同的移位间隔进行移位,得到与所述多个子曲线对应的一维编码信息,其中,相邻的移位间隔具有相同的偏差值。
5.根据权利要求4所述的方法,其中,对所述多个平面坐标按照不同的移位间隔进行移位,得到与所述多个子曲线对应的一维编码信息之前,所述方法还包括:
从所述多个平面坐标中选择基准平面坐标,对所述基准平面坐标进行缩放处理,以将所述基准平面坐标的取值映射至预设取值区间;
对缩放后的基准平面坐标按照不同的移位间隔进行移位,基于移位后的基准平面坐标确定与所述多个子曲线对应的一维编码信息。
6.根据权利要求5所述的方法,其中,基于移位后的基准平面坐标确定与所述多个子曲线对应的一维编码信息,包括:
对移位后的基准平面坐标与预设值进行与运算,得到N个比特,并基于该N个比特确定与所述N个比特对应的编码段,并将该编码段作为所述子曲线对应的一维编码信息,其中,N的取值为所述一维编码信息中比特序列的循环周期。
7.根据权利要求6所述的方法,其中,对与所述各个次级顶点对应的多个一维编码信息进行拼接,得到所述空间填充曲线对应的编码数据,包括:
基于各个次级顶点的顶点坐标进行映射时使用平面的平面标识、投影标识和各个所述编码段确定所述空间填充曲线对应的编码数据。
8.一种时空数据编码方法,包括:
将空间填充曲线分解为多个子曲线,其中,所述空间填充曲线为Hilbert三维曲线,每个子曲线对应一个空间几何体;
对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体;
基于所述多个子空间几何体将所述空间填充曲线对应的时空编码信息转换为一维编码信息;
其中,对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体,包括:按照所述空间填充曲线经过所述空间几何体的初级顶点的顺序,对所述空间几何体进行标记,得到多个构造单元,其中,所述空间几何体的顶点为初级顶点,所述多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中所述空间填充曲线经过各个初级顶点的顺序不同;对所述多个构造单元对应的空间几何体按照预设阶数进行分割,得到所述多个子空间几何体。
9.一种时空数据编码装置,包括:
分解模块,用于将空间填充曲线分解为多个子曲线,其中,所述空间填充曲线为Hilbert三维曲线,每个子曲线对应一个空间几何体;
分割模块,用于对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体,包括:按照所述空间填充曲线经过所述空间几何体的初级顶点的顺序,对所述空间几何体进行标记,得到多个构造单元,其中,所述空间几何体的顶点为初级顶点,所述多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中所述空间填充曲线经过各个初级顶点的顺序不同;对所述多个构造单元对应的空间几何体按照预设阶数进行分割,得到所述多个子空间几何体;
转换模块,用于对所述子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与所述各个次级顶点对应的多个一维编码信息,其中,所述子空间几何体中的顶点为所述次级顶点,所述一维编码信息每个顶点坐标中均包括:时间信息和空间信息;
拼接模块,用于对与所述各个次级顶点对应的多个一维编码信息进行拼接,得到所述空间填充曲线对应的编码数据。
10.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的时空数据编码方法。
11.一种计算设备,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
将空间填充曲线分解为多个子曲线,其中,所述空间填充曲线为Hilbert三维曲线,每个子曲线对应一个空间几何体;
对所述空间几何体按照预设阶数进行分割,得到多个子空间几何体,包括:
按照所述空间填充曲线经过所述空间几何体的初级顶点的顺序,对所述空间几何体进行标记,得到多个构造单元,其中,所述空间几何体的顶点为初级顶点,所述多个构造单元中的每个构造单元均由多个初级顶点组成,且不同的构造单元中所述空间填充曲线经过各个初级顶点的顺序不同,对所述多个构造单元对应的空间几何体按照预设阶数进行分割,得到所述多个子空间几何体;
对所述子空间几何体中的各个次级顶点的顶点坐标转换为一维编码信息,得到与所述各个次级顶点对应的多个一维编码信息,其中,所述子空间几何体中的顶点为所述次级顶点,所述一维编码信息每个顶点坐标中均包括:时间信息和空间信息;
对与所述各个次级顶点对应的多个一维编码信息进行拼接,得到所述空间填充曲线对应的编码数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010479064.XA CN111914043B (zh) | 2020-05-29 | 2020-05-29 | 时空数据编码方法及装置、存储介质、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010479064.XA CN111914043B (zh) | 2020-05-29 | 2020-05-29 | 时空数据编码方法及装置、存储介质、计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111914043A CN111914043A (zh) | 2020-11-10 |
CN111914043B true CN111914043B (zh) | 2024-05-31 |
Family
ID=73238037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010479064.XA Active CN111914043B (zh) | 2020-05-29 | 2020-05-29 | 时空数据编码方法及装置、存储介质、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111914043B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380222B (zh) * | 2020-11-26 | 2023-08-29 | 吉林师范大学 | 地理空间数据全局唯一标识生成处理方法及装置 |
CN112735600B (zh) * | 2020-12-30 | 2023-06-27 | 华南师范大学 | 基于大数据监测和深度学习级联预测的提前预警方法 |
CN112905851B (zh) * | 2021-03-01 | 2023-06-27 | 昆明理工大学 | 一种自适应的Hilbert编码和解码方法 |
CN113347026B (zh) * | 2021-05-21 | 2022-06-28 | 长安大学 | 基于立方体网络的部分重复码构造和故障节点修复方法 |
CN113342917B (zh) * | 2021-06-29 | 2023-06-06 | 维沃移动通信有限公司 | 空间位置查找方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649425A (zh) * | 2016-08-01 | 2017-05-10 | 中国地质大学(武汉) | 一种顾及空间邻近性的矢量空间数据编码方法 |
CN107402942A (zh) * | 2016-07-28 | 2017-11-28 | 北京都在哪网讯科技有限公司 | 索引方法及装置 |
CN107423368A (zh) * | 2017-06-29 | 2017-12-01 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
CN109492068A (zh) * | 2018-11-01 | 2019-03-19 | 北京永安信通科技股份有限公司 | 预定区域中的对象定位方法、装置和电子设备 |
US20190171737A1 (en) * | 2017-12-01 | 2019-06-06 | International Business Machines Corporation | Spatial-Temporal Query for Cognitive IoT Contexts |
-
2020
- 2020-05-29 CN CN202010479064.XA patent/CN111914043B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402942A (zh) * | 2016-07-28 | 2017-11-28 | 北京都在哪网讯科技有限公司 | 索引方法及装置 |
CN106649425A (zh) * | 2016-08-01 | 2017-05-10 | 中国地质大学(武汉) | 一种顾及空间邻近性的矢量空间数据编码方法 |
CN107423368A (zh) * | 2017-06-29 | 2017-12-01 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
US20190171737A1 (en) * | 2017-12-01 | 2019-06-06 | International Business Machines Corporation | Spatial-Temporal Query for Cognitive IoT Contexts |
CN109492068A (zh) * | 2018-11-01 | 2019-03-19 | 北京永安信通科技股份有限公司 | 预定区域中的对象定位方法、装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
基于Hilbert 曲线层次分解的空间数据划分方法;周艳 等;《地理与地理信息科学》;第23卷(第4期);第13-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111914043A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111914043B (zh) | 时空数据编码方法及装置、存储介质、计算设备 | |
US8018458B2 (en) | Close-packed uniformly adjacent, multiresolutional overlapping spatial data ordering | |
Zhu et al. | Lossless point cloud geometry compression via binary tree partition and intra prediction | |
CN111260784B (zh) | 一种城市三维空间网格压缩编码方法、装置及终端设备 | |
US9719790B2 (en) | Mapping uncertain geometries to graticules | |
CN102255873B (zh) | 基于有序点集像素无损压缩的矢量数据传输方法 | |
KR970059967A (ko) | 기하학적 모델을 압축 및 압축해제하는 컴퓨터 시스템과 압축 및 압축해제방법 | |
GB2477368A (en) | Triangle mesh compression | |
CN107092623B (zh) | 一种兴趣点查询方法及装置 | |
CN110473251B (zh) | 基于网格空间索引的自定义范围空间数据面积统计方法 | |
CN108628951A (zh) | 基于文档模型的空间数据块状组织存储与化简压缩方法 | |
CN115379191B (zh) | 一种点云解码方法、点云编码方法及相关设备 | |
CN112199750B (zh) | 轨道交通建设管理的多格式集成方法及gis平台 | |
CN106991149B (zh) | 一种融合编码和多版本数据的海量空间对象存储方法 | |
CN112328722B (zh) | 电力变电站三维gis和模型数据快速加载方法和系统 | |
CN115540893B (zh) | 车辆路径规划方法、装置、电子设备和计算机可读介质 | |
US9602129B2 (en) | Compactly storing geodetic points | |
CN111141294B (zh) | 一种基于位置编码运动轨迹比对的方法 | |
CN117409144A (zh) | 三维实体模型的重建方法、装置、设备、介质和程序产品 | |
CN110956337A (zh) | 无人机常态化智能作业前的勘探方法和装置 | |
CN116704163A (zh) | 在终端显示虚拟现实场景的方法、装置、设备及介质 | |
WO2023134267A1 (zh) | 数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 | |
CN111353007A (zh) | 基于矢量切片的地理要素拾取方法、编码方法、装置及电子设备 | |
CN109492068A (zh) | 预定区域中的对象定位方法、装置和电子设备 | |
CN103365948A (zh) | 数据管理设备和数据管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |