前面的一篇卫星测高综述研究表明,与之交叉的海洋大地测量有轻微衰退迹象,在其他地学领域火热朝天的人工智能未能在大地测量、海洋测绘方面得到良好发展,是一个奇怪的现象。这其中必然有一定的历史和现实原因,在这里我们暂不做这方面的讨论。从本节开始,小编推出人工智能的海洋测量应用计划。
凡是通过经验关系得到的,AI必然也可以得到,而且由于AI的非线性特征,它还可能表现更好。我们第一个AI任务是卫星测高重力的地形反演。大家知道,通过卫星测高可以得到重力,通过重力可以得到海底地形,在地形反演环节应用了地形和重力之间的经验关系,因此AI必然也是可以在地形反演发挥作用的,但是效果能否超越最好的传统方法存疑。
接下来,我分如下几个步骤展示AI地形反演:
单波束数据质控
重力数据处理
训练数据的多维数组构建
CNN、DNN网络设计
预测和评估
本文先介绍数据质控,一个系列下来进展可能比较慢。热心读者朋友可以前往GAT组织下载完整的AI代码:https://github.com/GenericAltimetryTools/AIBathy
准备知识 读者在重复本系列工作之前,需要掌握一下编程技能:
Python编程
PyGMT、GMT
Xarray
海域选择 目前WoS可检索的AI重力地形反演仅1篇,作者是中国地质大学的Annan和wan,他们的研究区域位于非洲西海岸的几内亚湾。作者用到的深度学习网络为CNN,输入了重力异常、垂直重力梯度、垂线偏差和经纬度,标签为船测的单波束水深。作者得到了比传统方法较好的结果,那么这篇文献也鼓励我们继续开展AI领域的海洋大地测量应用。
R. F. Annan and X. Wan, “Recovering Bathymetry of the Gulf of Guinea Using Altimetry-Derived Gravity Field Products Combined via Convolutional Neural Network,” Surv Geophys, Jul. 2022, doi: 10.1007/s10712-022-09720-5.
区域绘图 我们为了进行方法和结果的比较,也选择几内亚湾进行试验。研究区域的位置示意和单波束轨迹图如下:
上图是通过GMT绘制,另外还用到了一些基本的awk的数据筛选操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/usr/bin/env bash gmt gmtset FORMAT_GEO_MAP = dddF MAP_FRAME_WIDTH=1 p gmt gmtset FONT_ANNOT_PRIMARY 7 p,Helvetica,black FONT_LABEL 7 p,Helvetica,black ps=fig1.ps gmt pscoast -JM4.5 i -R-16 /10 /-6 /10 -Dl -A10000/0 /1 -Slightblue -Glightyellow -BWSen -Bx5g5 -By2g2 --FONT_TITLE=10 p -K -W0.1 p --MAP_ANNOT_OBLIQUE=45 > $ps awk 'NR%10 ==0 {print $1 ,$2 ,$3 }' ../data/bathy.xyz | gmt psxy -R -J -Sc0.01 -Ggray -O -K >> $ps gmt select ../data/bathy.xyz -R-15 /5 /-4 /4 -fg > subset.d awk 'NR%5 ==0 {print $1 ,$2 ,$3 }' subset.d | gmt psxy -R-16 /10 /-6 /10 -J -Sc0.03 -Gred -O -K >> $ps gmt pscoast -Rg -JG-0 /0 /4 c -Dc -A5000 -Gpink -Swhite -O -X3.3 i -Y1.6 i -K >> $ps echo -15 -4 >tmp.d echo -15 4 >>tmp.d echo 5 4 >>tmp.d echo 5 -4 >>tmp.d echo -15 -4 >>tmp.d gmt psxy tmp.d -W1p,red -R -J -O >> $ps gmt psconvert $ps -A -P -Tf
数据质控 单波束数据的下载渠道为美国NGDC,为了加速下载,可以通过框选的方式选择研究区域内数据(或者回复本文索取也可)。这个区域大概又60多个航次,时间较久远,因此质量可能不佳,我们先使用最新的GEBCO模型检查这批单波束数据。
1 2 3 4 5 6 7 8 9 10 ps=fig1.ps gmt psbasemap -R-15 /5 /-4 /4 -JM5c -BWSen+glightblue -Bx5g5 -By2g2 -K --MAP_ANNOT_OBLIQUE=45 > $ps gmt grdtrack ../guinea.txt -G../gebco.nc | awk '{print $1 ,$2 ,$3 -$4 }' > draper.txt gmt makecpt -Crainbow -T-500 /500 > colors.cpt gmt psxy draper.txt -R -J -O -K -Sc0.05 -Ccolors.cpt >> $ps gmt grdtrack ../guinea.txt -G../gebco.nc | awk '{print $1 ,$2 ,$3 -$4 }' | awk 'sqrt($3 *$3 )>500 {print $1 ,$2 ,$3 }' >draper.txt gmt psxy draper.txt -R -J -O -K -Sc0.1 -Gred >> $ps
通过上面的GMT代码,我们把和GEBCO差异大于500m的点全部显示出来,发现大约有466个误差较大的点。
1 2 $ gmt grdtrack ../guinea.txt -G../gebco.nc | awk '{print $1 ,$2 ,$3 ,$3 -$4 }' | awk 'sqrt($4 *$4 )>500 {print $1 ,$2 ,$3 }'| gmt info <Standard Input> : N = 466 <-14.9608/4.9988> <-3.8134/3.96975> <-5944/-80.2>
进一步可以直方图和回归分析展示单波束水深误差:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #!/usr/bin/env bash ps=compare.ps gmt grdtrack ../guinea.txt -G../gebco.nc | awk '{print $3 ,$4 }' >draper.txt gmt regress -Ey -N2 -Fxm draper.txt | head gmt psbasemap -R-6000 /-100 /-6000 /-100 -JX5c/5 c -P -K -Bxa1000f100+l"ship borne depth/m" -Bya1000f100+l"Predicted depth/m" -BWSne > $ps gmt regress -Ey -N2 -Fxmc -C95 draper.txt | gmt psxy -R -J -O -K -L+d -Glightorange >> $ps gmt regress -Ey -N2 -Fxym draper.txt | awk '{printf "> error\n %s %s\n %s %s\n " , $1 , $2 , $1 , $3 }' | gmt psxy -R -J -O -K -W0.1 p,red,- >> $ps gmt psxy -R -J -O -K draper.txt -Sc0.05 c -Gblue >> $ps gmt regress -Ey -N2 -Fxm draper.txt | gmt psxy -R -J -O -K -W0.5 p >> $ps awk '{print $1 -$2 }' draper.txt| gmt gmtmath STDIN -Sl MEAN = awk '{print $1 -$2 }' draper.txt| gmt gmtmath STDIN -Sl STD = echo -6000 -6000 "(a)" | gmt pstext -F+f8p,Helvetica,red+jBL -R -J -To -P -K -O -D0.05 -Wwhite -Gwhite >> $ps gmt grdtrack ../guinea.txt -G../gebco.nc | awk '{print $3 -$4 }'| gmt pshistogram -Bxaf+l"bathymetry (meter)" -Byaf+l"Counts" -BWSne -R-400 /400 /0 /4000 -JX1.8 i/1.5 i -Ggray -Z0 -T10 -O -Y6c >> $ps gmt psconvert $ps -P -Tg -A
质控仅一行代码:
1 gmt grdtrack ../guinea.txt -G../gebco.nc | awk '{print $1 ,$2 ,$3 ,$3 -$4 }' | awk 'sqrt($4 *$4 )<500 {print $1 ,$2 ,$3 }' > guinea.txtok
小结
AI重力地形反演文献严重偏少,一些问题仍开放待解决
单波束质量有不足,需要质控
GMT的track功能强大,结合awk可以实现质控
下节预告
重力数据处理
为活跃AI在海洋测绘和海洋大地测量领域的发展,可能组织一次算法比赛,暂定:2022“安海”卫星测高水深反演人工智能算法大赛,已落实好奖金2万元,相关工作正在准备中。有兴趣的读者可以回复本文索取比赛通知(初稿)。