发明名称 一种DOM栅格数据脱密与恢复方法
摘要 本发明公开了一种DOM栅格数据脱密与恢复方法,属于地理信息安全领域。该方法包括以下步骤:(1)密钥生成过程:确定数据范围,确定数据变换量,计算线性和非线性变换参数;(2)脱密过程:读取密钥文件,根据密钥处理每个像元,保存脱密后的栅格数据;(3)恢复过程:打开脱密后的栅格数据循环处理每个像元。本方法针对DOM栅格数据的安全保护问题,在保证数据拓扑关系不发生改变的前提下,根据密钥可对数据进行脱密,脱密后的数据依据密钥可进行恢复。本方法具有随机性、渐变性、可逆性等特点,提高了DOM栅格数据脱密的可靠性,完善了地理信息安全保护的理论与方法体系,可用于DOM栅格数据的公开发布等方面。
申请公布号 CN103093414A 申请公布日期 2013.05.08
申请号 CN201310023278.6 申请日期 2013.01.22
申请人 南京师范大学 发明人 闫娜;周卫
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 李媛媛
主权项 1.一种DOM栅格数据脱密与恢复方法,其特征在于,包括如下过程:(一)密钥生成过程步骤11,确定数据范围:获取原始栅格数据Raster的最小外接矩形R,R左下角坐标为(x<sub>min</sub>,y<sub>min</sub>),右上角坐标为(x<sub>max</sub>,y<sub>max</sub>),根据公式(1)得数据中心点坐标(x<sub>mid</sub>,y<sub>mid</sub>)、数据长度XL和数据宽度YL;<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mi>mid</mi></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>min</mi></msub><mo>+</mo><msub><mi>x</mi><mi>max</mi></msub><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>mid</mi></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>y</mi><mi>min</mi></msub><mo>+</mo><msub><mi>y</mi><mi>max</mi></msub><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mtd></mtr><mtr><mtd><mi>XL</mi><mo>=</mo><msub><mi>x</mi><mi>max</mi></msub><mo>-</mo><msub><mi>x</mi><mi>min</mi></msub></mtd></mtr><mtr><mtd><mi>YL</mi><mo>=</mo><msub><mi>y</mi><mi>max</mi></msub><mo>-</mo><msub><mi>y</mi><mi>min</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤12,确定数据变换量:具体步骤如下:输入数据总体变换量total,total>0,非线性变换量nonlinear,0<nonlinear<=total,根据公式(2)得到线性变换量linear;<maths num="0002"><![CDATA[<math><mrow><mi>linear</mi><mo>=</mo><msqrt><msup><mi>total</mi><mn>2</mn></msup><mo>-</mo><msup><mi>nonlinear</mi><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤13,计算线性变换量linear引起的中误差,确定影响变换效果的参数:焦距f、航高H、偏角<img file="FDA00002760607500013.GIF" wi="60" he="42" />倾角ω、旋角κ,具体步骤如下:a)焦距f∈(0,1),b)根据公式(3)计算航高H,<maths num="0003"><![CDATA[<math><mrow><mi>H</mi><msqrt><mi>XL</mi><mo>*</mo><mi>YL</mi></msqrt><mo>/</mo><mi>f</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>c)根据公式(4)计算线性变化量linear的扰动范围linearExtent,<maths num="0004"><![CDATA[<math><mrow><mi>linearExtent</mi><mo>=</mo><msqrt><mi>linear</mi></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>d)生成控制点集合,具体步骤如下:在最小外接矩形R范围内生成m*n个均匀网格,在每个网格中随机选取一个控制点,组成源控制点集合FromPoints={(Fx<sub>t</sub>,Fy<sub>t</sub>)|t=1,2,...m*n},m*n>=10,根据公式(5)计算每个目标控制点坐标(Tx<sub>t</sub>,Ty<sub>t</sub>)组成目标控制点集合ToPoints={(Tx<sub>t</sub>,Ty<sub>t</sub>)|t=1,2,...m*n},<maths num="0005"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>Tx</mi><mi>t</mi></msub><mo>=</mo><msub><mi>Fx</mi><mi>t</mi></msub><mo>+</mo><msub><mi>dir</mi><mn>1</mn></msub><mo>&times;</mo><mi>linear</mi><mo>+</mo><msub><mi>random</mi><mn>1</mn></msub><mo>&times;</mo><mi>linearExtent</mi></mtd></mtr><mtr><mtd><msub><mi>Ty</mi><mi>t</mi></msub><mo>=</mo><msub><mi>Fy</mi><mi>t</mi></msub><mo>+</mo><msub><mi>dir</mi><mn>2</mn></msub><mo>&times;</mo><mi>linear</mi><mo>+</mo><msub><mi>random</mi><mn>2</mn></msub><mo>&times;</mo><mi>linearExtent</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中:方向参数dir<sub>1</sub>∈{1,-1}、dir<sub>2</sub>∈{1,-1},控制点扰动参数random<sub>1</sub>和控制点扰动参数random<sub>2</sub>在[-1.0,1.0]范围内随机选取,e)坐标归一化,根据公式(6)对预案控制点集合FromPoints和目标控制点集合ToPoints进行归一化处理得到新坐标的源控制点集合FromPoints’={(Fx<sub>t</sub>’,Fy<sub>t</sub>’)|t=1,2,...m*n}和目标控制点集合ToPoints’={(Tx<sub>t</sub>’,Ty<sub>t</sub>’)|t=1,2,...m*n},<maths num="0006"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msup><msub><mi>Fx</mi><mi>t</mi></msub><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msub><mi>Fx</mi><mi>t</mi></msub><mo>-</mo><msub><mi>x</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mo>/</mo><mi>H</mi></mtd></mtr><mtr><mtd><msup><msub><mi>Fy</mi><mi>t</mi></msub><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msub><mi>Fy</mi><mi>t</mi></msub><mo>-</mo><msub><mi>y</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mo>/</mo><mi>H</mi></mtd></mtr><mtr><mtd><msup><msub><mi>Tx</mi><mi>t</mi></msub><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msub><mi>Tx</mi><mi>t</mi></msub><mo>-</mo><msub><mi>m</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mo>/</mo><mi>H</mi></mtd></mtr><mtr><mtd><msup><msub><mi>Ty</mi><mi>t</mi></msub><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msub><mi>Ty</mi><mi>t</mi></msub><mo>-</mo><msub><mi>y</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mo>/</mo><mi>H</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>f)计算偏角<img file="FDA00002760607500022.GIF" wi="61" he="41" />倾角ω和旋角κ,根据公式(7)利用最小二乘法对新坐标的源控制点集合FromPoints’中源控制点和目标控制点集合ToPoints’中目标控制点进行拟合解算得到偏角<img file="FDA00002760607500023.GIF" wi="60" he="41" />倾角ω、旋角κ,<img file="FDA00002760607500024.GIF" wi="1533" he="140" />g)计算线性变换中误差accuracy<sub>1</sub>,具体步骤如下:在最小外接矩形R范围内均匀选取s<sub>1</sub>*s<sub>2</sub>个样本点,s<sub>1</sub>*s<sub>2</sub>>m*n,组成误差计算源控制点集合BPoints={(Bx<sub>t</sub>,By<sub>t</sub>)|t=1,2,...s<sub>1</sub>*s<sub>2</sub>},根据公式(8)和偏角<img file="FDA00002760607500025.GIF" wi="61" he="42" />倾角ω、旋角κ计算目标控制点坐标得到误差计算目标控制点集合APoints={(Ax<sub>t</sub>,Ay<sub>t</sub>)|t=1,2,...s<sub>1</sub>*s<sub>2</sub>},(Bx<sub>t</sub>’,By<sub>t</sub>’)是对误差计算源控制点(Bx<sub>t</sub>,By<sub>t</sub>)进行归一化处理得到的坐标,<img file="FDA00002760607500026.GIF" wi="1320" he="417" />根据公式(9)计算中误差accuracy<sub>1</sub>,<maths num="0007"><![CDATA[<math><mrow><msub><mi>accuracy</mi><mn>1</mn></msub><mo>=</mo><msqrt><mi>&Sigma;</mi><mrow><mo>(</mo><msup><mrow><mo>(</mo><msub><mi>Ax</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Bx</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>Ay</mi><mi>t</mi></msub><mo>-</mo><msub><mi>By</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mo>/</mo><msub><mi>s</mi><mn>1</mn></msub><mo>*</mo><msub><mi>s</mi><mn>2</mn></msub></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></math>]]></maths>h)调节目标控制点集合,具体步骤如下:如果|linear/accuracy<sub>1</sub>-1|>0.01,则根据公式(10)调节每个原目标控制点坐标(Tx<sub>t</sub>,Ty<sub>t</sub>),得到新的目标控制点坐标(NTx<sub>t</sub>,NTy<sub>t</sub>),用新的目标控制点替代原目标控制点即Tx<sub>t</sub>=NTx<sub>t</sub>、Ty<sub>t</sub>=NTy<sub>t</sub>,得到目标控制点集合ToPoints={(Tx<sub>t</sub>,Ty<sub>t</sub>)|t=1,2,...m*n},<maths num="0008"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>NTx</mi><mi>t</mi></msub><mo>=</mo><msub><mi>Fx</mi><mi>t</mi></msub><mo>+</mo><mrow><mo>(</mo><mi>linear</mi><mo>/</mo><mi>accurac</mi><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>Tx</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Fx</mi><mi>t</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>NTy</mi><mi>t</mi></msub><mo>=</mo><msub><mi>Fy</mi><mi>t</mi></msub><mo>+</mo><mrow><mo>(</mo><mi>linear</mi><mo>/</mo><mi>accurac</mi><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>Ty</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Fy</mi><mi>t</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow></math>]]></maths>i)循环步骤e)-h)直至|linear/accuracy<sub>1</sub>-1|<=0.01,得到最终的偏角<img file="FDA00002760607500031.GIF" wi="60" he="42" />倾角ω、旋角κ;步骤14,计算非线性变换量nonlinear引起的中误差,确定参数j<sub>0</sub>-j<sub>9</sub>,具体步骤如下:a)生成控制点高程值Fz<sub>t</sub>,利用公式(11)计算控制点高程值最小值hMin,在(hMin,H)和(-H,-hMin)范围内给每个控制点随机选取一个值作为高程值Fz<sub>t</sub>,生成三维源控制点集合FromPoints={(Fx<sub>t</sub>,Fy<sub>t</sub>,Fz<sub>t</sub>)|t=1,2,...m*n},<maths num="0009"><![CDATA[<math><mrow><mi>hMin</mi><mo>=</mo><mi>H</mi><mo>*</mo><mi>nonlinear</mi><mo>/</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>mid</mi></msub><mo>-</mo><msub><mi>x</mi><mi>min</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>mid</mi></msub><mo>-</mo><msub><mi>y</mi><mi>min</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow></math>]]></maths>b)根据公式(12)对生成的三维源控制点集合FromPoints进行最小二乘解算,得到参数j<sub>0</sub>-j<sub>9</sub>,Fz<sub>t</sub>=j<sub>0</sub>+j<sub>1</sub>Fx<sub>t</sub>+j<sub>2</sub>Fy<sub>t</sub>+j<sub>3</sub>Fx<sub>t</sub><sup>2</sup>+j<sub>4</sub>Fy<sub>t</sub><sup>2</sup>+j<sub>5</sub>Fx<sub>t</sub>Fy<sub>t</sub>+j<sub>6</sub>Fx<sub>t</sub>Fy<sub>t</sub><sup>2</sup>+j<sub>7</sub>Fx<sub>t</sub><sup>2</sup>Fy<sub>t</sub>+j<sub>8</sub>Fy<sub>t</sub><sup>3</sup>+j<sub>9</sub>Fy<sub>t</sub><sup>3</sup>(12)c)计算非线性变换中误差accuracy<sub>2</sub>,具体步骤如下:把步骤13中g)步中生成的BPoints作为误差计算源控制点集合,根据公式(13)和参数j<sub>0</sub>-j<sub>9</sub>解算每个源控制点(Bx<sub>t</sub>,By<sub>t</sub>)的Bz<sub>t</sub>值,得到三维源控制点集合BPoints={(Bx<sub>t</sub>,By<sub>t</sub>,Bz<sub>t</sub>)|t=1,2,...,s<sub>1</sub>*s<sub>2</sub>},Bz<sub>t</sub>=j<sub>0</sub>+j<sub>1</sub>Bx<sub>t</sub>+j<sub>2</sub>By<sub>t</sub>+j<sub>3</sub>Bx<sub>t</sub><sup>2</sup>+j<sub>4</sub>By<sub>t</sub><sup>2</sup>+j<sub>5</sub>Bx<sub>t</sub>By<sub>t</sub>+j<sub>6</sub>Bx<sub>t</sub>By<sub>t</sub><sup>2</sup>+j<sub>7</sub>Bx<sub>t</sub><sup>2</sup>By<sub>t</sub>+j<sub>8</sub>By<sub>t</sub><sup>3</sup>+j<sub>9</sub>By<sub>t</sub><sup>3</sup>(13)根据公式(14)对三维源控制点集合BPoints进行计算得到目标控制点集合APoints={(Ax<sub>t</sub>,Ay<sub>t</sub>)|t=1,2,...,s<sub>1</sub>*s<sub>2</sub>},<maths num="0010"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>Ax</mi><mi>t</mi></msub><mo>=</mo><mrow><mo>(</mo><mo>-</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>Bx</mi><mi>t</mi></msub><mo>-</mo><msub><mi>x</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><msub><mi>Bz</mi><mi>t</mi></msub><mo>-</mo><mi>H</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>*</mo><mi>H</mi><mo>/</mo><mi>f</mi><mo>+</mo><msub><mi>x</mi><mi>mid</mi></msub></mtd></mtr><mtr><mtd><msub><mi>Ay</mi><mi>t</mi></msub><mo>=</mo><mrow><mo>(</mo><mo>-</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>By</mi><mi>t</mi></msub><mo>-</mo><msub><mi>y</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><msub><mi>Bz</mi><mi>t</mi></msub><mo>-</mo><mi>H</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>*</mo><mi>H</mi><mo>/</mo><mi>f</mi><mo>+</mo><msub><mi>y</mi><mi>mid</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow></math>]]></maths>根据公式(15)计算中误差accuracy<sub>2</sub>,<maths num="0011"><![CDATA[<math><mrow><msub><mi>accuracy</mi><mn>2</mn></msub><mo>=</mo><msqrt><mi>&Sigma;</mi><mrow><mo>(</mo><msup><mrow><mo>(</mo><msub><mi>Ax</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Bx</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>Ay</mi><mi>t</mi></msub><mo>-</mo><msub><mi>B</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><msub><mi>s</mi><mn>1</mn></msub><mo>*</mo><msub><mi>s</mi><mn>2</mn></msub></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>15</mn><mo>)</mo></mrow></mrow></math>]]></maths>d)循环步骤a)-c),直至|nonlinear/accuracy<sub>2</sub>-1|<=0.01,得到最终参数j<sub>0</sub>-j<sub>9</sub>;步骤15,焦距f、航高H、偏角<img file="FDA00002760607500035.GIF" wi="60" he="41" />倾角ω、旋角κ、数据中心点坐标(x<sub>mid</sub>,y<sub>mid</sub>)、参数j<sub>0</sub>-j<sub>9</sub>组成密钥Key,用非对称加密算法RSA对密钥Key进行加密并存入密钥文件Key.txt;(二)脱密过程步骤21,读取密钥文件Key.txt,解密后提取密钥Key;步骤22,打开原始栅格数据Raster,根据原始栅格数据Raster创建新栅格数据CRaster,新栅格数据CRaster的空间参照、栅格起点O(x<sub>o</sub>,y<sub>o</sub>)、像元长PX与宽PY、栅格行数row与列数column等属性与原始栅格数据Raster相同,但需添加一个波段,即如果原始栅格数据Raster有band个波段,则新栅格数据CRaster有band+1个波段,栅格像素类型改为PT_DOUBLE;步骤23,循环处理每个像元,具体步骤如下:a)获取像元坐标与像元值,设每个像元中心点为像元坐标,根据公式(16)得每个像元的坐标为p<sub>i,j</sub>(x<sub>i,j</sub>,y<sub>i,j</sub>,z<sub>i,j</sub>),若波段值bs<band+1,则获取原栅格数据像元p<sub>i,j</sub>的像元值赋值给v<sub>i,j</sub>,若波段值bs=band+1,则此像元的像元值v<sub>i,j</sub>=z<sub>i,j</sub>,<maths num="0012"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>x</mi><mi>o</mi></msub><mo>+</mo><mi>i</mi><mo>*</mo><mi>PX</mi><mo>+</mo><mi>PX</mi><mo>/</mo><mn>2</mn></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>y</mi><mi>o</mi></msub><mo>-</mo><mi>j</mi><mo>*</mo><mi>PY</mi><mo>-</mo><mi>PY</mi><mo>/</mo><mn>2</mn></mtd></mtr><mtr><mtd><msub><mi>z</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>j</mi><mn>0</mn></msub><mo>+</mo><msub><mi>j</mi><mn>1</mn></msub><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>j</mi><mn>2</mn></msub><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>j</mi><mn>3</mn></msub><msup><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mn>2</mn></msup><mo>+</mo><msub><mi>j</mi><mn>4</mn></msub><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mn>2</mn></msup><mo>+</mo><msub><mi>j</mi><mn>5</mn></msub><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>j</mi><mn>6</mn></msub><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mn>2</mn></msup><mo>+</mo><msub><mi>j</mi><mn>7</mn></msub><msup><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mn>2</mn></msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>j</mi><mn>8</mn></msub><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mn>3</mn></msup><mo>+</mo><msub><mi>j</mi><mn>9</mn></msub><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mn>3</mn></msup></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中:i=0,1,2,...,column-1;j=0,1,2,...,row-1;b)转换像元坐标,根据公式(17)和密钥Key,对每个像元坐标p<sub>i,j</sub>(x<sub>i,j</sub>,y<sub>i,j</sub>,z<sub>i,j</sub>)进行计算,得到像元坐标p<sub>i,j</sub>’(x<sub>i,j</sub>’,y<sub>i,j</sub>’,z<sub>i,j</sub>),<img file="FDA00002760607500042.GIF" wi="1512" he="298" />c)坐标归一化,根据密钥Key和公式(18)对每个像元坐标p<sub>i,j</sub>’进行归一化处理得到脱密后像元坐标p<sub>i,j</sub>”(x<sub>i,j</sub>”,y<sub>i,j</sub>”,z<sub>i,j</sub>),<maths num="0013"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msup><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mo>=</mo><msub><mi>x</mi><mi>mid</mi></msub><mo>+</mo><msup><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>&prime;</mo></msup><mo>*</mo><mi>H</mi><mo>/</mo><mi>f</mi></mtd></mtr><mtr><mtd><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mo>=</mo><msub><mi>y</mi><mi>mid</mi></msub><mo>+</mo><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>&prime;</mo></msup><mo>*</mo><mi>H</mi><mo>/</mo><mi>f</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>18</mn><mo>)</mo></mrow></mrow></math>]]></maths>d)判断像元p<sub>i,j</sub>”是否在新栅格数据CRaster范围内,具体步骤如下:如果x<sub>o</sub>≤x<sub>i,j</sub>″≤x<sub>o</sub>+PX*column,y<sub>o</sub>≤y<sub>i,j</sub>″≤y<sub>o</sub>+PY*row,则像元p<sub>i,j</sub>”在新栅格数据CRaster内,根据公式(19)得到像元p<sub>i,j</sub>”在新栅格数据CRaster中的对应像元cp<sub>a,b</sub>(x<sub>i,j</sub>”,y<sub>i,j</sub>”),给像元cp<sub>a,b</sub>赋值即像元值cv<sub>a,b</sub>=v<sub>i,j</sub>;<img file="FDA00002760607500044.GIF" wi="1212" he="160" />其中,<img file="FDA00002760607500045.GIF" wi="64" he="66" />表示向下取整,步骤24,填充缺失像元,具体步骤如下:如果波段值bs=band+1,则判断像元cp<sub>a,b</sub>周围的8个像元是否每个波段像元值全为0,如果是则为缺失像元,将像元cp<sub>a,b</sub>的每个波段的像元值cv<sub>a,b</sub>赋值给缺失像元;步骤25,循环步骤23到24,直至每个波段处理完毕;步骤26,如果原栅格数据存在与之相邻的栅格数据,则打开此相邻的栅格数据,判断相邻的栅格数据脱密后是否有像元落在新栅格数据CRaster中,如果有,循环步骤23到步骤26,直至相邻数据处理完毕,保存脱密后的栅格数据CRaster;(三)恢复过程步骤31,读取密钥文件Key.txt,解密后提取密钥Key;步骤32,打开脱密后的栅格数据CRaster,根据脱密后的栅格数据CRaster创建新的栅格数据IRaster,新栅格数据IRaster的空间参照、栅格起点O(x<sub>o</sub>,y<sub>o</sub>)、像元长PX与宽PY、栅格行数row与列数column等属性与栅格数据CRaster相同,但需减少一个波段,即如果原始栅格数据CRaster有band+1个波段,则新栅格数据IRaster有band个波段;步骤33,循环处理每个像元,具体步骤如下:a)获取像元坐标与像元高程值,设每个像元中心点为像元坐标,根据公式(16)中x<sub>i,j</sub>,y<sub>i,j</sub>的计算公式得每个像元的坐标为p<sub>i,j</sub>(x<sub>i,j</sub>,y<sub>i,j</sub>),获取栅格数据CRaster波段值为band+1的像元的像元值并赋值给z<sub>i,j</sub>,得到像元的坐标为p<sub>i,j</sub>(x<sub>i,j</sub>,y<sub>i,j</sub>,z<sub>i,j</sub>),若波段值bs<band+1,则获取原栅格数据像元p<sub>i,j</sub>的像元值赋值给v<sub>i,j</sub>,b)坐标归一化,根据公式(20)和密钥Key,对每个像元坐标p<sub>i,j</sub>(x<sub>i,j</sub>,y<sub>i,j</sub>,z<sub>i,j</sub>)进行计算,得到像元坐标p<sub>i,j</sub>’(x<sub>i,j</sub>’,y<sub>i,j</sub>’,z<sub>i,j</sub>),<maths num="0014"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msup><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mo>/</mo><mi>H</mi></mtd></mtr><mtr><mtd><msup><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>&prime;</mo></msup><mo>=</mo><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>mid</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>f</mi><mo>/</mo><mi>H</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>20</mn><mo>)</mo></mrow></mrow></math>]]></maths>c)转换像元坐标,根据公式(21)和密钥Key对每个坐标p<sub>i,j</sub>’(x<sub>i,j</sub>’,y<sub>i,j</sub>’,z<sub>i,j</sub>)进行计算,得到恢复后的像元坐标p<sub>i,j</sub>”(x<sub>i,j</sub>”,y<sub>i,j</sub>”,z<sub>i,j</sub>),<img file="FDA00002760607500052.GIF" wi="1613" he="346" />d)判断像元p<sub>i,j</sub>”是否在新栅格数据IRaster范围内,具体步骤如下:如果x<sub>o</sub>≤x<sub>i,j</sub>″≤x<sub>o</sub>+PX*column,y<sub>o</sub>≤y<sub>i,j</sub>″≤y<sub>o</sub>+PY*row,则像元p<sub>i,j</sub>”在新栅格数据IRaster内,根据公式(19)得到像元p<sub>i,j</sub>”在新栅格数据IRaster中的对应像元ip<sub>a,b</sub>(x<sub>i,j</sub>”,y<sub>i,j</sub>”),给像元ip<sub>a,b</sub>赋值即像元值iv<sub>a,b</sub>=v<sub>i,j</sub>;步骤34,填充缺失像元,具体步骤如下:如果波段值bs=band,则判断像元ip<sub>a,b</sub>周围的8个像元是否每个波段像元值全为0,如果是则为缺失像元,将像元ip<sub>a,b</sub>的每个波段的像元值iv<sub>a,b</sub>赋值给缺失像元;步骤35,循环步骤33到34,直至每个波段处理完毕;步骤36,如果脱密栅格数据存在与之相邻的栅格数据,则打开此相邻的栅格数据,判断相邻的栅格数据恢复后是否有像元落在新栅格数据IRaster中,如果有,循环步骤33到步骤36,直至相邻数据处理完毕,保存恢复后的数据IRaster。
地址 210046 江苏省南京市栖霞区文苑路1号