0%

这里遥感(Remote Sensing)和海洋科学(oceanography)的学科分类参考了科睿唯安JCR(Journal Citation Reports)分类,其中遥感一共有34本期刊,海洋科学有66本。具体清单如下,红色表示为中科院TOP期刊,分区为2022年中科院升级版最新分区,IF(Impact Factor)为2022年发布的最新影响因子:

遥感期刊

海洋科学期刊

数据获取

就在今天,2022年中科院SCI期刊分区发布了。小编顾不上嗓子疼,抓紧上网找到比较全面的分区数据,分享给大家。

完整分区获取

可以直接查看: http://advanced.fenqubiao.com/

不用谢。

遥感期刊看点

中科院分区共设置了包括自然科学和社会科学在内的18个大类。地学遥感相关期刊主要分布在地球科学工程技术,实际上更多是在工程技术类。由于取消了基础版,只保留升级版,因此以后再不用纠结使用版本的问题了。

今年的分区变化喜人,总体上一些很好的老牌期刊合理的升区了,比如IEEE TGRS升级一区,还有大地测量的Journal of Geodesy也成为了一区。Remote Sensing、IEEE GRSL等期刊保持在二区,也基本合理。暂未发现降区的期刊。

下面列出一些重要的分区看点:

升区

  • IEEE TGRS,曾经多年的二区遥感顶刊,今年终于上了中科院一区。
  • Journal of Geodesy,大地测量领域的顶级期刊,升级到中科院一区。由于领域偏小,每年出版100篇左右(2021年122篇),可能在文献计量统计上略不占优,这个期刊大多年份在一区和二区徘徊,也在TOP和非TOP徘徊。
  • GRL,从二区升级到一区。
  • SURVEYS IN GEOPHYSICS, 从二区升级到一区。
  • IEEE Geoscience and Remote Sensing Magazine,IEEE地学遥感神刊,由于只发少量综述,IF奇高(13.9),中科院分区2021基础版一区,升级版三区,在2022年分到二区。

不变

  • REMOTE SENSING OF ENVIRONMENT,一区。
  • ISPRS Journal of Photogrammetry and Remote Sensing (P&RS),一区。
  • International Journal of Applied Earth Observation and Geoinformation,一区。
  • Remote Sensing,2022年分区仍然是二区,不过按照现在审稿水平(应收尽收)和发文数量(2022年至今已发5905篇),很可能在3年后发文破万,存在掉区和预警可能。
  • IEEE GRSL,二区。
  • IEEE JSTAR,三区。期刊开源之后,即从二区掉到三区,同时出版数量差不多翻了一倍,从开源之前年均不到500篇快速增长到2021年的950篇。
  • GPS solutions,2021年基础版三区,升级版一区,2022年升级版一区。

地学和工程技术分区清单

地学一区和二区













工程技术一区和二区















数量、类型和经费

单位

作者

题目

关键词

总结

虽然海洋遥感在海洋科学下面设立一个代码,但是海洋遥感领域的立项课题不限于本代码。如果您也从事海洋遥感,选择代码的时候需要多多考虑。

#清单

除面上和青年之外课题

面上

青年


SpaceX猎鹰9火箭于12月16日6:46(美国东部时间)成功发射SWOT卫星。图片来源:NASA

发射成功

经过了近20年的准备之后,刚才SpaceX猎鹰9火箭将SWOT卫星发射升空,目前火箭推进部分成功着落回收,SWOT载荷被送入预定轨道,并通讯正常。

SWOT全面工作还需要几个月的时间。法国制造的Ka波段雷达干涉仪(KaRIn)采用两个5m吊杆,需要在太空完全展开才可以工作。一旦就位,雷达高度计天线将开始发射干涉信号到地球表面,并计算信号返回卫星所需的时间,正是这些干涉雷达高度计的返回信号让SWOT能够非常精确地确定地表水高度。

水文

从本质上讲,这颗卫星将对水体进行3D成像,详细评估它们的时空变化。SWOT能够观测到所有大于100米宽的河流和大于6公顷的湖泊。

NASA/JPL 卫星测高首席科学家Lee-Lueng Fu博士说:“SWOT观测的河流和湖泊数据量将比目前已存在的数据量多几个数量级。”

“例如,目前1000个湖泊中只有10个得到了很好的调查。而我们将调查数百万个湖泊。”

海洋

对于海洋,SWOT将看到20公里宽的亚中尺度海流和涡旋形态。正是这种亚中尺度的海水旋转将热量和二氧化碳从大气中吸收,从而缓和了全球变暖。SWOT将有助于回答一个关键问题:海洋开始将大量热量排放回大气,而不是吸收热量的临界点是什么?

“SWOT也可以提高对海洋环流的认识,这有可能为航运、渔业甚至娱乐等更广泛行业提供重要信息,” NASA 海平面变化科学家Ben Hamlington解释道。

“我们还知道,小尺度涡旋负责将污染物输送到海洋周围,然后再输送到我们的海岸。包括石油泄漏或海啸后产生的海洋垃圾。”

定标

英国将参加即将到来的春季“定标和验证”活动,这将检查SWOT是否观测正常。

英国参与人员在布里斯托尔河口放置传感器,以便在SWOT从头顶飞过时进行定标。 选择河口是因为这里有世界上最大的潮差之一,水位存在巨大变化。

