CN113032506A - 一种矢量位置数据的存储与传输方法 - Google Patents
一种矢量位置数据的存储与传输方法 Download PDFInfo
- Publication number
- CN113032506A CN113032506A CN202110305243.6A CN202110305243A CN113032506A CN 113032506 A CN113032506 A CN 113032506A CN 202110305243 A CN202110305243 A CN 202110305243A CN 113032506 A CN113032506 A CN 113032506A
- Authority
- CN
- China
- Prior art keywords
- value
- bit
- int
- data
- integer
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000005540 biological transmission Effects 0.000 title claims abstract description 26
- 230000008859 change Effects 0.000 claims abstract description 6
- 238000012546 transfer Methods 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 101100182248 Caenorhabditis elegans lat-2 gene Proteins 0.000 description 26
- 101150004293 lon2 gene Proteins 0.000 description 14
- 238000012545 processing Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- -1 i.e. Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
- H04L1/245—Testing correct operation by using the properties of transmission codes
- H04L1/246—Testing correct operation by using the properties of transmission codes two-level transmission codes, e.g. binary
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种矢量位置数据的存储与传输方法,通过对需要存储的位置数据的变化范围,量身定制数据格式,针对数据精度的要求,在数据末位设置预估位或者数据分布标识位,达到在4字节的存储空间内实现了毫米级的定位精度。由此,本发明的矢量位置数据的存储与传输方法,降低了矢量位置数据存储所需空间、降低了传输过程中的数据传输量。
Description
技术领域
本发明涉及数据存储与传输领域,尤其涉及一种矢量位置数据的存储与传输方法。
背景技术
在笛卡尔坐标系下表示的地图图形或地理实体的位置和形状的数据一般采用矢量数据进行存储。矢量位置数据一般通过记录坐标值的方式将地理实体的空间位置信息表现得准确无误。
目前矢量数据最常用的坐标系有WGS-84坐标系、J2000坐标系等。
WGS-84坐标系下记录位置点的坐标值一般为经度lon、纬度lat和高度alt,其中经度、纬度的单位一般为度,高度单位为米。
J2000坐标系下记录位置点的坐标值一般为x,y,z值,单位为米,例如某位置点坐标值x=-247517.6126426,y=5511407.8685368,z=3207802.9863406。同一位置点在不同坐标系下的坐标值可以相互转化计算。
矢量位置数据广泛的应用于导航定位、地图服务等领域,在如今快速发展的今天,每天都有数以亿计的移动导航终端在工作,故当今社会每天都会有巨量的矢量位置数据需要进行存储与网络传输。矢量位置数据在数字化存储与传输***中,是采用float类型的数值进行存储的,由于float类型的数值在计算机中目前通常只有7位有效数字精确度,对于经度值lon=123.6592465636、纬度值lat=29.9840453269、高度值alt=2764.9015569712这样精确的矢量位置数据,使用float类型来进行存储,只能得到经度值123.6592、纬度值29.98404、高度值2764.901,每个分量值只能存储7个有效数字,后面的数值都会丢失,而我们知道,在纬度0度上经度0.00001度的偏差引起的距离误差dT=1.1131949米,存储的数据精度不高。
为了进一步提升数据的精度,现有的方法一般是采用double类型的数值进行存储,但是这样会导致数据空间翻倍,存储、传输成本的提高。
故如何在不增加存储与传输成本的前提下,提高矢量位置数据的存储精度是目前本领域技术人员不断追求的目标。
发明内容
本发明所要解决的技术问题是:提供一种矢量位置数据的存储与传输方法,以更小的空间和传输量实现更高的数据精度。
为解决上述技术问题,本发明所采用的技术方案是:
一种矢量位置数据的存储与传输方法,包括调制步骤、存储传输步骤和解析步骤,所述调制步骤包括:
S1、将需储存、传输的位置数值进行格式转化,以十进制形式记录,确定所需储存的数值X的变化范围及精度要求δ,所述数值X包括整数部分Xint和小数部分Xdec;
S2、根据精度要求δ,确定需要精确存储的小数部分Xdec的位数N;
S3、将X乘以10N,得到X’,X’是由整数部分Xint的m个数字和小数部分Xdec的N个数字组成的整数值;
S4、确定按整数类型将X’转换成二进制数时,涵盖X’在数值变化范围内所有可能数值所需的最少bit数M;
S5、根据数据精度要求δ判断是否需要根据X小数点后第N+1位的数值设置数据分布标识位,将X’转换成M位或M+1位二进制数X’int-bit;
所述存储、传输步骤为对X’int-bit进行存储和传输;
所述解析步骤中,若无数据分布标识位,根据数据精度要求,设置X小数点后第N+1位的预估值,其余步骤为所述调制步骤的逆操作。
与现有技术相比,本发明具有如下技术效果:
根据需要储存的数值的变化范围,量身定做了一种数据格式,得以以最小的数据量实现特定数据的高精度存储和运输。
避免了传统的通用float格式中指数项、尾数项数量固定不变导致的单float储存有效数字位数不足,数据精度不足,采用double格式储存又占据大量空间,数据空间利用率不高的问题。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,若精度要求为δ<=5×10-(N+1),此时,不需要设置数据分布标识位,X’int-bit是M位二进制数,所述解析步骤中,在解析得到精确的整数值X’之后,将X’除以10N,得到中间浮点数X”,将中间浮点数X”的小数点后第N+1位设为预估位,并将预估位的数值设置为4或者5,得到解析后的最终结果数值X”’,所述X”’与原浮点数据X的数值误差精度可以保证不大于5×10-(N+1)。
采用上述进一步方案的有益效果是,虽然无法保存具体的第N+1位数的准确数值,但是可以将最大误差控制在5×10-(N+1)范围内。因为第N+1位只可能是0-9中的一个,将其在解析的过程中设定成4或5,可以确保解析后得到的数值与真实数值之间的最大误差不超过5×10-(N+1)。
进一步地,若精度要求为δ<=2×10-(N+1),此时,需要设置数据分布标识位,X’int-bit是M+1位二进制数,在对X’进行存储和传输时,在整数值X’对应的M位二进制数后再增加1bit的数据分布标识位,当Xdec的第N+1位对应的数值为0至4时,设置数据分布标识位为第一状态,当Xdec的第N+1位对应的数值为5至9时,设置数据分布标识位为第二状态;
所述解析步骤中,在解析M位二进制数得到精确的整数值X’之后除以10N,得到中间浮点数X”,
若数据分布标识位为第一状态,将中间浮点数X”的小数点后第N+1位设置为2,得到最终结果数值X”’;
若数据分布标识位为第二状态,将浮点数X”的小数点后第N+1位设置为7,得到最终结果数值X”’。
采用上述进一步方案的有益效果是虽然仅用1bit,无法准确记录第N+1位的数值,但是可以记录第N+1位数值是在0-4之间,还是在5-9之间,若在0-4之间,则解析时设定此位位2,若在5-9之间,则人为设定此位为7,则可以确保解析得到的数值与真实数值之间的最大误差不超过2×10-(N+1)。
进一步地,所述步骤S5,对所需储存的数值X的变化范围及精度要求δ均相同的一批w个数据,共需要T=M×w或T=(M+1)×w个比特位存储空间,以1字节为最小存储单位进行存储或传输,当T的最后几个bit位不足1字节时以0补齐。
采用上述进一步方案的有益效果是采用字节类型进行存储和传输,效率更高。
进一步地,根据所需储存的数值X的变化速度,将整数值X’int-bit拆分为基础数值部分X’int-base和变动数值部分X’int-var,所述基础数值部分X’int-base在时间T内保持不变;
在时间T内存储、传送多个数值Xi时,所述步骤S5在存储、传输第一个数值X1时传输基础数值部分X’int-base-1和变动数值部分X’int-var-1,在传输剩余Xi时,仅存储、传输变动数值部分X’int-var-i;
所述解析步骤中,以X1中的基础数值部分X’int-base-1作为时间T内存储传输的其余Xi的基础数值部分X’int-base-i。
采用上述进一步方案的有益效果是当所需储存的数值X在一定时间内变化速度较慢时,则其有效数字的前面部分一般保持不变,仅尾部的几位有效数字变动,找到合适的平衡点,可以在一定时间内,仅存储传输变化的部分即可,从而进一步降低存储、传输的数据量。
进一步地,所述数值X为WGS-84坐标系下的以度为单位表示的经度数据,所述精度要求δ<5×10-8,所述二进制数X’int-bit需要32位,其中所述基础数值部分X’int-base为12bit位,所述变动数值部分X’int-var为20bit位。基础数值部分X’int-base包括1个符号位、11个bit位表示数值X的整数部分数字和小数点后第一个数字组成的整数值;变动数值部分X’int-var的20bit位是由数值X的小数点后第2位至第7位共6个数字组成的整数值。
采用上述进一步方案的有益效果是仅采用32位(4字节)就实现了经度数据5×10-8的精度,对应实际距离中5.6毫米的误差。远高于采用float格式时的存储精度1×10-5。
进一步地,所述数值X为WGS-84坐标系下的以度为单位表示的纬度数据,所述精度要求δ<2×10-8,所述二进制数X’int-bit需要32位,其中所述基础数值部分X’int-base为11bit位,所述变动数值部分X’int-var为21bit位。基础数值部分X’int-base包括1个符号位、10个bit位表示数值X的整数部分数字和小数点后第一个数字组成的整数值;变动数值部分X’int-var的20bit位是由数值X的小数点后第2位至第7位共6个数字组成的整数值,变动数值部分X’int-var的第21bit位是数据分布标识位。
进一步地,所述数值X为数字高程模型(DEM)中的海拔高程数据。
采用上述进一步方案的有益效果是,适用范围广,可用于存储纬度、经度、海拔等地理位置信息。
附图说明
图1为本发明的矢量位置数据的存储与传输方法流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
请参照图1所示,其为本发明的矢量位置数据的存储与传输方法的流程示意图。
在十进制表示的情况下,纬度的数值范围在-90.0到90.0度之间,在赤道的周长为40076000米(可认为地球的最大圆周长),可计算,精确到小数点后5位可实现1米的定位精度,精确到小数点后7位可实现1厘米的定位精度。float类型的数值在计算机中目前通常只有7位有效数字精确度,对于经度值123.6592465636、纬度值29.9840453269、高度值2764.9015569712这样精确的矢量位置数据,使用float类型来进行存储,只能得到经度值123.6592、纬度值29.98404、高度值2764.901,每个分量值只能存储7个有效数字,后面的数值都会丢失,而我们知道,在纬度0度上经度0.00001度的偏差引起的距离误差dT=1.1131949米,存储的数据精度不高。
为了进一步提升数据的精度,现有的方法一般是采用double类型的数值进行存储,但是这样会导致数据空间翻倍,存储、传输成本的提高。
现用本发明提供的方法进行存储示例:
A.使用4字节存储纬度数值:
以lat表示纬度值,需要精确存储小数点后7位的数值,先对lat值取绝对值并放大10倍,得到latX10值;取latX10值的整数部分标记为基础数值部分latX10_integer值,取latX10值的小数部分并放大1000000倍再取整得到精确尾数部分标记为latX10_partX6,至此,lat值小数点后前7位数值均被准确存储;查看lat值的小数点后第八位数字,并根据第八位数字的数值所在范围,确定数据分布标识位lat_part8的值。存储该纬度lat值时,在计算机中实际分配32bit位,其数据信息内容结构如下:
表一 纬度数值存储时的32bit数据信息内容
其中,使用1bit位来存储lat值的数值符号,如lat值为负数时该bit位设为0,lat值为正数时该bit位设为1,当然也可以规定lat值为正数时该bit位为0。
针对纬度数据,latX10_integer值的范围在0到900之间,10bit位的存储空间最大能够存储无符号整数值1023,满足上述存储要求;
latX10_partX6值的范围在0到999999之间,20bit位的存储空间最大能够存储无符号整数值1048575,满足上述存储要求;
lat小数点后第8位的准确值应该是0-9中的一个,显然仅仅使用1bit位是无法准确的存储lat小数点后第8位的准确值,因此设置数据分布标识位lat_part8,用于记录lat小数点后第8位数值的分布范围:
当lat小数点后第8位的准确值<5时,将数据分布标识位lat_part8设为0,当lat小数点后第8位的准确值>=5时,将数据分布标识位lat_part8设为1。这样做的目的是:虽然无法精确的记录lat值的小数点后第八位数字,但是记录了lat小数点后第8位的准确值的大致取值范围,在后续解析时就能根据取值范围来给第八位指定一个数字,以确保纬度值的最大误差在0.00000002。例如,lat值的小数点后第八位数字是1,由于1<5,故将数据分布标识位lat_part8设为0存储,在后续解析该纬度数据时,解析得到lat_part8=0,意味着原lat值的小数点后第八位的准确值小于5,因此将小数点后第8位直接设为2,这样解析得到的数值与原lat的准确值的误差为0.00000001,按此原理,可知:只要原lat值的小数点后第八位数字小于5,不论是0,1,2,3,4中的哪一个,与我们在第8位指定数字2之间的最大误差为0.00000002(2-0=2、2-1=1、2-2=0、3-2=1、4-2=2)。但是若不记录该1bit位信息,那么lat值的小数点后第八位数字是无法知道的,如果解析上述纬度值后,在第8位指定数字5,那么与原lat值的最大误差可为0.00000005,如果解析上述纬度值后,在第8位指定数字7,那么与原lat值的最大误差可为0.00000007!因此数据分布标识位lat_part8位就是用来控制纬度值的最大误差。
对于上述纬度精确值lat(一般为double类型),按顺序将“符号值”、“latX10_integer”、“latX10_partX6”和“lat_part8”四部分信息存储,便得到4字节的新的纬度值,标记为latNew。
存储时表一中的四部分顺序不做要求,解析过程中保持顺序一致即可。
存储与传输该纬度数值时,只需要存储与传输latNew,可见只需要4个字节,可以控制存储精度小于0.00000002,对应实际空间中约2.3mm的距离误差。
更具体的:对于double类型的纬度lat=-89.6634678497,符号值为负值,先对lat值取绝对值并放大10倍,得到latX10=896.634678497;取latX10值的整数部分标记为latX10_integer=896,取latX10值的小数部分并放大1000000倍再取整得到数值标记为latX10_partX6=634678;lat值小数点后第八位数字4,由于4<5,标记数据分布标识位lat_part8=0。
按顺序将“符号值”、“latX10_integer”、“latX10_partX6”和“lat_part8”四部分信息存储,得到32bit位的数据二进制结构如下:
表二 数值lat=-89.6634678497存储处理后的二进制结构
上述32bit位二进制数据便是新的纬度值latNew,进行存储与传输即可。
B.读取/接收到4字节的纬度值latNew,解析出纬度值lat2过程:
将32bit位的纬度值latNew按“符号值”、“latX10_integer值”、“latX10_partX6值”和“lat_part8值的范围”四部分信息在写入时的顺序解析得到对应的四部分的数值,假设解析出double类型的纬度值标记为lat2,先求解lat2’,
lat2’=(latX10_integer/10.0)+latX10_partX6/10000000.0;
如果数据分布标识位lat_part8的值为0,则说明原lat值的小数点后第八位数字<5,此时我们将lat2’的小数点后第八位数字设置为2得到lat2”,以确保解析得到的纬度值lat2与原lat值之间的最大误差不超过0.00000002,即lat2”=(latX10_integer/10.0)+latX10_partX6/10000000.0+0.00000002;
如果数据分布标识位lat_part8的值为1,则说明原lat值的小数点后第八位数字>=5,此时我们将lat2’的小数点后第八位数字设置为7得到lat2”,以确保解析得到的纬度值lat2与原lat值之间的最大误差不超过0.00000002,即lat2”=(latX10_integer/10.0)+latX10_partX6/10000000.0+0.00000007;
最后,如果“符号值”的1bit位数值为0,则说明原lat值为负值,对lat2”取负数即可,即lat2=-lat2”。
如果“符号值”的1bit位数值为1,则说明原lat值为正值,lat2”不需要处理,即lat2=lat2”。
例如,在移动终端接收到4字节的纬度值latNew的二进制数据如下:
表三 网络终端接收到存储处理后的4字节纬度二进制数据
按写入时的顺序解析得到“符号值”位=0、latX10_integer=896,latX10_partX6=634678和lat_part8=0;假设解析出double类型的纬度值标记为lat2,
lat2’=(latX10_integer/10.0)+latX10_partX6/10000000.0=89.6634678。
由于数据分布标识位lat_part8的值为0,将lat2’的小数点后第八位数字设置为2,即得lat2”=89.66346782。
最后,“符号值”的1bit位数值为0,则说明原lat值为负值,对lat2”取负数即得lat2=-lat2”=-89.66346782。
可以看出,应用本方法存储纬度数值,解析得到的lat2数值与原lat数值的最大误差为0.00000002,即在小数点后第八位上存在最大为2的误差。另外,在同一经度上,纬度相差0.00000002度的两点之间的实际距离误差dT=0.00221148米,即纬度值最大误差小于2.3毫米。
C.使用4字节存储经度数值:
以lon标记矢量位置点经度精确值。由于lon值的范围在-180.0到180.0度之间,确认需要精确存储小数点后前7位的数值,先对lon值取绝对值并放大10倍,得到lonX值;取lonX值的整数部分标记为经度基础数据部分标记为lonX_integer值,取lonX值的小数部分并放大1000000倍再取整得到经度精确尾数部分标记为lonX_partX6;存储该经度lon值时,分配32bit位,其数据信息内容结构如下:
表四 经度数值存储时的32bit数据信息内容
其中,使用1bit位来存储lon值的数值符号,如lon值为负数时该bit位设为0,lon值为正数时该bit位设为1。
lonX_integer值的范围在0到1800,我们分配11bit位的存储空间最大能够存储无符号整数值2048,满足存储要求;
lonX_partX6值的范围在0到999999,我们分配20bit位的存储空间最大能够存储无符号整数值1,048,575,满足存储要求;
对于经度精确值lon(一般为double类型),按顺序将“符号值”、“lonX_integer”、“lonX_partX6”三部分信息存储,便得到4字节的新的经度值,标记为lonNew。存储时表四中的三部分顺序不做要求,只要与后续的解析时保持顺序一致即可。存储与传输该经度数值时,只需要存储与传输lonNew值,只需要4个字节。
例如,对于double类型lon=-179.9428112235,符号值为负值,先对lon值取绝对值并放大10倍,得到lonX=1799.428112235;取lonX值的整数部分标记为lonX_integer=1799,取lonX值的小数部分并放大1000000倍再取整得到数值标记为lonX_partX6=428112。按顺序将“符号值”、“lonX_integer值”、“lonX_partX6值”三部分信息存储,得到32bit位的数据二进制结构如下:
表五 数值lon=-179.9428112235存储处理后的二进制结构将此32bit位二进制数据进行存储,得到新的经度值lonNew进行存储与传输。
D.读取/接收到4字节的经度值lonNew,解析出经度值lon2过程:
将32bit位的经度值lonNew按“符号值”、“lonX_integer”、“lonX_partX6”三部分信息按写入时的顺序解析得到对应的三部分的数值,假设解析出double类型的经度值标记为lon2,先获得lon2’:
lon2’=(lonX_integer/10)+lonX_partX6/10000000.0;
为控制解析出的经度值与原经度值的最大误差值不大于0.00000005,将
lon2’的小数点后第八位预估为4或5,得到lon2”即
lon2”=(lonX_integer/10)+lonX_partX6/10000000.0+0.00000004或者
lon2”=(lonX_integer/10)+lonX_partX6/10000000.0+0.00000005;
最后,如果“符号值”的1bit位数值为0,则说明原lon值为负值,对lon2”取负数即可,即lon2=-lon2”。
如果“符号值”的1bit位数值为1,则说明原lon值为正值,对lon2不需要处理,即lon2=lon2”。
例如,在移动终端接收到4字节的经度值lonNew的二进制数据如下:
表六 网络终端接收到存储处理后的4字节经度二进制数据
按写入时的顺序解析得到“符号值”位=0、lonX_integer=1799、lonX_partX6=428112;假设解析出double类型的经度值标记为lon2,获得lon2=(lonX_integer/10.0)+lonX_partX6/10000000.0+0.00000004=179.94281124.
可以看出,应用本方法存储经度数值,解析得到的lon2数值与原lon数值的最大误差为0.00000005,即在小数点后第八位上存在最大为5的误差。另外,在纬度0度上,经度相差0.00000005度的两点之间的实际距离误差dT=0.00556697米,即经度值最大误差小于5.6毫米。
在位置点A(经度0,纬度0)与位置点B(经度0.00000005,纬度0.00000002)的两点之间的实际距离dT=0.0059892米,即本方法存储的矢量位置数值最大误差小于6毫米。
上述实施例中,A部分,纬度数值中包括latX10_integer和latX10_partX6两部分,C部分,经度数值包括lonX_integer和lonX_partX6两部分,其目的在于,在很多的实际应用中,一般是发生在较小的空间范围内,比如导航类软件,大部分情况下,仅涉及到城市级、省级的空间变化,即便是乘坐高铁,其速度目前一般也在300公里/小时以下,所以短时间内,涉及到的经纬度数值仅是局部地区的数值,对应到经纬度数值,则其前面部分总有一部分数值是相同的,在这类情况下,将纬度数值分解为纬度基础数值(对应latX10_integer)和纬度精确尾数值(对应latX10_partX6),将经度数值分解为经度基础数值(对应lonX_integer)和经度精确尾数值(对应lonX_partX6),在连续存储类似的局部地区的多个经纬度数值时,就可以仅在首次传递时获取经度的符号位和基础数值、纬度的符号位和基础数值部分,而在后续的传输存储过程中仅传输存储经度的精确尾数值和纬度的精确尾数值部分即可,从而进一步减小传输的数据量和存储所需的空间。
特别的,对于在非经纬度表示的坐标系下的矢量位置数据,例如J2000坐标系下的矢量位置数据,可以先转换到经纬度表示的坐标系下(如WGS-84坐标系)的矢量位置数据,按本方法对经度、纬度数据进行存储处理,在读取数据文件或接收到经纬度数据按本方法的解析处理后得到经纬度表示的位置数据,再转换为原坐标系下位置数据即可。
另外,对于矢量位置数据中的高度分量数值,对于数值范围在-10000.0米至10000.0米范围内时,可以采用与本文纬度分量数值完全相似的存储方法,使用4字节的存储空间便能达到比float更高的精确度,在此不重复赘述。本方法的重点是处理应用面最为广泛的矢量位置数据中的经度、纬度数值的存储与传输方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种矢量位置数据的存储与传输方法,其特征在于,包括调制步骤、存储传输步骤和解析步骤,所述调制步骤包括:
S1、将需储存、传输的位置数值进行格式转化,以十进制形式记录,确定所需储存的数值X的变化范围及精度要求δ,所述数值X包括整数部分Xint和小数部分Xdec;
S2、根据精度要求δ,确定需要精确存储的小数部分Xdec的位数N;
S3、将X乘以10N,得到X’,X’是由整数部分Xint的m个数字和小数部分Xdec的N个数字组成的整数值;
S4、确定按整数类型将X’转换成二进制数时,涵盖X’在数值变化范围内所有可能数值所需的最少bit数M;
S5、根据数据精度要求δ判断是否需要根据X小数点后第N+1位的数值设置数据分布标识位,将X’转换成M位或M+1位二进制数X’int-bit;
所述存储、传输步骤为对X’int-bit进行存储和传输;
所述解析步骤中,若无数据分布标识位,根据数据精度要求,设置X小数点后第N+1位的预估值,其余步骤为所述调制步骤的逆操作。
2.根据权利要求1所述的矢量位置数据的存储与传输方法,其特征在于,若精度要求为δ<=5×10-(N+1),此时,不需要设置数据分布标识位,X’int-bit是M位二进制数;所述解析步骤中,在解析得到精确的整数值X’之后,将X’除以10N,得到中间浮点数X”,将中间浮点数X”的小数点后第N+1位设为预估位,并将预估位的数值设置为4或者5,得到解析后的最终结果数值X”’,所述X”’与原浮点数据X的数值误差精度可以保证不大于5×10-(N+1)。
3.根据权利要求1所述的矢量位置数据的存储与传输方法,其特征在于,若精度要求为δ<=2×10-(N+1),此时,需要设置数据分布标识位,X’int-bit是M+1位二进制数;在对X’进行存储和传输时,在整数值X’对应的M位二进制数后再增加1bit的数据分布标识位,当Xdec的第N+1位对应的数值为0至4时,设置数据分布标识位为第一状态,当Xdec的第N+1位对应的数值为5至9时,设置数据分布标识位为第二状态;
所述解析步骤中,在解析M位二进制数得到精确的整数值X’之后除以10N,得到中间浮点数X”,
若数据分布标识位为第一状态,将中间浮点数X”的小数点后第N+1位设置为2,得到最终结果数值X”’;
若数据分布标识位为第二状态,将浮点数X”的小数点后第N+1位设置为7,得到最终结果数值X”’。
4.根据权利要求1-3任一项所述的矢量位置数据的存储与传输方法,其特征在于,
所述步骤S5,对所需储存的数值X的变化范围及精度要求δ均相同的一批w个数据,共需要T=M×w或T=(M+1)×w个比特位存储空间,以1字节为最小存储单位进行存储或传输,当T的最后几个bit位不足1字节时以0补齐。
5.根据权利要求1-4任一项所述的矢量位置数据的存储与传输方法,其特征在于,根据所需储存的数值X的变化速度,将整数值X’int-bit拆分为基础数值部分X’int-base和变动数值部分X’int-var,所述基础数值部分X’int-base在时间T内保持不变;
在时间T内存储、传送多个数值Xi时,所述步骤S5在存储、传输第一个数值X1时传输基础数值部分X’int-base-1和变动数值部分X’int-var-1,在传输剩余Xi时,仅存储、传输变动数值部分X’int-var-i;
所述解析步骤中,以X1中的基础数值部分X’int-base-1作为时间T内存储传输的其余Xi的基础数值部分X’int-base-i。
6.根据权利要求5所述的矢量位置数据的存储与传输方法,其特征在于,所述数值X为WGS-84坐标系下的以度为单位表示的经度数据,所述精度要求δ<=5×10-8,所述二进制数X’int-bit需要32位,其中所述基础数值部分X’int-base为12bit位,所述变动数值部分X’int-var为20bit位。基础数值部分X’int-base包括1个符号位、11个bit位表示数值X的整数部分数字和小数点后第一个数字组成的整数值;变动数值部分X’int-var的20bit位是由数值X的小数点后第2位至第7位共6个数字组成的整数值。
7.根据权利要求6所述的矢量位置数据的存储与传输方法,其特征在于,所述数值X为WGS-84坐标系下的以度为单位表示的纬度数据,所述精度要求δ<=2×10-8,所述二进制数X’int-bit需要32位,其中所述基础数值部分X’int-base为11bit位,所述变动数值部分X’int-var为21bit位。基础数值部分X’int-base包括1个符号位、10个bit位表示数值X的整数部分数字和小数点后第一个数字组成的整数值;变动数值部分X’int-var的20bit位是由数值X的小数点后第2位至第7位共6个数字组成的整数值,变动数值部分X’int-var的第21bit位是数据分布标识位。
8.根据权利要求5所述的矢量位置数据的存储与传输方法,其特征在于,所述数值X为数字高程模型(DEM)中的海拔高程数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110305243.6A CN113032506B (zh) | 2021-03-23 | 2021-03-23 | 一种矢量位置数据的存储与传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110305243.6A CN113032506B (zh) | 2021-03-23 | 2021-03-23 | 一种矢量位置数据的存储与传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032506A true CN113032506A (zh) | 2021-06-25 |
CN113032506B CN113032506B (zh) | 2022-03-04 |
Family
ID=76472699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110305243.6A Active CN113032506B (zh) | 2021-03-23 | 2021-03-23 | 一种矢量位置数据的存储与传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032506B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263343B1 (en) * | 1996-01-11 | 2001-07-17 | Sony Corporation | System for providing and linking regularity updated map data with data related to the map |
CN104899311A (zh) * | 2015-06-15 | 2015-09-09 | 中国地质大学(武汉) | WebGIS矢量数据高效传输方法 |
CN107301017A (zh) * | 2017-06-06 | 2017-10-27 | 北京云知声信息技术有限公司 | 一种数据存储方法及装置 |
CN109871197A (zh) * | 2018-12-29 | 2019-06-11 | 航天信息股份有限公司 | 数据存储装置及数据确定装置 |
CN110222011A (zh) * | 2019-05-30 | 2019-09-10 | 北京理工大学 | 一种人体运动数据文件压缩方法 |
CN112506935A (zh) * | 2020-12-21 | 2021-03-16 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
-
2021
- 2021-03-23 CN CN202110305243.6A patent/CN113032506B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263343B1 (en) * | 1996-01-11 | 2001-07-17 | Sony Corporation | System for providing and linking regularity updated map data with data related to the map |
CN104899311A (zh) * | 2015-06-15 | 2015-09-09 | 中国地质大学(武汉) | WebGIS矢量数据高效传输方法 |
CN107301017A (zh) * | 2017-06-06 | 2017-10-27 | 北京云知声信息技术有限公司 | 一种数据存储方法及装置 |
CN109871197A (zh) * | 2018-12-29 | 2019-06-11 | 航天信息股份有限公司 | 数据存储装置及数据确定装置 |
CN110222011A (zh) * | 2019-05-30 | 2019-09-10 | 北京理工大学 | 一种人体运动数据文件压缩方法 |
CN112506935A (zh) * | 2020-12-21 | 2021-03-16 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Non-Patent Citations (1)
Title |
---|
白婷婷: "一种基于Excel的地理空间数据获取方法研究", 《绿色科技》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113032506B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE41983E1 (en) | Method of organizing and compressing spatial data | |
CN101537411B (zh) | 分拣规划优化 | |
CN105634499B (zh) | 一种基于新短浮点型数据的数据转换方法 | |
KR20180088895A (ko) | 랜덤 문자열을 생성하기 위한 방법 및 장치 | |
CN110209748B (zh) | 索引地理围栏的方法和装置 | |
CN111625520A (zh) | 一种通用的异构数据库字段类型的映射方法及*** | |
EP3767550A1 (en) | Asymmetric quantization for compression and for acceleration of inference for neural networks | |
CN113032506B (zh) | 一种矢量位置数据的存储与传输方法 | |
CN114236643B (zh) | 基于天气预报***的气象预测方法、装置、设备及介质 | |
CN114936261A (zh) | 电网同源维护工具与gis图形迁移的平面坐标转换方法 | |
CN110633383A (zh) | 一种重复房源的识别方法、装置、电子设备及可读介质 | |
CN110941587B (zh) | 基于附加文件的空间矢量数据存储方法及坐标系转换*** | |
CN110995849A (zh) | 一种矢量数据位置信息的传输与存储方法 | |
CN113495845B (zh) | 数据测试方法、装置、电子设备及存储介质 | |
CN113947669A (zh) | 一种stl三角网格模型数据提取和处理方法 | |
CN101594480B (zh) | 一种字幕数据处理的方法 | |
US9177006B2 (en) | Radix sort with read-only key | |
CN112116284A (zh) | 虚假运单的识别方法、***、电子设备及存储介质 | |
CN112561500A (zh) | 基于用户数据的薪酬数据生成方法、装置、设备及介质 | |
CN113010617A (zh) | 一种基于位压缩的三维空间坐标的轻量化存储方法 | |
CN115792983A (zh) | 一种gnss差分增强服务的格网编码和编码转换方法 | |
CN116049456A (zh) | 瓦片地图生成方法、装置及终端设备 | |
US6304274B1 (en) | Method and system for slope correcting line stipples/styles | |
CN104902449A (zh) | 一种基于二维码处理业务的方法、装置、服务器、*** | |
CN110968621A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240521 Address after: Technology Entrepreneurship Building, No. 133 Yingchun Street, Laishan District, Yantai City, Shandong Province, 264000 Patentee after: YANTAI KECHUANG JIENENG ELECTRICAL AND MECHANICAL ENGINEERING CO.,LTD. Country or region after: China Address before: 264025 No. 184 Hongqi Middle Road, Zhifu District, Shandong, Yantai Patentee before: LUDONG University Country or region before: China |
|
TR01 | Transfer of patent right |