论文作者 : 陈东
空间数据编码化计算
编码真实性计算
引入
JE(Code)
判断网格的真实性,1为假网格 0 为真网格
JE(Code)=ϵB1∪ϵL1∪∼ϵB2∪∼ϵL2∪∼ϵB3∪∼ϵL3
ϵB1=[(∂C1≫1)−(code_B≫23)]≫8;
ϵL1=[∂C1−(code_L≫23)]>>8;
ϵB2=code_B≪9≫28⊕∂C2;
ϵL2=code_L≪9≫28⊕∂C2;
ϵB3=code_B≪15≫28⊕∂C2;
ϵL3=code_L≪15≫28⊕∂C2;
其中
∂C1=(10110100)2
∂C2=(1111)2
⊕表示异或
逐个分析每个算子的作用:
ϵB1是检测纬向度级编码是否有效
首先∂C1=(180)10右移一位,code_B≫23得到度数编码
,这里可以看出, 整个算法的思路是 如果纬向编码真实,即小于等于90°。则括号内的值小于
27=128
.继续右移八位后,结果为0,则网格为真。这里应当是利用了二进制减法中的补码原理1。 但就这一算法来讲,还存在问题,即没有考虑南北半球带来的符号位的问题。 应当增加一步消除符号位 更改过得算法如下
ϵB1=[(∂C1≫1)−(code_B≪1≫24)]≫8;
同理更正ϵL1=[∂C1−(code_L≪1≫24)]≫8
以此类推
ϵB2、ϵB3分别计算了分级和秒级编码是否有效,即对应了第二次和第三次扩展
对于分、秒 二者扩展规律相同。所以其判断规则应当类似。 这里发现,无效编码对应的为60,61,62,63 也就是二进制中的 111100 111101 111110 111111 。所以只需要筛选分、秒级编码 前四位为1111的 即为无效编码。 这里使用了异或运算符2进行判断(?)。所以在移位操作时,只需要先通过左移操作去除度级(分级)编码,再右移28位(要保留4位编码 32-4=28)。 其算法如上文所示。
针对异或运算 即保证了 如果二者相同 返回0 如果二者不同 返回1
以上就是对于 JE(Code) 的分析与修正
2. 位移运算
暂时思路为一次一个网格进行移动,每次移动后判断网格是否存在。若不存在,则继续移动,计数不变。若存在,计数加一。
可以看出位移运算较复杂,不适应当前计算需求。需要发展新的计算方法。
3.格网距离测算
定义算符
DisG
论文中给出的计算公式:
(ΔCB,ΔCL)=Dis1G(CodeA,CodeB)=(∑min_codeBcodeB=min_codeBϵB(codeB,∑min_codeLcodeL=min_codeLϵL(codeL)
应当是有问题的:
需要改为:
(ΔCB,ΔCL)=Dis1G(CodeA,CodeB)=(∑max_codeBcodeB=min_codeBϵB(codeB,∑max_codeLcodeL=min_codeLϵL(codeL)
其中 ϵ(code)=ϵ1∪∼ϵ2∪∼ϵ3
其思路是先统一得出所有横纵向格子 再进行筛选。
比较复杂。
其他解决思路
- 能否通过加一个小余量进行判断?
-能否通过重定义加减法的进制进行设计?
20160727
打卡