负责英国SWOT定标工作的布里斯托尔大学Bates教授说:“SWOT能够提供10厘米以内的高度变化。因此,我们必须以更准确的地面绝对高度去评估它”

“我们一直在使用验潮仪,并在它们上面安装GPS站,然后考虑温度、压力、盐度等所有潜在的变量。我们最终会得到一个非常准确的河口水位。”


2019年,波罗的海遥感影像捕捉到了卷入漩涡中的大量绿藻。

涡流(eddy)被忽视的时间太长了。这些湍流漩涡的大小从几公里到几百公里不等,它们从大洋环流中剥离,将热量和碳混合到更深的海洋,就像将奶油搅拌到咖啡中一样。它们是海洋中最有活力的旋转运动,对气候模型的正确性至关重要。但小尺度涡流也是卫星看不到的,除非它们碰巧卷入了大量的绿色浮游植物。

现在即将不一样了。在美国国家航空航天局(NASA)和法国国家空间研究中心(CNES)联合发射地表水和海洋地形(SWOT)卫星后,小尺度涡流以及陆地河湖将迅速成为焦点。这颗价值12亿美元的卫星预计12月15日从加州范登堡空军基地由SpaceX公司的猎鹰9号火箭发射。SWOT携带一个干涉测量高度计,可以测量几厘米之内的水面高度变化,使研究人员能够推断出水面的运动状态。伍兹霍尔海洋研究所(WHOI)的物理海洋学家J.Thomas Farrar说:”我们预计SWOT带来的变化将是巨大的。”


2022年11月18日,SWOT被移入加利福尼亚州范登堡太空部队基地的运输容器中。

法国图卢兹空间、地球物理和海洋学研究实验室的物理海洋学家Rosemary Morrow说,对于海洋学家来说,这就像戴上一副眼镜。这颗卫星将捕捉到小至7公里宽的涡流,每21天覆盖几乎整个地球。在陆地上,SWOT将能够绘制600多万个湖泊的高度变化图,同时还能捕捉到超过100米宽的河流的流量。它将取代来自地面的零星测量,并使水文领域比以往更具有经验性和全球性。北卡罗来纳大学教堂山分校的水文学家、SWOT淡水科学小组的联合领导Tamlin Pavelsky说:”它将帮助我们观察水循环在北极和非洲的运作方式–在那些我们没有实地数据的地方。”

近40年来,NASA和CNES发射了一系列雷达测高卫星,这些卫星使用雷达的反射脉冲来测量水面高度。卫星高度计监测到了全球海平面的加速上升,这是气候变化的一个基本指标。通过测量海洋表面的高度起伏,它们还跟踪到了地球上的大规模洋流。但是卫星粗糙的空间分辨率意味着河流和中小尺度漩涡是无法测量的。

在两个5米长度的基线杆帮助下,SWOT可利用干涉测高技术获得更高分辨率的水面高度形态,SWOT干涉基线两端都有一个天线来捕捉雷达脉冲的反射信号。这两个相距甚远的天线使SWOT有足够的分辨率来测量仅几公里宽的水面,从而使小尺度涡流进入视野。

有了精确的观测数据,水文学家将得到湖泊和河流的季节性水位变化,以及短期气候驱动因素(如厄尔尼诺现象)。对于海洋生态学家来说,SWOT将能够绘制世界主要河流的水位在大坝或堰塞湖的干扰下如何变化,以及这对水生动植物栖息地的影响程度。它还将看到河流浅滩和深潭的涟漪,这对研究河流如何演变是一个福音。SWOT将捕捉到洪水顺流而下的过程,这应该有助于洪水建模。

尽管SWOT计划运行3年,但其科学团队打算寻找其探测到的水流动力高度与陆地观测卫星任务(Landsat)的可见光影像之间的关联,例如变化的湖泊和河流宽度。Pavelsky说,这些可见的变化可以作为水位的替代指标,使研究人员能够继续关注地球的水循环情况。”即使SWOT消失了,你仍然可以继续这种分析。”

SWOT对中小尺度涡流的观测可能是其最大的成就。WHOI的物理海洋学家Sylvia Cole说,SWOT将检验在任何时候都存在的成千上万的中小尺度涡流对海洋的混合作用。 Morrow说,小尺度涡流对于热量和碳汇入两极海水发挥关键作用。她说,它们还将推动小型海域的热能和碳混合研究。”比如我们可能低估了地中海地区90%的能量,因为我们不知道这些较小规模涡流的结构。”

杜兰大学的物理海洋学家Sönke Dangendorf说,SWOT将推动研究海平面上升如何影响海岸线的变迁。Morrow说,SWOT还将促进飓风监测,因为中小涡流使水变暖,进一步助长更强的飓风。她补充说”我们不仅在表面,而且在更深处捕获了热量”。这些都是需要快速回答的重要问题,因为人类大部分生活在沿海地区。”在沿海地区,一切都会被更敏锐地感受到。”

近年来,基金申报和资助的情报本身已成为一种研究对象,对于机构研究实力评估以及科研人员项目申报有一定的指导作用。本文以2015-2020年国家自然科学基金资助的大地测量学469个项目为样本,浅析了大地测量学域的研究图景。

