主权项 |
一种高程数据脱密与恢复方法,其特征在于,包括如下过程:(一)高程数据的脱密过程步骤11:确定脱密变换量输入高程数据总体变换量sumpara和非线性变换量nonlinear,其中,0<nonlinear<=sumpara;步骤12:确定高程数据范围打开原始高程数据H,获取其最小外接矩形R,其中,R左下角坐标为(xmin,ymin),右上角坐标为(xmax,ymax);步骤13:计算非线性变换参数a0、a1、a2、a3、a4、a5、非线性变换缩放系数scale和线性变换量linear,具体步骤如下:a)获取高程点数据,设高程点集合为Points={(Pxi,Pyi,Pzi)|i=1,2,...,k},其中k为高程点个数;b)判断高程点数量,如果k<6,则返回错误,否则根据公式(1)对高程点集合Points进行最小二乘解算,得到非线性变换参数a0、a1、a2、a3、a4、a5;Pzi=a0+a1Pxi+a2Pyi+a3Pxi2+a4PxiPyi+a5Pyi2 (1)c)在最小外接矩形R范围内生成m*n个均匀样本点组成样本点集合SamplePoints={(Sxj,Syj)|j=1,2,...,num},其中m是X方向样本点数量,n是Y方向样本点数量,m>=3,n>=3,num=m*n,根据公式(2)和非线性变换参数a0、a1、a2、a3、a4、a5计算样本点高程值,得到三维样本点集合SamplePoints={(Sxj,Syj,Szj)|j=1,2,...,num};Szj=a0+a1Sxj+a2Syj+a3Sxj2+a4SxjSyj+a5Syj2 (2)d)遍历三维样本点集合SamplePoints,获取其高程值中的最大值hMax和最小值hMin,根据公式(3)计算高程非线性变换放大或缩小倍数scale,scale=nonlinear/(hMax‑hMin) (3)e)遍历三维样本点集合SamplePoints,根据公式(4)计算每个样本点新的高程值,生成新的三维样本点集合SamplePoints’={(Sxj,Syj,Szj’)|j=1,2,...,num},Szj’=Szj*scale (4)f)根据公式(5)计算高程线性变换量linear, <mrow> <mi>linear</mi> <mo>=</mo> <mi>sumpara</mi> <mo>-</mo> <munderover> <mi>Σ</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>num</mi> </munderover> <msup> <msub> <mi>Sz</mi> <mi>j</mi> </msub> <mo>′</mo> </msup> <mo>/</mo> <mi>num</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>步骤14:修改原始数据高程值,具体步骤如下:a)根据公式(6)和非线性变换参数a0、a1、a2、a3、a4、a5计算利用原始高程点拟合的高程值Pzi’;Pzi’=a0+a1Pxi+a2Pyi+a3Pxi2+a4PxiPyi+a5Pyi2 (6)b)根据公式(7)计算脱密后高程点集合Points中高程值Pzi”,生成脱密后的高程点集合Points’={(Pxi,Pyi,Pzi”)|i=1,2,...,k};Pzi″=Pzi+Pzi′*scale+linear (7)步骤15:根据公式(8)计算高程脱密中误差RMSE, <mrow> <mi>RMSE</mi> <mo>=</mo> <msqrt> <munderover> <mrow> <mi>Σ</mi> </mrow> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>k</mi> </munderover> <mi></mi> <msup> <mrow> <mo>(</mo> <msup> <msub> <mi>P</mi> <mi>z</mi> </msub> <mrow> <mo>′</mo> <mo>′</mo> </mrow> </msup> <mo>-</mo> <msub> <mi>Pz</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>/</mo> <mi>num</mi> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>步骤16:保存脱密后的高程数据DH,非线性变换参数a0‑a5及非线性变换放大或缩小倍数scale、线性变换量linear,并组成密钥Key,使用DES对称加密算法对密钥Key进行加密并存入密钥文件Key.txt;(二)脱密后高程数据的恢复过程步骤21:读取密钥文件Key.txt,使用DES算法解密后提取密钥Key;步骤22:打开脱密后的高程数据DH,获取脱密后的高程点集合Points’={(Pxi,Pyi,Pzi”)|i=1,2,...,k},根据密钥中非线性变换参数a0‑a5和公式(6)计算利用高程点拟合的高程值Pzi’;步骤23:根据公式(9)及密钥和生成的高程值Pzi’计算每个高程点恢复后的高程值Pzi,生成恢复后的高程点集合Points={(Pxi,Pyi,Pzi”)|i=1,2,...,k},Pzi=Pzi″‑Pzi′*scale‑linear (9)步骤24:保存恢复后的高程数据RH。 |