推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的多波束测深数据压缩研究

更新时间:2019-12-30 09:21:31 大小:3M 上传用户:songhuahua查看TA发布的资源 标签:python数据压缩 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

在曲线数据压缩的垂距限差法基础上,引入总体最小二乘算法对多波束测深的ping条带数据进行压缩,利用Python工具库实现总体最小二乘压缩算法并集成到ArcToolbox中。与传统道格拉斯-普克压缩算法具有接近的压缩比,但精度更高,能够在整体上更好地表示原始数据。


部分文件列表

文件名 大小
基于Python的多波束测深数据压缩研究.pdf 3M

部分页面预览

(完整内容请下载后查看)
Aug.,2014  
Vol.12,No.4  
2014 年 8 月  
第 12 卷第 4 期  
地 理 空 间 信 息  
GEOSPATIAL INFORMATION  
doi:10.11709/j.issn.1672-4623.2014.04.041  
基于 Python 的多波束测深数据压缩研究  
张明希 1,许捍卫 1, 于艳超 1,俞礼彬 1  
(1. 河海大学 地球科学与工程学院,江苏 南京 210098)  
摘ꢀ 要 在曲线数据压缩的垂距限差法基础上,引入总体最小二乘算法对多波束测深的 ping 条带数据进行压缩,利用 Python  
工具库实现总体最小二乘压缩算法并集成到 ArcToolbox 中。与传统道格拉斯 - 普克压缩算法具有接近的压缩比,但精度更高,  
能够在整体上更好地表示原始数据。  
关键词 多波束数据 ; 抽稀 ; 总体最小二乘 Python  
中图分类号 P229.3  
文献标志码 B  
文章编号 1672-4623(2014)04-0117-03  
多波束测深系统是一种高效、高精度的水下地形  
测量系统据繁杂使单个 ping 也能产生几兆数据,  
对多波束测深数据的压缩处理非常重要。多波束测深  
系统沿着测线逐 ping 观测,并以 ping 为顺序存储,可  
以从 Ping 数据的压缩入手。关于数据压缩问题,国内  
外学者发展了许多算法。道格拉斯 - 普克算法(RDP)  
从整体上对曲线段进行考虑,通过保留特征点、删除  
冗余点来达到压缩目的 [1]。总体最小二乘(TLS)方法  
是近年发展起来的能同时顾及观测值误差和模型系数  
矩阵误差的数学方法 [2]。与 RDP 不同的是 ,TLS 算法  
没有简单地删除距离误差小于限差的点 , 而是略微放松  
对端点的精度要求 , 通过 TLS 作直线拟合 , 从而提高曲  
线压缩的精度,在整体上最优逼近原始曲线。卢银宏  
[3] 综合利用 RDP 算法和 TLS 算法来压缩多波束测  
深数据用 Matlab 仿真二维 ping 数据进行压缩处理,  
忽略了当曲线的曲率很大时,两条拟合直线的交叉点  
可能会远离原始曲线的情况。本文基于 ArcPy 站点包  
和开源 Python 工具库,以 Python 作为脚本语言,开发  
了多波束测深三维 ping 数据点抽稀算法,具有易用性  
和重用性特点。  
秀的科学计算扩展库 SciPy、NumPy(包括科学计算、  
统计分析、可视化等模块高效的空间分析开源库  
GDAL、Shapely 等。 其 中 SciPy 包 含 的 Python 模 块  
有最优化、线性代数、积分、插值、特殊函数、快速  
傅里叶变换、信号处理和图像处理、常微分方程等函  
[6]Shapely 库是针对平面几何对象的空间分析工具。  
基于点集理论将几何对象分为点线面 3 类型,  
每种数据类型又有 3 个属性部集界集部集。  
Shapely 以 Python 格的代码形式访问 GEOS 库将  
PostGIS 的一般操作用 Python 语言加以实现,适合处理  
一些非常规的地理空间数据问题。  
2ꢀ 基于 Python 的总体最小二乘点抽稀  
2.1ꢀ 总体最小二乘直线拟合模型  
传统最小二乘法拟合直线时,一般令直线方程为 :  
y = ax + b  
(1)  
其中,xy 是测点坐标 ab 为待估参数。最小二乘  
法认为测量误差都存在于 y 中,而 x 没有误差或在进  
行平差时不予考虑。则误差方程可以表示为 :  
V = AX  
L
-
(2)  
R
S
S
S
S
S
S
S
V
R
V
R
S
S
S
V
vy1  
vy2  
x1 1  
x2 1  
y1  
y2  
W
W
W
W
W
W
W
S
S
S
W
W
W
W
W
W
1ꢀ Python 空间数据处理特点  
a
b
Python 语言作为稳定的动态脚本语言与 ArcGIS 高  
度集成,其灵活性和重用性可以方便实现地理空间数  
据的处理流程 [4]。目前ArcGIS10.0 已集成基于 Python  
的 ArcPy 站 点 包, 可 理 解 为 ArcGIS 的 Python API。  
ArcPy 提供了大量类和函数,可以轻松执行 ArcGIS 工  
具箱中的工具,并创建原生对象,如几何、栅格、空  
间参考等 [5]。  
S $ $ W  
S $ W  
$
$
$
=
=
=
=
G
=
,L  
其中,V  
,A  
,X  
S
S
S
S
T
W
W
W
W
X
S
S
S
S
T
W
W
W
W
X
$
$
$
$
$
$
S
S
W
W
xm  
1
ym  
v
T
ym
X  
按最小二乘准则,得出其最小二乘解为 :  
X
ATPA -1 ATPL  
=(  
(3)  
P
一般认为测值 y 的获取方法相同此 为单位阵。  
最小二乘只认为观测值 y 含有测量误差实上 x、  
另一方面,Python 具有高级的内建数据结构,优  
收稿日期 2013-10-10。  
项目来源 家自然科学基金资助项目(41101374。  
第 12 卷第 4 期  
2.2ꢀ 基于总体最小二乘的多波束数据点抽稀算法  
·1 1 8·  
地理空间信息  
y 均是采用测量方法获取的,按照总体最小二乘思想,  
应该对观测值 x y 都进行改正。考虑到观测值 x 的误  
差,则条件方程为 :  
RDP 算法在给定限差情况下的逼近精度不高。如  
图 1,当采用 RDP 算法对所示曲线数据压缩时,会得  
到线 ABC。在保留点 AB 之间,被删除的点全部位于  
保留直线的一侧 保留点 BC 之间,被删除点也全部  
位于保留直线的一侧。显然,用 ABC 表示原始数据具  
有明显的偏差,且均方误差较大。如图 1a,采用基于  
TLS 的分段直线拟合算法,对 AB BC 之间的原始点  
分别作直线拟合,得到两条直线 A'B'B'C',它们相交  
B'。此时,利用 A'-B'-C' 代替 A-B-C,可以提高对 A、  
B C 点的压缩精度。但在个别情况下,如图 1b,曲  
线的曲率很大时,两条拟合直线的交叉点可能远离原  
始曲线,明显偏离了原曲线的形状。  
/
/
(4)  
+
=
+
+
=
yi vyi a(xi vxi) b ( i 1,2,g,m)  
写成矩阵形式为 :  
Vy  
L
A + E  
X
+
=(  
(5)  
A
V
A
其中, 为 y 的改正数 EA 为系数阵 的改正矩阵。  
y
由于系数阵里含有固定列,运用混合总体最小二乘的  
迭代解法 [7], 求出参数 a b。  
总体最小二乘直线拟合算法需要在 SciPy 的线性代  
数库 linalg 基础上,利用 NumPy 丰富的数组处理函数,  
按照总体最小二乘的迭代解法,重新编写 Python 脚本  
计算。  
Cÿ  
Bÿ  
Cÿ  
B
C
C
C
Cÿ  
Aÿ  
A
Aÿ  
A
PC  
B
Aÿ  
B
A
PB  
Bÿ  
图 1ꢀ 直线拟合和交叉点远离原始曲线的处理  
a
b
c
ε
利用多波束测深的 ping 点数据,每个 ping 的相邻  
数据点由相邻波束脚印的中心确定,每个 ping 描述了  
某个横向的地形剖面,其 xyz 坐标可映射到二维平  
面。基于道格拉斯 - 普克的总体最小二乘三维点抽稀  
算法的基本步骤如下 :  
征点(MxMy)间距离 d。如果 d 大于限差 ,将直线  
拟合交点坐标替换成特征点,再运用基于 Shapely 库函  
数中的曲线 intersection 方法求出拟合直线段和原始曲  
线的交点。若某段出现多个交点,排序得出距特征点  
最近的交点,并补充到直线拟合交点坐标集中 则  
只保留直线拟合交点坐标。  
Step1 多波束测深 ping 点三维坐标(xyz)  
d
d
变换为二维曲线坐标( xy计算 ping 条带上某  
Step5 步骤 4 得到的二维点集,解算空间平面  
坐标方程,反算得到抽稀后的三维 ping 点数据。  
算法用 Python 脚本实现后加到 ArcToolBox 中,  
如图 2。  
O 到空间直线 AB(ping 条带上的首尾点)的垂足坐  
d
Nxnynzn然后求得 N 到点 A C 的距离 x、  
d
y,其中 Ax1y1z1Bx2y2z2)为 :  
Z
=
+
-
xn x1 k(x2 x1)  
]
]
=
+
-
y1 k(y2 y1)  
y
[
n
]
]
=
+
-
zn z1 k(z2 z1)  
\
-
-
+
-
-
+
-
2
-
(x1 xo)(x2 x1) (y1 yo)(y2 y1) (z1 zo)(z2 z1)  
=
k
2
2
-
(x2 x1)  
+
-
(y2 y1)  
+
-
(z2 z1)  
Step2 用 RDP 算法对曲线坐标作压缩抽稀,选  
取抽稀后的特征点(MxMy并标记特征点所对应的  
索引值 index。  
图 2ꢀ 总体最小二乘算法点抽稀工具界面  
Step3 索 index 和 index+1 中所包含的二维曲线  
点坐标对。考虑到 TLS 至少需要 3 个点坐标,当点坐  
标对数大于 2 时,利用 TLS 求出系数 ab。遍历所有  
index,求出直线拟合的交点坐标集(HiHjij=1,  
2,…记录其序号。  
2.3ꢀ 实ꢀ 验  
选取某江水下地形多波束测深数据 ping 条带数据  
做测试,验证算法的有效性和正确性。该 ping 带含有  
62 个测深点。用 ArcToolbox 中的自定义点抽稀工具脚  
本进行实例计算。  
Step4 算直线拟合的交点坐标(HiHj)和特  
根据国际海道测量规范 s44 特等测量的精度要求 ,  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载