大地测量学是什么

大地测量学是准确测量和理解地球形状、空间方位和重力,为人类活动提供地球空间信息的学科,属于地球科学的一个分支。

其范畴主要包括:

  • 确定地球形状及其外部重力场及其随时间的变化,建立统一的大地测量坐标系,研究地壳形变(包括地壳垂直升降及水平位移),测定极移以及海洋水面地形及其变化等。
  • 研究月球及太阳系行星的形状及其重力场。
  • 建立和维持具有高科技水平的国家和全球的天文大地水平控制网和精密水准网以及海洋大地控制网,以满足国民经济和国防建设的需要。
  • 研究为获得高精度测量成果的仪器和方法等。
  • 研究地球表面向椭球面或平面的投影数学变换及有关的大地测量计算。
  • 研究大规模、高精度和多类别的地面网、空间网及其联合网的数学处理的理论和方法,测量数据库建立及应用等。
  • 大地测量学的一个特殊领域是海洋测量和河流的水文断面的研究。

数据来源

本文通过Letpub所收录的基金数据库检索得到2015-2020年资助的大地测量学科(含物理大地测量、动力大地测量和卫星大地测量)相关的项目,通过统计的方式简要分析项目研究关键词,未能从Letpub系统检索到的项目不在分析之列。

总体情况

据不完全统计,2015年至2020年六年以来在大地测量领域已获审批的各项国家自然科学基金项目共有469项,其中面上227项,青年195项,还包括专项项目1项,重点项目16项,优青1项,主任项目7项,港澳台合作2项,重大仪器1项,杰青3项,国际合作7项,地区项目7项,创新群体2项。具体项目清单附在在文末。

六年以来,每年申请获批的面上和青年项目数量如下表所示:

年份 2015 2016 2017 2018 2019 2020
面上 33 43 43 44 41 23*
青年 34 33 38 38 42 10*

从表中可以看出,基金委每年资助大地测量领域面上和青年项目均保持在30至45项之间,2020年减少可能是由于数据统计缺失造成的。

*比较遗憾,没有找到更为齐全的2020年和之后的数据。如果您有更加准确的数据库资源,可回复本文。

单位

据不完全统计,近六年以来,武汉大学是大地测量领域国家自然科学基金面上和青年项目获批人数最多的高校,共有95项,远远超过其他单位。中南大学、同济大学、长安大学、矿大等也获得较多资助。

负责人

上图为负责人姓名生成的词云图,据不完全统计共有7人在6年间获得了3次资助,分别是朱建军、涂锐、王琪、申文斌、徐新禹、李斐、李博峰,还有60人获得了2次资助。

内容分析

题目

给基金取一个题目,是写基金的第一步,题目定了,内容也就确定了,下面看看大家是怎么给基金取名的。

我们从资助题目中提取词条进行统计,首先使用最多的词汇是一些通俗共性词,比如研究这个词条共出现329次,这说明半数以上的基金偏好于使用研究这个词汇,基于出现116次,方法出现121次,模型出现75次,理论出现69次,此外联合融合利用面向顾及及其也是常用的共性词条。这个又包含了多源多维多元多系统多天线多卫星多频多模等。

因此可以想想大地测量课题中最常见的题目套路为“基于…的方法(模型、理论)研究”。大家可能觉得俗气,但是管用就好啊。
例如:

也有一些题目取得清新简介,极简题目中蕴含着核心问题,这种题目让人读着欲罢不能,比如小于15字符的题目有:

有时候必须把一些信息包含在题目中,因此取得很长的也有:

统计发现大地测量课题题目长度主要集中在20-30个字符,平均值为25.6。 如果题目能简化在18字符以内,并包含核心问题,通俗易懂最好。

研究热点

学科热点的研究和挖掘一直是科学界研究的重要内容之一。学科内不同研究领域通常用不同的词条表示。词条出现的频次和频率代表词条的热度,词条热度的变化能直接反映学科研究热点的变化和趋势。

针对研究内容而言,最大的热点是GNSS,出现了122次,另外同类词GPS21次,北斗31次,也就是说4个课题中就有一个是直接带有GNSS的。顾及一些标题不含GNSS的研究,可以说导航定位课题占据了大地测量学的半壁江山。重力测高InSAR地震等相关研究从数量统计上看属于第二梯队,再往后则是少数的地球动力学、地球物理、数学原理等交叉领域研究。

另外一些可能有价值的统计:出现频次最高的地名是青藏高原中国南极尼泊尔;频次最多的时间词汇是实时(25次),均和GNSS相关课题有关,其次是现今(19次),与构造研究有关,GNSS相关的快速关键词也出现较多。

以上热点分析可为2023年的国家自然科学基金项目申报人员在拟定自己的申报题目时提供参考。

总结

据不完全统计:

  • 武大项目最多,和第二梯队拉开了很大距离
  • 6年间,7人获得三次资助,60获得2次资助
  • 基于…的..的研究是最火爆的题目,名字平均长度25.6
  • GNSS导航定位在大地测量学最火

清单

!2020年信息不完整。

除面上和青年之外的项目资助清单:

面上项目清单

青年项目清单

因为接到大量询问,怎么查询基金,因此本文取回重发。新增加查询方法,文末附卫星测高基金资助清单。

