0%

人工智能海底地形反演(1)-单波束水深质控

前面的一篇卫星测高综述研究表明,与之交叉的海洋大地测量有轻微衰退迹象,在其他地学领域火热朝天的人工智能未能在大地测量、海洋测绘方面得到良好发展,是一个奇怪的现象。这其中必然有一定的历史和现实原因,在这里我们暂不做这方面的讨论。从本节开始,小编推出人工智能的海洋测量应用计划。

凡是通过经验关系得到的,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=1p
gmt gmtset FONT_ANNOT_PRIMARY 7p,Helvetica,black FONT_LABEL 7p,Helvetica,black

ps=fig1.ps

gmt pscoast -JM4.5i -R-16/10/-6/10 -Dl -A10000/0/1 -Slightblue -Glightyellow -BWSen -Bx5g5 -By2g2 --FONT_TITLE=10p -K -W0.1p --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/4c -Dc -A5000 -Gpink -Swhite -O -X3.3i -Y1.6i -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/5c -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.1p,red,- >> $ps
gmt psxy -R -J -O -K draper.txt -Sc0.05c -Gblue >> $ps
gmt regress -Ey -N2 -Fxm draper.txt | gmt psxy -R -J -O -K -W0.5p >> $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.8i/1.5i -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万元,相关工作正在准备中。有兴趣的读者可以回复本文索取比赛通知(初稿)。