写基金书是科研人的核心工作之一,马上到2022年12月了,现在写一份基金书还来得及赶明年3月份提交,当然更多人应该是提前更久准备的。写基金书是一项消耗人的事情,从选题到编写初稿,再不断的修改完善,都需要持续的精力投入。基金对于科研人是如此重要,为促进基金交流,决定做一个国自然系列文章。内容初步包括:

  • 历年立项情报分析
  • 基金申报的交流报告
  • 邀请海洋遥感、测绘领域基金大牛做报告
  • 选题和编写的技巧
  • 学科代码的重要性

卫星测高为例,分析2015年以来这个领域的立项信息。

卫星测高

卫星测高测量海面地形,分辨率高,覆盖全球,重访时间短。 自20世纪70年代中期首次执行任务以来,单次海面高度测量的精度提高了100倍,接近今天的1厘米水平。 测高任务收集的数据为地球科学的许多领域提供了宝贵的信息,卫星测高彻底改变了我们对海洋重力场、海洋动力学和海洋环流、与气候相关的海平面上升,甚至陆地水文学的认识。在本文中,我们总结2015年以来国家自然科学基金资助的项目情况。

情报查询

现在基金委官网的查询虽然可以查询,但是功能较单一,我使用的是letpub网站的基金模块,VIP会员可以使用更多功能。地址:http://www.letpub.com.cn/index.php?page=grant

我们使用一些关键词,比如卫星测高卫星测高雷达高度计等,进行数据库检索,并经过人工判别剔除无关课题,最终统计表明2015年至2022年,基金委共资助66项卫星测高课题,每年平均约8项。

该领域的资助项目主要在地学部,少数分布在信息学部。资助类别以面上项目和青年项目为主,面向项目为38项,青年项目为27项,有1项为同济大学承担的国际(地区)合作与交流项目(经费10万元)。该领域的一级学科主要为地球物理学和空间物理学、海洋科学和地理学。二级学科主要为物理大地测量学和海洋遥感,这个我们对卫星测高应用领域的认知是一致的。武大、同济、海洋一所等单位承担课题较多。特别注意的是南阳师范学院承担两项课题,说明这个领域是没有什么学校壁垒的,给广大二本青椒带了希望。值得注意的是有7名科学家获得过2次资助,有一名外籍人士获得过资助。

2015-2022立项清单

下节预告

  • 大地测量学基金情报

写基金书是科研人的核心工作之一,马上到2022年12月了,现在写一份基金书还来得及赶明年3月份提交,当然更多人应该是提前更久准备的。写基金书是一项消耗人的事情,从选题到编写初稿,再不断的修改完善,都需要持续的精力投入。基金对于科研人是如此重要,为促进基金交流,决定做一个国自然系列文章。内容初步包括:

  • 历年立项情报分析
  • 基金申报的交流报告
  • 邀请海洋遥感、测绘领域基金大牛做报告
  • 选题和编写的技巧
  • 学科代码的重要性
  • 失败案例交流(邀请反面典型)
  • 打招呼是绝对不行的(邀请匿名专家哈哈哈哈)

今天以卫星测高为例,分析2015年以来这个领域的立项信息。

卫星测高

卫星测高测量海面地形,分辨率高,覆盖全球,重访时间短。 自20世纪70年代中期首次执行任务以来,单次海面高度测量的精度提高了100倍,接近今天的1厘米水平。 测高任务收集的数据为地球科学的许多领域提供了宝贵的信息,卫星测高彻底改变了我们对海洋重力场、海洋动力学和海洋环流、与气候相关的海平面上升,甚至陆地水文学的认识。在本文中,我们总结2015年以来国家自然科学基金资助的项目情况。

情报分析

我们使用一些关键词,比如卫星测高卫星测高雷达高度计等,进行数据库检索,并经过人工判别剔除无关课题,最终统计表明2015年至2022年,基金委共资助66项卫星测高课题,每年平均约8项。

该领域的资助项目主要在地学部,少数分布在信息学部。资助类别以面上项目和青年项目为主,面向项目为38项,青年项目为27项,有1项为同济大学承担的国际(地区)合作与交流项目(经费10万元)。

该领域的一级学科主要为地球物理学和空间物理学、海洋科学和地理学。二级学科主要为物理大地测量学和海洋遥感,这个我们对卫星测高应用领域的认知是一致的。

武大、同济、海洋一所等单位承担课题较多。特别注意的是南阳师范学院承担两项课题,说明这个领域是没有什么学校壁垒的,给广大二本青椒带了希望。

下图是课题负责人分布图,值得注意的是有7名科学家获得过2次资助,有一名外籍人士获得过资助。

无用的研究和随意的预测

  • 题目最长的是融合岸/船/机/星载多源数据基于新一代GNSS-R卫星测高原理反演全球高精度和高空间分辨率海洋重力场的理论和方法,一共是57字,课题负责人是中国空间技术研究院的郑伟。题目最短的是台风致地转响应的高度计观察,一共是13字,课题负责人是南海所卢著敏。
  • 基于三维成像雷达高度计的海洋重力场探测关键问题研究(2019立项)和宽刈幅高度计反演海洋重力场的关键技术研究(2020立项)先后立项,这说明前人立项不影响后人申请,因此大家不用焦虑被抢先立项。
  • 2015年立项宽刈幅高度计海面高度反演算法研究,2018年立项基于三维成像雷达高度计的海冰厚度探测机理与方法,2019年立项干涉成像高度计卫星轨道及载荷技术参数对海洋涡旋探测的定量化影响分析,2020年立项宽幅高精度干涉SAR海面高度测量与仿真研究,2021年立项基于宽刈幅测高资料的东海黑潮两侧亚中尺度过程三维结构特征分析,2022年立项成像高度计高精度海面地形反演与亚中尺度动力过程解耦方法研究,这个小方向的资助每年都有1-2项。
  • SWOT即将发射,宽刈幅高度计数据将开放获取,因此预计2023年将有2-3项相关课题立项,题目都想好了:1、成像高度计亚中尺度过程,2、成像高度计地表水文过程,2、成像高度计海底地形探测。

数据获取

基金项目情报已经整理上传到GitHub仓库:https://github.com/GenericAltimetryTools/Fund ,后面每年会更新一次。

上节已备好训练数据,本节介绍CNN和DNN网络设置,跳过物理公式,直接使用备好的重力数据来预测水深,然后使用检核点水深来验证模型的精度。本节是这个AI重力水深反演系列的大结局,我们将知道以下问题的答案:

  • 加入物理机制计算的短波重力能提高AI精度吗?
  • 高维度的CNN是不是比低维的DNN好呢?
  • 人工智能是否比传统方法效果好呢?

人工智能的海底地形反演系列在这儿暂时大结局了,但这不意味着真的结束。尽管人工智能在海洋遥感、物理海洋和其他许多地学领域取得了巨大的进展,但在大地测量、海洋测绘领域的应用可能才刚开始。其背后的原因是深刻而复杂的,这是不是测绘界的传统不无关系呢?测绘的主要工作之一就是测,也就是采集真实数据,并且非常重视数据精度和真实性这个概念,《测绘法》里面对数据真实性有明确的法律要求,篡改数据可能是犯罪行为,故对AI这种虚幻的、算出来的数据是有潜意识的否定态度;若AI精度达到多波束精度,那海洋测绘从业者可能失业,整个领域将遭遇百年未有之大变局;原因可能还有更多,欢迎私信讨论。

FC-DNN

模型构建

本例使用的深度学习框架是谷歌tensorflow,如果读者仅应用深度学习,而不研究深度学习本身,使用内置的keras包即可,因为它比较友好,上手轻松。另外,使用GPU可以提高训练速度,比如2080TI的英伟达显卡训练中,DNN每个Epoch仅3s,CNN为6s,对于本案例来说,由于数据量不大,CPU应该也不会太耗费时间。

FC-DNNFully-Connected (FC) Deep Neural Network (DNN),在输入和输出层的中间有一系列全连接层,本例使用的DNN网络结构如下:

这个FC-DNN结构的中间层设计了三个全连接层,全连接顾名思义就是每个节点都互相连接,三个层的神经元数量分别是20、10、5。通过这些个连接层和神经元,经过后面的最优拟合训练,就可以构建起了重力场(input)和海底地形(output)之间的非线性关系。最终在预测水深的时候,只需要输入重力场和位置信息就可以输出对应位置的水深。

DNN结构绘图代码使用了latexhttps://github.com/GenericAltimetryTools/AIBathy/blob/main/figs/fig4/main.tex

这个FC-DNN结构对应的Python代码:

1
2
3
4
5
model = models.Sequential()
model.add(layers.Dense(20, input_shape=(None,6), activation='relu')) # change shape for case
model.add(layers.Dense(10, activation='relu'))
model.add(layers.Dense(5, activation='relu'))
model.add(layers.Dense(1))

上面的代码中input_shape=(None,6)表示输入的元素个数,需要根据具体输入参数的类型来确定,比如如果仅仅输入经纬度和重力异常,那这儿就是3activation='relu'表示激活函数为relu

Keras内置的深度学习模型确实很方便,对于非计算机方向的纯用户非常好用,仅几行代码就完成了一个模型的搭建。

设置完毕后,开始训练:

1
2
3
4
5
6
7
8
9
10
opt = optimizers.Adam(learning_rate=0.001)
Patience = 3
reduce_lr = ReduceLROnPlateau(monitor='root_mean_squared_error', factor=0.5, patience=Patience, mode='min',
min_delta=0.001, min_lr=1e-6, verbose=1)
model.compile(
optimizer=opt,
loss='mse',metrics='RootMeanSquaredError')
model.fit(train_case3, y_trian, epochs=30
, batch_size=128
,callbacks=reduce_lr)

训练过程是确定最优拟合的过程。这里面有一些常见的设置,比如optimizer优化器、loss损失函数、epochs训练的次数等等。 这些知识点可以轻易在网上获得,因为本篇幅过长,这儿就不细说了。

网格重力到网格水深的预测

Python代码:

1
2
3
grid_ai=model.predict(pre_case3, batch_size=120)
grid_depth = scalerytrain.inverse_transform(grid_ai)
depth_ai=np.concatenate((free_short.values[:,0:2], grid_depth), axis=1)

通过输入网格重力pre_case3就可以直接得到归一化的网格水深,进一步还需要还原为实际水深值。

评估

1
2
3
4
5
pre = model.predict(test_case3, batch_size=120)
pre_raw = scalerytrain.inverse_transform(pre)
m = np.abs(np.mean((y_test1-pre_raw)))
std = np.std(y_test1-pre_raw)
print(std,m)

训练完成后,使用predict函数预测检核点test_case3的水深,并将归一化的预测结果还原成真实的水深,最后就可以使用实测水深对其进行统计评估了。

或者也可以使用GMT和测试数据对导出的网格进行评估,理论上效果是一样的:

1
2
3
gmt grdtrack check_feizhou.txt -Gdepth_case1.nc | awk '{print $3,$4}' > draper.txt
awk '{print $1-$2}' draper.txt| gmt gmtmath STDIN -Sl MEAN =
awk '{print $1-$2}' draper.txt| gmt gmtmath STDIN -Sl STD =

几点结果

  • 短波重力作为输入可以明显提高模型精度,和检核点水深差异的标准偏差为73.5m;不加入短波重力,若使用重力异常、重力梯度和垂线偏差为训练数据,则STD为227m。
  • 加入短波重力之后,再加入其他数据作为输入,得到结果几乎一样,即仅使用短波重力一个量就可以得到高精度的水深预测值。
  • 使用同样的训练数据和检核数据,GGM和真值差异的STD为85m,即FC-DNN精度超过了GGM。

!注意,为了和已发表论文(Annan和Wan,2022)的结果比较,上述结果并未进行第一节所展示的数据质控,如果进行数据质控FC-DNN的精度大约在30m,几乎接近当今先进多波束的测量精度!!

CNN

CNN用卷积对图像做操作,将所使用的卷积核看做未知参数,在训练网络的过程中求出最优参数。可能会有人疑问,重力和水深不是图像,怎么用CNN呢?的确,和经典数字识别、猫狗识别完全不同,重力数据是一个网格文件,实测水深是一些船测航迹,本质上没有一连串的同样大小的图像。

使用CNN的思路大概是:每一个水深点有一个经纬度坐标,这个坐标的四周组可成一个4×4大小的二维矩阵坐标,矩阵坐标上可以安置任意的input,比如重力异常、重力梯度、垂线偏差和经纬度,这样形成6个通道(类似图像的RGB通道)的三维张量,然后每一个水深点坐标上都可以组成一个同样大小的二维矩阵,这就形成了一些列的伪图像(四维张量),从而可以满足CNN的训练。

模型架构

这里我们复现Annan和Wan的网络结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
model = models.Sequential()
model.add(layers.Conv2D(64,(3,3), input_shape=(4,4,6),activation='relu',padding="same", name="conv1",data_format = 'channels_last'))
model.add(layers.BatchNormalization())
model.add(layers.MaxPooling2D(pool_size=(2,2)))
model.add(layers.Conv2D(128, (3,3),activation='relu',padding="same", name="conv2",data_format = 'channels_last'))
model.add(layers.BatchNormalization())
model.add(layers.MaxPooling2D(pool_size=(2,2)))
# model.add(layers.BatchNormalization(axis=-1))
model.add(layers.Conv2D(256, (3,3),activation='relu',padding="same", name="conv3",data_format = 'channels_last'))
model.add(layers.BatchNormalization())
model.add(layers.Conv2D(512, (3,3),activation='relu',padding="same", name="conv5",data_format = 'channels_last'))
model.add(layers.BatchNormalization())
model.add(layers.Dropout(0.2))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1))

上面有一些CNN架构的知识点,比如池化层,卷积层等等,读者可以轻松从网上查到,这里也不介绍这些内容啦。

训练、预测和评估

读者最好前往开源仓库查看完整代码,并自己运行一下,提高对这些代码的理解。

https://github.com/GenericAltimetryTools/AIBathy/blob/main/Africa_cnn.ipynb

训练

Python代码:

1
2
3
4
5
6
7
8
9
10
11
12
opt = optimizers.Adam(learning_rate=0.001)
Patience = 3
early_stop = EarlyStopping(monitor='loss', mode='min', patience=Patience)
reduce_lr = ReduceLROnPlateau(monitor='root_mean_squared_error', factor=0.5, patience=Patience, mode='min',
min_delta=0.001, min_lr=1e-7, verbose=1)
model.compile(
optimizer=opt,
loss='mse',metrics='RootMeanSquaredError')
# tf.config.experimental_run_functions_eagerly(True)
model.fit(x_train, y_train, epochs=40
, batch_size=128
,callbacks=reduce_lr)

预测

Python代码:

1
2
pre_depth = model.predict(x_pre,batch_size=120)
grid_depth = scalerdepth.inverse_transform(pre_depth)

评估

方法和FC-DNN一致。可以使用GMT对输出的水深网格进行评估,或者使用keras内置函数在训练结束后进行评估。 此外我们还可以通过差异直方图、回归分析和功率密度谱等方式对结果进行评估分析,具体代码已上传到Github的fig文件夹。

几点结果

  • CNN使用卷积,有固定窗口大小,自带滤波效果,因此预测水深略平滑。使用功率谱分析也表明在短波尺度它不如FC-DNN,但在中间尺度,它的能量高于FC-DNN。
  • CNN的精度大概是120 m,这和Annan和Wan的结论基本一致。
  • CNN效果不如GGM,并且差距较大。
  • CNN效果不如FC-DNN,这说明高维度的、更复杂的网络并不一定能得到更好的预测结果。

总结

问题答案:

  • 物理机制计算的短波重力能提高精度吗?
  • 高维度的CNN是不是比更低维的DNN好呢?
  • 人工智能是否比传统方法效果好呢?

致谢

深度学习的核心代码由张雨元同学编写,对此小编表示万分感谢。

预告

年底了,人们都更加忙碌起来。距离明年的基金时间也不远了,因此下一系列会关注自然科学基金:

  • 国家自然科学基金的海洋遥感、海洋测绘课题资助分析,总体趋势如何?热点领域在哪?
  • 卫星测高在哪些领域获得资助,趋势如何?
  • 据传,测绘口凡带着深度学习的基金会轻易被毙?是真的吗?原因是什么?

上两节分别介绍了单波束数据质控和卫星测高的重力数据处理,我们发现经过质控的单波束作为训练数据,可以明显提高水深反演的精度,重力异常信号中的短波分量和地形非常相关,加入短波重力有可能大幅提高水深反演精度。

今天介绍AI反演水深最后的前奏:张量构建和归一化处理。

张量的构建

人工智能的数据表示方式是存储在Numpy里的多维数组,数据类型是ndarray,在AI领域它还有一个更具B格的名字:张量(tensor)。一般来说,当前所有机器学习系统都使用张量作为基本数据结构,张量在AI领域是非常重要的概念,以至于Google的TensorFlow都直接以它来命名。

下表是不同维度(TensorFlow中也成为秩、阶数、度数或者是n维)的张量含义:

维度(秩) 数学实体
0 标量(只有大小)
1 向量 (有大小和方向)
2 矩阵 (由数构成的表)
3 3 维张量 (由数构成的方体)
n n 维张量 (你可以自行想象一下)

在水深反演中,我们首先也构建这样的多维张量。因为DNN和CNN的张量略有不同,这里分开介绍它们的构建方式。

DNN

假设人工智能训练数据的输入包括lat,lon,ga,vgg,evd,nvd,sg,输出只有一个od:

  • lat:latitude
  • lon:longitude
  • ga:gravity anomaly
  • vgg:vertical gravity gradient
  • evd:east-west vertical deflection
  • nvd:north-south vertical deflection
  • sg:short wavelength gravity anomaly
  • od:ocean depth

因为在DNN中,没有要求输入必须是图像,所以它接受的输入张量可以是二维矩阵。假设有10000个水深训练点,那么输入张量大小为(10000,7),输出张量为(10000,1)。注意位置信息并不单独占据两个维度,而是作为输入保存在了张量内部。

在python中使用numpy的基本函数可完成张量构建:

1
2
input =  np.concatenate((lon,lat,ga,vgg,evd,nvd,sg), axis=1)
output = np.reshape(free_short[:,2],(len(free_short[:, 2]),1))

CNN

CNN的操作对象必须是图像,因此张量必须是4维度的。CNN的张量构建稍微复杂一些,消耗的时间也长一点。整体思路是:根据经纬度确定index,然后通过index确定矩形范围,再提取重力异常等数据,增加数组维度的深度。

Index确定

使用get_indexer函数得到船测水深点的经纬度在重力网格数组中的存储位置:

1
2
con_lat_index=free_15s.indexes["lat"].get_indexer(control.values[:,1],method="nearest")
con_lon_index=free_15s.indexes["lon"].get_indexer(control.values[:,0],method="nearest")

比如我们想得到index=126处的5×5图像:

1
free_15s.isel(lat=slice(126-2,126+3,1),lon=slice(1056-2,1056+3,1))

根据这个逻辑写循环增加数据参数,假设CNN输入是5×5大小的图像:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
temp2 = []
for i in range(len(control["lat"])):
temp = free_15s.isel(lat=slice(con_lat_index[i]-2,con_lat_index[i]+3,1),lon=slice(con_lon_index[i]-2,con_lon_index[i]+3,1))
temp_vgg = vgg_15s.isel(lat=slice(con_lat_index[i]-2,con_lat_index[i]+3,1),lon=slice(con_lon_index[i]-2,con_lon_index[i]+3,1))
temp_e = east_15s.isel(lat=slice(con_lat_index[i]-2,con_lat_index[i]+3,1),lon=slice(con_lon_index[i]-2,con_lon_index[i]+3,1))
temp_n = north_15s.isel(lat=slice(con_lat_index[i]-2,con_lat_index[i]+3,1),lon=slice(con_lon_index[i]-2,con_lon_index[i]+3,1))
temp_shortg = shortg_15s.isel(lat=slice(con_lat_index[i]-2,con_lat_index[i]+3,1),lon=slice(con_lon_index[i]-2,con_lon_index[i]+3,1))
lat1 = free_15s.lat[con_lat_index[i]-2:con_lat_index[i]+3]
lon1 = free_15s.lon[con_lon_index[i]-2:con_lon_index[i]+3]
LON,LAT = np.meshgrid(lon1,lat1)
temp1 = np.concatenate([np.reshape(LON,(5,5,1)),np.reshape(LAT,(5,5,1)),np.reshape(temp.values,(5,5,1)),np.reshape(temp_vgg.values,(5,5,1)),np.reshape(temp_e.values,(5,5,1)),np.reshape(temp_n.values,(5,5,1)),np.reshape(temp_shortg.values,(5,5,1))],axis=2)
temp2.append(temp1)
temp2 = np.array(temp2)
temp2.shape

最终得到的张量空间是(10000, 5, 5, 7)

使用index来确定位置,可以加速张量构建。

归一化

归一化是将一个变量的取值缩放到[0~1]之间,也称数据标准化(Normalization)。数据标准化处理是AI的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要对数据进行归一化处理,解决数据指标之间的可比性问题。

优点:提高梯度下降求解最优解的速度;归一化有可能提高精度

在DNN中,我们使用了MinMaxScalertransform函数完成归一化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# normalization
y_train2 = np.reshape(y_train1[:, 2], (len(y_train1[:, 2]), 1)) # depth

scalerlon = MinMaxScaler().fit(x_lon)
scalerlat = MinMaxScaler().fit(x_lat)
scalershort = MinMaxScaler().fit(control_short)
scalerga = MinMaxScaler().fit(control_ga)
scalervgg = MinMaxScaler().fit(control_vgg)
scalerevd = MinMaxScaler().fit(control_evd)
scalernvd = MinMaxScaler().fit(control_nvd)
scalersed = MinMaxScaler().fit(control_sed)
scalerage = MinMaxScaler().fit(control_age)
scalermoho = MinMaxScaler().fit(control_moho)
scalermag = MinMaxScaler().fit(control_mag)
scalerytrain = MinMaxScaler().fit(y_train2)

lat_train = scalerlat.transform(x_lat)
lon_train = scalerlon.transform(x_lon)
short_train = scalershort.transform(control_short)
ga_train = scalerga.transform(control_ga)
vgg_train = scalervgg.transform(control_vgg)
evd_train = scalerevd.transform(control_evd)
nvd_train = scalernvd.transform(control_nvd)
sed_train = scalersed.transform(control_sed)
age_train = scalerage.transform(control_age)
moho_train = scalermoho.transform(control_moho)
mag_train = scalermag.transform(control_mag)
y_trian = scalerytrain.transform(y_train2)

在CNN中,我们使用一样的方法完成归一化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
m,n,k,p = np.shape(temp2)
scalerlon = MinMaxScaler().fit(np.reshape(temp2[:,:,:,4],(m*n*k,1)))
scalerlat = MinMaxScaler().fit(np.reshape(temp2[:,:,:,5],(m*n*k,1)))
scalerfree = MinMaxScaler().fit(np.reshape(temp2[:,:,:,0],(m*n*k,1)))
scalervgg = MinMaxScaler().fit(np.reshape(temp2[:,:,:,1],(m*n*k,1)))
scalernvd = MinMaxScaler().fit(np.reshape(temp2[:,:,:,2],(m*n*k,1)))
scalerevd = MinMaxScaler().fit(np.reshape(temp2[:,:,:,3],(m*n*k,1)))
# scalermae = MinMaxScaler().fit(np.reshape(temp2[:,:,:,6],(m*n*k,1)))
scalerdepth = MinMaxScaler().fit(np.reshape(control.values[:,2],(-1,1)))
lon_train = scalerlon.transform(np.reshape(temp2[:,:,:,4],(m*n*k,1)))
lat_train = scalerlat.transform(np.reshape(temp2[:,:,:,5],(m*n*k,1)))
free_train = scalerfree.transform(np.reshape(temp2[:,:,:,0],(m*n*k,1)))
vgg_train = scalervgg.transform(np.reshape(temp2[:,:,:,1],(m*n*k,1)))
nvd_train = scalernvd.transform(np.reshape(temp2[:,:,:,2],(m*n*k,1)))
evd_train = scalerevd.transform(np.reshape(temp2[:,:,:,3],(m*n*k,1)))
# mae_train = scalerevd.transform(np.reshape(temp2[:,:,:,6],(m*n*k,1)))
x_train = np.reshape(np.concatenate([free_train,vgg_train,nvd_train,evd_train,lon_train,lat_train],axis=1),(m,n,k,p))
y_train = scalerdepth.transform(np.reshape(control.values[:,2],(-1,1)))

注意对实测水深label也必须做归一化处理。

小结

  • 张量是各种维度的向量和矩阵的统称。CNN的张量维度大,比较消耗算力,DNN张量是二维矩阵,计算简单。
  • 归一化是为了解决不同量纲的数据差异问题,提高AI训练质量。

下节预告

完成全部的人工智能的重力水深反演,并展现出高精度的AI水深反演结果。

  • DNN和CNN网络设计
  • 水深预测和评估

俺最近更新很慢,希望早点上手的伙伴可查看完整代码:https://github.com/GenericAltimetryTools/AIBathy

人工智能水深反演比赛的企业总冠名权征集

为提高奖金数额,促进参赛积极性,在保留原奖金的情况下,组委现向全社会征集比赛总冠名权,请有意向的海洋遥感、海洋测绘、人工智能等领域的企业私信联系。