0%

转自:物理海洋室,自然资源部第一海洋研究所

我所在海洋动力卫星定标和真实性检验方面取得新进展

近期,我所极地海洋动力过程团队在海洋动力卫星定标和真实性检验方面取得新进展,相关研究成果以“Independent Validation of Jason-2/3 and HY-2B Microwave Radiometers Using Chinese Coastal GNSS”和“Monitoring the Performance of HY-2B and Jason-2/3 Sea Surface Height via the China Altimetry Calibration Cooperation Plan”为题,发表在遥感领域顶级期刊《IEEE地学与遥感汇刊》(TGRS)上。

卫星遥感是全球尺度快速探测海洋脉动最有效的手段。通常在卫星发射前,已对遥感载荷进行了实验室定标,但由于太空环境改变及器件老化等原因,载荷性能和精度可能改变,需再次进行地面定标和真实性检验。目前,相关研究利用的定标站点单一、算法不公开透明,且我国沿海区域的研究相对较少。针对当前研究不足,该研究团队通过数据共享机制获取中国沿海已有的多源观测资料,对HY-2B校正微波辐射计和高度计开展了相关研究,定量评估了国产卫星载荷的测量精度。为保证研究方法和结果可重复,该研究团队对程序开源共享,且相关数据也可通过正常渠道申请获取。

该研究团队利用中国大陆构造环境监测网络、海洋台站和国际GNSS服务(IGS)等三套GNSS数据,基于全新的二阶导数陆地污染判定方法和三维再分析资料重构湿延迟修正系数的方法,获得了HY-2B校正微波辐射计测量误差,证实了国产校正微波辐射计精度优于国外同类卫星Jason-2/3。进一步,基于国家卫星海洋应用中心发起的雷达高度计定标场“伙伴计划”共享数据,以及我国海洋台站千里岩和芷锚湾长期历史资料,对我国HY-2B高度计产品进行了定标和真实性检验,获得黄渤海和珠江口等不同海洋环境下HY-2B海面高度观测误差,不同站点的结果互相印证,大大提高了结果可信度,结果表明HY-2B海面高度测量精度和国外卫星Jason-2/3相当。最后,该研究团队还通过绝对定标、交叉定标、波数谱积分等独立方法进行高度计载荷噪声分析,结果表明HY-2B以及国外Jason-2/3卫星高度计载荷噪声均为2.6cm左右。

本研究对我国自主海洋动力卫星的定标和真实性检验提供重要支撑,研究成果不仅为卫星产品应用提供了保障,也为新一代海洋动力卫星关键载荷参数的制定提供了科学依据。

以上工作获得国家自然科学基金等项目资助,合作单位有中科院海洋所、国家卫星海洋应用中心、国家海洋局北海预报中心、武汉大学、山东科技大学、希腊克里特理工大学等。我所物理海洋室杨磊工程师分别为两篇文章的通讯作者和第一作者。


图1 基于三维再分析资料重构的大气湿延迟高度修正系数空间分布,二阶导数的辐射计陆地污染判定(以渤海为例)


图2 HY-2B卫星高度计定标站点分布和误差时间序列

文章连接:
https://ieeexplore.ieee.org/document/9527812
https://ieeexplore.ieee.org/document/9720989

上述TGRS文章使用了我司先前分享的数据集和程序。期待粉丝们更好的利用海洋共享数据,发表更多的高水平论文。

齐鲁晚报·齐鲁壹点 记者 刘云鹤 发自北京

今年全国两会,全国政协委员、中国科学院海洋环流与波动重点实验室研究员侯一筠准备的提案提案是《控制海洋污染,保护海洋环境》,并关注海洋数据共享问题。

针对我国海洋污染的特点,在海洋污染监控和防治方面,他建议,一是完善海洋环境保护战略与规划,借鉴发达国家海洋环境治理模式与经验,修订《中国海洋21世纪议程》,科学制定我国海洋环境保护战略,明确工作目标、基本原则及路线图,规划不同海域功能定位,划定生态红线;二是加强海洋环境监测能力建设,在重点关注海域,对海洋生态环境以及水文气象等背景参数快速连续跟踪监测,提升数据传输、信息制作与分发的地面支持系统水平,同时减少部门间不必要的重复性监测,加强部门间协作,使海洋环境质量监测真正实现系统化和整体化;三是建立国家海洋数据网络共享平台,明文规定使用方法和准则,保证海洋观测数据的时效性、共享性和安全性,实现数据在使用过程中的利益最大化;四是加强国际间合作交流,在黄海、东海、南海积极推进双边、多边环境保护,加强涉海污染防治,积极借鉴国外的先进经验和技术,加强国际合作,共同进行有关海洋污染的调查、研究等活动,在合作过程中互通有无,尽快提高防治海洋污染的能力。

推动海洋数据共享是我司的初心使命,未来将进一步和我国海洋数据共享部门加强合作,与人大代表、政协委员之间加强沟通,为数据使用人面临的各种困难发声,共同推动海洋强国建设。

Zotero是一款开源的文献管理软件,管理文献信息(如作者、标题、出版社、摘要、阅读笔记等)及相关材料(如PDF文件等)。在使用Linux之前,Endnote作为一款非常流行的知识管理软件,功能已经非常强大,可以满足windows用户需求。但Endnote跨平台和实时同步体验不够好,没有标签功能,非开源,过于臃肿等。类似的文献管理软件还有许多,也有一些可以跨平台同步使用,但使用了Zotero之后,发现所有需求都已经满足,不需要再学习别的工具了。

读音和含义

Zotero读音为/zoʊˈtɛroʊ/,源于阿尔巴尼亚语zotëroj,意思是to master

安装

到官网(https://www.zotero.org/) 下载相应操作系统的软件包,目前软件版本是5.0。Windows用户下载exe安装即可。Linux用户下载对应的32或者64位软件包,解压后在当前目录执行zotero可以启动软件,对于Ubuntu用户,可以使用下面的方法将图标添加到快速启动栏。

For Ubuntu, the tarball includes a .desktop file that can be used to add Zotero to the launcher. Move the extracted directory to a location of your choice (e.g., /opt/zotero), run the set_launcher_icon script from a terminal to update the .desktop file for that location, and symlink zotero.desktop into ~/.local/share/applications/ (e.g., ln -s /opt/zotero/zotero.desktop ~/.local/share/applications/zotero.desktop). Zotero should then appear either in your launcher or in the applications list when click the grid icon (“Show Applications”), from which you can drag it to the launcher.

之后,可在快速启动栏找到Zotero。

更多信息:https://www.zotero.org/support/installation

文献下载类插件

Zotero Connector

以Firefox为例,首先安装必备的Zotero Connector,它可以自动识别网页中的文献信息,并通过点击插件按钮保存在Zotero本地数据库。该功能对于谷歌学术、ScienceDirect、WOS、Wiley Online Library、Springer Link、IEEE数据库、Nature、Science等数据和期刊平台通用。它的基本原理是识别网页中的DOI号。

中文知网插件

Zotero Connector对于中文文献较为无力,因此Zotero的中文文献识别需要借助一个插件–Jasminum。下载地址为:https://github.com/l0o0/jasminum
基本功能有:

  • 拆分或合并 Zotero 中条目作者姓和名
  • 根据知网上下载的文献文件来抓取引用信息(就是根据文件名)
  • 添加中文PDF/CAJ时,自动拉取知网数据,该功能默认关闭。需要到设置中开启,注意添加的文件名需要含有中文,全英文没有效果(还是根据文件名)
  • 为知网的学位论文 PDF 添加书签
  • 更新中文 translators
  • 拉取文献引用次数,是否核心期刊

如果浏览器登录了CNKI,并有下载权限,则Zotero可自动下载知网文献,若无下载权限,则仅保存文献信息。

该插件还有一个常用功能是把手动下载的知网文献拖入Zotero,然后右键提取知网文献信息,即可自动完成文献信息的抓取。

PDF文献也自动归到该文献目录下

SCI-hub的接入

很多时候,我们没有各大数据库的下载权限,Zotero Connector只能抓取文献信息,不能下载文献。这时可以将Zotero和SCI-hub联合起来,达到几乎全能的下载效果。我们打开Zotero的首选项,进入Advanced-->Config Editor

搜索extensions.zotero.findPDFs.resolvers,双击编辑,删除[],并将以下代码粘贴进去:

1
2
3
4
5
6
7
8
9
{
"name":"Sci-Hub",
"method":"GET",
"url":"https://sci-hub.se/{doi}",
"mode":"html",
"selector":"#pdf",
"attribute":"src",
"automatic":true
}

选中单篇或者多篇文献,手动点击右键菜单中的Find Available PDF,会弹出单独的窗口显示下载进度。但SCI-hub对新文献收录较慢,新文献无法下载。这时,我们只需要淘宝10元包年或者15元永久账号就行了。

写作类插件

word 插件

Zotero自动在windows平台上安装了Word Processor Plugins,可以从Tools → Add-ons查看。

You can reinstall the plugins later from the Cite → Word Processor Plugins pane of the Zotero preferences. If you’re having trouble, see Manually Installing the Zotero Word Processor Plugin or Word Processor Plugin Troubleshooting.
If you previously installed the Firefox versions of the word processor plugins into Zotero 5.0 or Zotero Standalone 4.0, you should uninstall them from Tools → Add-ons.

更多信息:https://www.zotero.org/support/word_processor_plugin_installation

LibreOffice 插件

在linux系统下,Zotero支持LibreOffice插件,安装和使用类似Word。另外,Zotero对WPS的支持不是很好,虽然有,但是缺少维护,现在不能用了。

写作

word

一般由于安装了word插件,word界面将中自动显示zotero按钮,可以直接使用。点击Add /Edit Citation,弹出第一个对话框,选择一个期刊要求的文献引用格式,如中文常用的GB/T7714-1987。如果系统没带想要的期刊文献格式,可以通过右下角的Manage Styles查找,一般期刊都可快速找到。

确认后,将弹出一个输入框,这里和Endnote明显不同,Zotero的插入是需要手动输入一些单词进行搜索提示,比如输入zotero这个单词,系统自动显示数据库的文献。使用技巧是输入文献作者姓名加年份或者标题关键词,熟练之后发现这样也挺好。

然后,点击Add/Edit Bibliography,插入参考文献。效果为:

latex

overleaf在线编辑为例。首先使用Zotero将需要的文献归类到一个目录,右键Export collection,导出bibTex文件。将bib文件上传到overleaf项目目录,进一步使用latex语法\cite插入文献即可。

overleaf会根据输入的单词(通常是作者姓氏)自动搜索bib文件中的文献。

由于期刊通常提供latex模板,这也包含了引文格式模板,因此用户不需要关心引文格式。

文献跨平台同步

坚果云

坚果云是一款办公云存储和同步系统。坚果云和zotero的搭配可以实现多个电脑之间(包括夸操作系统)的文献同步。这方便的教程网上已有很多,不再赘述。

需要注意的是,有时候重装系统后,数据库全部丢失,需要从云端重新下载。这时zotero的Data SyncingFile Syncing将发挥重要作用。我们无需手动copy,只要输入正确的云端地址,点击同步即可得到之前一模一样的数据库。这里不建议使用Data Syncing下面的Sync full-text content,可能和下面的File Syncing重复更新,增加流量消耗。

Endnote 转入

Endnote用户尝试Zotero的第一步也是将Endnote数据库导入到Zotero中,这方面的教程也非常多,基本可以无缝导入了,包括文献文件。可参考:https://www.bilibili.com/read/cv7160554

Feeds

FeedsRSS更新订阅,一般的大点的期刊提供该功能,如JGR、Nature等。

Feeds are a great way to discover new research. With feeds, you can subscribe to updates from a journal, website, publisher, institution, research group, or other source and quickly find new articles or works. If you find an item in a publication’s feed that you want to save and read further, you can add it to your Zotero library with the click of a button.

以Nature为例,官网右上角点击RSS feed,复制浏览器网址http://feeds.nature.com/nature/rss/current

回到Zotero,按下面操作添加即可。

文献查重

Duplicate Items功能可以通过文献doi等信息,查找数据库中的重复文献,进一步可以合并同类文献,是数据库简洁无重复。

我的文献

My publications可以集中保存管理自己发表的文献,这些文献也可以存在于其他文献集。哦,Zotero中任一个文献都可以存在于任意文献集(目录),通过按住Ctrl+点击文献,可以显示文献保存在那些文献目录中(显示黄色)。

本文仅列举一些常用的操作,Zotero的功能还有很多,网上也有非常多的学习教程。但对于一般用户来说,这些足够了。

综上,我们可以看到Zotero构建的不仅是文献管理生态,更是一个知识生态,期待大家可以利用好这个科研利器。

在《海洋测绘》创刊40周年之际,对中国学术期刊出版总库所收录的近30年的2646篇有效文献进行科学计量研究,分别对文献的作者共现网络、机构共现网络和关键词共现网络进行了分析,结果表明《海洋测绘》发文主题主要涉及水深测量、GNSS、海图制作等领域,发文核心机构以海军海洋测绘研究所等军事研究院所为主,核心作者多隶属同一研究机构,具有密切合作网络。通过分阶段的时间演进分析,表明水深测量、GNSS、海图制作三大研究主题30年间长久不衰,卫星遥感、北斗导航定位等其他核心主题的研究趋势不断增强,热点主题往往与国内外相关科技发展趋势相呼应。

引言

《海洋测绘》于1981年创刊,由海军海洋测绘研究所主办[1],是我国海洋测绘研究领域最为重要的学术性期刊,国内外公开发行,办刊特色是以报道海洋测绘专业领域为主,刊文主要涉及我国海洋测绘学术科技研究成果和国内外海洋测绘动态,并包括与海洋测绘相关的交叉学科(如物理海洋、水声学等)研究成果。《海洋测绘》被中国学术期刊综合评价数据库、中文核心期刊(遴选)数据库、中文期刊数据库和日本科学技术振兴机构数据库等多个国内外重要数据库收录,已连续11年评为“中国科技核心期刊”。2021年3月,依据文献计量学原理和方法,经过学科专家评审,《海洋测绘》入编《中文核心期刊要目总览》测绘学类的核心期刊表(北大核心)。

作为反映中国海洋测绘最高研究水平的学术型刊物,在《海洋测绘》创刊40周年及入编北大核心之际,有必要通过科学文献计量方法,分析其历史载文的机构、作者和热点主题特征,探讨我国海洋测绘近几十年研究的观点、方法、技术和实践的相关演变。文献计量是利用数学和统计学方法定量分析科技文献外部特征,包括文献的分布结构、数量关系、变化规律和共现聚类等,进而揭示学术研究的特征和规律[2]。在一些学术期刊的历史节点,已有不少学者对期刊进行了出版刊发情况分析。例如《地理学报》创刊70、80、85之际,姚鲁烽等人分别进行了期刊历史发文的总结[3–6],为地理学发展提供相关参考数据,并且揭示了期刊的发展特点和趋势;刘凯等开展了《热带地理》创刊以来40周年的文献计量分析,研究了核心机构、作者等关键要素的合作关系[7]。

Citespace软件是目前国内外主流的文献计量软件之一,具备强大的文献计量分析能力,并且能够以可视化图谱的形式展现文献结构[8],该软件已被广泛应用于期刊文献计量分析、知识图谱绘制以及大数据信息挖掘[9–12]。本文采用Citespace软件,基于中国学术期刊出版总库收录的《海洋测绘》论文,开展文献关键词聚类分析、关键词共现分析、关键词突现分析,以及研究机构和作者的共现和聚类分析,对《海洋测绘》载文的宏观脉络、知识体系进行探讨分析,以科学计量以及可视化的方法揭示《海洋测绘》文献的研究趋势,以期对中国海洋测绘工作者及相关领域人员提供参考,也为期刊未来发展提供历史节点性的总结。

数据和方法

数据来源

数据收集和整理对文献计量分析的整体结果质量非常重要[13],本文以中国知网(CNKI)为检索平台,检索中国学术期刊出版总库所收录的《海洋测绘》所有刊文,并剔除“目录”、“卷首语”、“导读”、“新闻”、“会议通知”、“编辑部声明”等主题的文章,得到2646篇有效文献作为本次分析的基础数据,其中时间跨度为1994-2020(CNKI缺失1981-1993年的《海洋测绘》数据)。

分析工具和原理

Citespace为美国德雷塞尔大学陈超美教授开发的科学文献计量和可视化工具,其设计平台是Java,其算法基础主要用到了矩阵分析、统计学理论和交互式可视化。Citespace可以根据文献数据集构造一系列的引文对象及引文网络,可以在数据基础上开展主题聚类、网络分析、共引分析等[12,14]。Citespace的哲学基础是托马斯的科学革命的结构[15],而设计灵感为社交网络的结构洞理论[16],两种时间和空间的基础理论使得Citespace可以通过引入不同时间所出现的聚类,揭示不同主题的兴衰,可以通过结构洞在不同聚类间的连接,探测具有关键作用的节点。

本文主要选取《海洋测绘》文献中“关键词”、“机构”和“作者”三类节点进行计量分析和图谱绘制,因原始数据包含大量的节点和网络连接,为简化网络复杂性,在软件中设置每5年1个时间切片,并使用路径搜索算法(Pathfinder)和路径网络简化(pruning sliced networks)优化引文网络。Citespace生成的可视化图谱内容主要包含节点和连线,其中节点的大小可表征该节点在数据库中出现的频次,节点之间的连线粗细表示节点连接强度,节点的颜色表示出现的年代。Citespace聚类分析结果使用模块值(Q值)和平均轮廓值(S值)来衡量聚类效果,一般认为Q>0.3则表示聚类结构显著,S>0.5聚类是合理的。

分析结果

文献总览


图 1 《海洋测绘》年发文数量演变以及文献的学科占比情况

分析年发文数量表明《海洋测绘》期刊在1994-2020年间共刊发学术型文献2600多篇,其中2001年以前的年刊文数量在50篇左右,2001年以后其年发文数量超过100篇,然而自2010年之后在年发文数量呈现轻微的下降趋势。学科组成统计表明《海洋测绘》文献中超过50%为自然地理学和测绘学学科,其次有约15%为海洋学学科,另外计算机、船舶工业以及地球物理等领域也有一定的占比。

研究作者

图 2 《海洋测绘》核心作者网络为《海洋测绘》文献核心作者的结构网络图谱,其中节点数为241个,网络连线为279条,从发文数量上,有6位作者超过50篇,有59位作者超过10篇,总体上发文作者的团队较为集中,合作较为紧密。依据社交网络的结构洞理论,核心作者在图谱中的节点位于中心位置,这类节点在作者合作网络中起到重要的连接作用,例如作者中的黄谟涛、刘雁春、翟国君、欧阳永忠、陆秀平、任来平、申家双等人均呈现高中心性特点,围绕此类核心作者往往形成作者合作群体。《海洋测绘》期刊的作者关键节点呈现出较为集中的特征,这表明核心作者可能隶属于同一机构。

图 2 《海洋测绘》核心作者网络

载文机构

科研机构作为宏观研究主题,分析研究机构的发文和合作网络有助于探明某领域的力量分布。通过对《海洋测绘》载文的研究机构分析,得到发文机构图谱(图 3),发现总体上发文机构以军事研究院所为主,其中以海军海洋测绘研究所、海军大连舰艇学院(含海洋测绘科学与工程系、海测工程系、海洋测绘系)、海军出版社、解放军信息工程大学(含测绘学院、地理空间信息学院)和海军工程大学导航工程系为核心机构形成了关键的研究网络。从数量上看,有23家机构的发文超过了20篇,其中16家为军事科研院所,统计表明海军海洋测绘研究所发文超过400篇,合作机构超过80家,海军大连舰艇学院和解放军信息工程大学发文超过300篇,合作机构超过30家,构成了《海洋测绘》发文最多、合作网络最密集的三大军事科研院所。

《海洋测绘》载文机构中除部队外,也存在少数的地方研究团队,形成和相对稳健的合作网,例如自然资源部第一海洋研究所、山东科技大学、中国测绘科学研究院等,这三家机构的节点分布较为集中,合作强度较显著,发文数量均超过20篇。此外,地方研究力量中还有武汉大学、天津海事局海测大队、国家海洋信息中心、中科院测量与地球物理研究所发文数量超过20篇。


图 3 《海洋测绘》载文机构共现分析

研究主题

关键词是文章主题的高度概括和浓缩,可体现研究热点的演变和延伸,通过关键词的聚类分析可以快速捕捉到对应领域的研究主题[17]。通过对1994-2020年间《海洋测绘》刊文的关键词进行共现分析,结果表明主要的关键词数量为203个,节点连线数量为541,网络密度为0.03,说明节点之间具有较强的联系。1994-2020年间《海洋测绘》文献中频次不少于20次的关键词如表 1 所示,多波束测深、地理信息系统、GPS、卫星测高、全球定位系统、水深测量、海道测量、海洋测量等构成了《海洋测绘》期刊文献知识网络的核心节点(中心性均大于0.1)。通过表 1,可知《海洋测绘》载文的主题可大致概括为水深测量、海图制作、GNSS等主题,其他核心关键词均可认为是与之相关的技术方法研究,例如多波束、卫星测高、GPS、北斗、地理信息系统、遥感影像等具体技术方法。

根据关键词的关联性,对《海洋测绘》发文关键词进行聚类分析,聚类结果表明平均轮廓值S为0.92,意味着聚类是令人信服的,模块值Q为0.7,意味着聚类结构显著。如图 4所示,《海洋测绘》关键词可划分为22个类别,聚类名称前的数字越小,表示聚类所包含的关键词越多。例如聚类第一类别(#0)归纳为数字地图,包含的主要关键词为:电子海图、纸质海图、海道测量、可用性分析、S-52、国际海图和生产模式等112个关键词,该类别主要涉及数字海图的生产,与我国海洋测绘的主要目标相一致;又如聚类第八类别(#7)为重力异常,主要包含的关键词为卫星测高、精度分析、海底地形、重力异常、大地水准面、垂线偏差、海面地形、潮汐等78个关键词,该类别对象主要涉及海洋重力的相关研究,可为海洋测量提供关键的垂直基准模型。

表 1 1994-2020年间《海洋测绘》发文出现频次大于20的关键词

序号 关键词 频次 中心性 突现性
1 多波束测深 122 0.33 9.72
2 地理信息系统 82 0.16 18.53
3 GPS 79 0.24 5.32
4 卫星测高 62 0.22 3.39
5 全球定位系统 58 0.19 18.97
6 水深测量 54 0.24 4.31
7 海道测量 52 0.21 4.5
8 海洋测量 51 0.19 9.52
9 侧扫声纳 44 0.07 4.19
10 数字海图 42 0.07 3.45
11 海洋磁力测量 41 0.09 -
12 遥感影像 39 0.03 5.3
13 电子海图 38 0.12 -
14 数字高程模型 31 0.06 5.62
15 精度分析 30 0.09 -
16 海底地形 29 0.11 -
17 海图制图 28 0.01 -
18 精度 24 0.09 3.96
19 精密单点定位 24 0.05 6.2
20 数据处理 24 0.09 -
21 北斗卫星导航系统 24 0.05 8
22 声速剖面 22 0.03 6.41


图 4 《海洋测绘》关键词前20个聚类分布

知识演进

使用Citespace对《海洋测绘》文献的知识演进分为5个时间阶段进行分析,分别是1994-2000、2001-2005、2006-2010、2011-2015和2016-2000,设置各个时间段的时间切片为1年,Top N设为50%,以提取各个时间段内出现频次最高的50个关键词[7],得到各个阶段的关键词图谱如图 5 所示。总体上海图制作、GNSS和水深测量的研究主题贯穿1994-2020年《海洋测绘》文献,这三类主题的文献长久不衰。期间随着相关学科科学技术的发展,涌现出新的研究热点,如北斗导航定位系统、GIS、遥感等,也有一些热点时隔20多年后再次爆发,如卫星测高。下面对5个时间阶段具体分析。

1994-2000年间,《海洋测绘》的高频关键词为GPS、卫星测高、海道测量、测深仪和水深测量等,通过聚类得到的主要研究主题为重力异常、动态定位精度、测深仪、测深精度和定位精度等。图 5a表明该时期的突出特征我国学者卫星测高技术开展大量的研究,并应用于大地水准面、重力场和海面地形等海洋大地测量领域,这是由于海洋测高卫星T/P(1993-2003)取得了成功,并在国际上引发测高研究热潮,由此可见我国海洋测绘学者具有较敏锐的热点洞察能力,能够及时有效的应用国际新兴技术。

2001-2005年间,《海洋测绘》载文的研究高频关键词为GIS、海洋测量、多波束测深、水深测量和数字海图等,聚类主题主要为GIS、GPS、水深测量、国际海道测量组织和地图集等。该时间段,地理信息系统GIS的热度最高,关键词频次和聚类强度均居首位,此外该阶段也出现了多波束测深、侧扫声呐、海洋磁力等方向的研究热点。表明该阶段我国海洋测绘的数据容量和装备能力都有所提升,对新型数据管理和装备应用的相关理论研究提出了需求。

2006-2010年间,《海洋测绘》载文的热点关键词主要为全球定位系统、GIS、多波束测深、数字高程模型、数字海图等,聚类分析得到主要研究主题为全球定位系统、GIS、生产模式、遥感图像处理、侧扫声呐等。该阶段的研究热点基本如前一阶段,但首次出现了遥感类的关键词聚类,其核心关键词主要包含遥感影像、图像处理、高光谱等,表明遥感技术已广泛应用于海洋测绘领域。

2011-2015年间,《海洋测绘》载文的高频关键词为多波束测深、GPS、侧扫声呐、北斗卫星导航系统和精度等,聚类主题主要为多波束测深、定位精度、余水位、惯导和海洋重力仪等。和前几阶段比较,北斗导航定位系统开始在海洋测绘工作中发挥作用,同时我国的海洋测绘研究方向更加精细化。

2016-2020年间,《海洋测绘》载文的高频关键词主要为多波束测深、测绘学名词(第三版)、卫星测高、遥感影像和声速剖面等,聚类研究主题主要包含声速剖面、测绘学名词(第三版)、电子海图、覆盖性(北斗)和计算精度等。结果表明在20年之后,卫星测高再次成为核心节点(中心性0.26,明显大于0.1),这可能和我国海洋测高卫星(如HY-2A/B/C等)的快速发展相关,国内外多任务测高卫星采集的高分辨率和高精度卫星测高数据进一步提升了重力场、海底地形反演的空间分辨率和精度。此外,该时期《海洋测绘》刊载了《测绘学名词》(第三版)摄影测量与遥感、大地测量学等名词的权威释义,这对于规范新形势下快速发展的测绘行业交流具有重要意义。


a

b

c

d

图 5 《海洋测绘》1994-2020年间的文献关键词演变。a)为1994-2000,b)为2001-2005,c)为2006-2010,d)为2011-2015,e)为2016-2020。

结论和展望

本文通过文献计量分析,从发文数量、作者合作网、机构合作网、关键词网络以及主题演进等方面,研究了《海洋测绘》创刊40年来最近30年的文献特征。总体来看,《海洋测绘》载文的核心主题主要为水深测量、GNSS、海图制作等,发文机构主要是军事海洋测绘院所,其次为我国海洋业务主管部门下设的海洋研究院所及调查机构,高产的发文作者较为集中,大多数隶属于同一研究机构,高产作者间合作密切。分时间阶段研究表明GNSS、多波束测深、海图制作三大主题长久不衰,GIS方向在2000-2010年间出现研究热潮,但之后热度快速衰退,卫星测高在1994-2000年间为热点研究领域,并且在近20年后再次发展为热点研究,这与我国海洋动力卫星计划的顺利实施密切相关,同时,随着我国北斗导航定位系统的逐步全球组网,北斗在2011年之后也成为重要的研究热点。

跨度近30年的文献分析表明,我国《海洋测绘》的研究视角逐步向综合、交叉和融合转变,海洋测绘、空间信息技术、物理海洋和声学等学科的交叉融合不断增强,在研究内容方面逐步细化,特别近几年出现对不同类型的测量误差的专门研究,研究方法和技术方面出现了从海洋实测到卫星遥感的扩展。结合海洋测绘学科特性,我们建议中国海洋测绘学者应以更加开放的态度,引入其他交叉学科,目前诸如大数据、人工智能等新发展的技术在海洋测绘领域的应用稍显不足,并进一步重视海洋测绘在海洋经济发展的基础性作用,不断加强军地海洋测绘融合。

参考文献(略)

作者:杨磊1,2,曹永港2,3,欧阳永忠2,3,周兴华1,4
(1. 自然资源部第一海洋研究所, 山东 青岛 266061; 2. 自然资源部海洋环境探测技术与应用重点实验室,广东 广州 510300; 3. 国家海洋局南海调查技术中心,广东 广州 510300;4. 山东科技大学海洋科学与工程学院,山东 青岛 266590)

GMT和Pygmt提供了一个远程数据功能,可以使用函数datasets远程下载多种在线数据,并进行处理和绘图。这里以pygmt为例绘制海底地壳年龄、陆地地形。

Global Earth Seafloor Crustal Age Grids

地壳数据包含了不同的分辨率,对应不同文件大小,最粗为1d,全球数据仅125K,最大分辨率1m,全球数据188M。

绘图

1
2
3
4
5
6
import pygmt
grid_globe = pygmt.datasets.load_earth_age(resolution='06m', region="-180/180/-90/90", registration=None)
fig = pygmt.Figure()
fig.grdimage(grid=grid_globe, projection="R15c", region="0/360/-89/89", frame=True,cmap="crustal_age.cpt")
fig.colorbar(frame=["af", "x+lage", "y+lMyr"],cmap="crustal_age.cpt")
fig.show()

上面的调色板crustal_age可以在.gmt/cache/下找到,而远程数据也下载到了./gmt/server/下面。

地形数据

地形数据包含多种不同分辨率,对饮不同的文件大小,最粗为1d,文件大小128k,最高分辨率为1s,文件大小达41G:

SRTM绘图

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
29
30
31
32
33
34
35
36
37
38
39
40
41
# 雅鲁藏布江大峡谷
grid = pygmt.datasets.load_earth_relief(
"03s",
region=[94, 95.5, 29, 30],
registration="gridline",
use_srtm=True,
)

# calculate the reflection of a light source projecting from west to east
# (azimuth of 270 degrees) and at a latitude of 30 degrees from the horizon
dgrid = pygmt.grdgradient(grid=grid, radiance=[270, 30])

fig = pygmt.Figure()
fig.grdimage(grid=grid, projection="M15c", region=[94, 95.5, 29, 30], frame=['WSrt+t"Original Data Elevation Model"',"xa", "ya"],cmap="dem1")
fig.colorbar(position="JML+o1.8c/0c+w10c/0.9c",frame=["af", "y+lmeter"])
fig.coast(rivers="a/1p",borders="2/5,red")

# Shift plot origin of the second map by 12.5 cm in x direction
fig.shift_origin(xshift="20c")
pygmt.makecpt(cmap="gray", series=[-1.5, 0.3, 0.01])
fig.grdimage(
grid=dgrid,
projection="M15c",
frame=['lSEt+t"Hillshade Map"', "xa0.1", "ya0.1"],
cmap=True,
)
fig.coast(rivers="a/1p",borders="2/5,red")

# Shift plot origin of the second map by 12.5 cm in x direction
fig.shift_origin(xshift="20c")
fig.grdimage(
grid=grid,
shading=dgrid,
projection="M15c",
frame=['lSEt+t"Hillshade Map"', "xa0.1", "ya0.1"],
cmap="dem1",
)
fig.coast(rivers="a/1p",borders="2/5,red")

fig.show(width="20c")
fig.savefig("srtm.png")

3D地形图

同样,我们还可以使用pygmt.grdview绘制三维地形图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fig = pygmt.Figure()
fig.grdview(
grid=grid,
region=[94.7, 95.2, 29.5, 30],
perspective=[250, 60],
frame=["xa", "ya", "WSNE"],
projection="M15c",
zsize="15c",
surftype="s",
cmap="dem1",
# Set the plane elevation to 1,000 meters and make the fill "gray"
plane="000+ggray",
)


fig.show()

附:遥感影像和地形的结合

在github存在一个30Day*****的系列代码库,其中包含绘图领域的30DayMapChallenge2021,恰好已经使用GMT完成了这项工作,作者是Pygmt的核心开发者Weiji。

这里有两个遥感影像和地形结合的例子(17和18),可以作为很好的学习材料.


代码请前往:https://github.com/weiji14/30DayMapChallenge2021

Fluid2d

Fluid2d是通用的Python-Fortran CFD代码包,它包含了大量的二维流体方程。该软件对于学生学习流体力学或地球物理流体动力学很有帮助,也可以是授课老师的教学实践工具。 其思想是在计算流时可视化动态流,且参数变化的影响可以立即看到。 二维流体的关键量是涡度,如果你的涡度动力学很弱,这个代码是为你准备的。 你应该迅速成为专家一样的专家。由于动画的强大功能,用户可以了解基本流体性质,进一步超越教科书而触及学术研究的问题是很容易的。

有几个功能特别好:

  • 代码可处理许多不同的方程组:transport, Euler, quasi-geostrophic, Boussinesq, thermal wind equations。
  • 代码处理一个允许具有复杂几何形状的掩模系统(具有任意形状的封闭域)
  • 代码往往具有非常低的dissipation水平
  • 允许研究边界层问题的no-slip条件
  • 代码是并行的,如果需要高分辨率,可以在集群上运行。

下载和安装

软件主页:http://pagesperso.univ-brest.fr/~roullet/fluid2d/index.html
最新版下载地址:https://github.com/pvthinker/Fluid2d

安装步骤:

作者提供了一个快速编译和安装脚本install.sh

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/bin/bash

pydir=$HOME/.fluid2d
default=core/defaults.json
srcdir=`pwd`
myexpdir=$srcdir/myexp

echo "--------------------------------------------------------------------------------"
echo ""
echo " Installing Fluid2d"
echo ""
echo "It is recommended to create a virtual environnement. "
echo "If you are using anaconda then you may create the 'pyrsw' environment with"
echo ""
echo "> conda env create -f environment.yml"
echo ""
echo "then whenever you want to use Fluid2d, switch to this environement with"
echo ""
echo "> conda activate fluid2d"
echo ""
echo "Are you ok with you environment? (y/n)"
if [ $ok = "n" ]; then
exit 42
fi

if [ ! -d "$pydir" ]; then
echo " Create $pydir"
mkdir $pydir
fi
if [ ! -f "$pydir/$default" ]; then
echo " Copy $default in $pydir"
cp $default $pydir/
fi
if [ ! -d "$myexpdir" ]; then
echo " Create $myexpdir"
mkdir $myexpdir
fi
echo " Copy reference experiments in $myexpdir"
cp -pR $srcdir/experiments/* $myexpdir

# for bash users
cat > $pydir/activate.sh << EOF
export PYTHONPATH=`pwd`/core
echo Python now knows that Fluid2d is in `pwd`
EOF

# for csh, tcsh users
cat > $pydir/activate.csh << EOF
setenv PYTHONPATH `pwd`/core
echo Python now knows that Fluid2d is in `pwd`
EOF

# for fish users
cat > $pydir/activate.fish << EOF
set -gx PYTHONPATH `(pwd)`/core
echo Python now knows that Fluid2d is in `(pwd)`
EOF

# compile the modules with module
echo "--------------------------------------------------------------------------------"
echo ""
echo " Compile modules with f2py"
echo ""
{
# try
make

} || {
#catch
echo "Unable to compile"
echo "Are you sure f2py is installed?"
exit
}

# copy the experiment into

echo ""
echo " Before starting, please read this note carefully"
echo ""
echo " As it configured, Fluid2d will store the results in"
echo ""
echo " *** $HOME/data/fluid2d ***"
echo ""
echo " If you don't run the code from your laptop then it is likely that"
echo " you are not allowed to store large binary files on $HOME/data"
echo " because this is your home."
echo ""
echo " In this case, edit $HOME/.fluid2d/defaults.json"
echo " and set 'datadir' default value (in the output section) to a"
echo " place where you are authorized to store large binary files."
echo " In the jargon, this place is usually a 'work' directory."
echo ""
echo " If you are unsure where to store your results check that"
echo " with your system administrator."
echo ""
echo " Once you know where to store the results, then you're good to go"
echo ""
echo " Each time you open a new terminal you need to"
echo " source ~/.fluid2d/activate.sh if you're under bash"
echo " source ~/.fluid2d/activate.csh if you're under csh/tcsh"
echo " source ~/.fluid2d/activate.fish if you're under fish"
echo ""
echo " To run your first experiment"
echo " cd $myexpdir/Vortex"
echo " python3 vortex.py"
echo ""
echo " Write your new experiments in $myexpdir"
echo " or wherever you want, but not in $srcdir/experiments !"
echo ""

测试

运行之前需要在主目录下新建文件夹:

1
2
3
mkdir data
cd data
mkdir fluid2d

执行例子:

1
2
cd myexp/ShearInstab
python3 shear_instability.py

结果输出:

共享动机

GNSS浮标一种古老而又新颖的测量设备,在海洋具有广泛的应用场景。当前我国海洋调查数据共享普遍较弱,而GNSS浮标的研究由于更加小众,网上很难找到此类数据。为了促进国内学者进行相关研究工作,决定公开GNSS浮标数据。此外在前面的公众号文章中,也已经承诺数据共享,此次公开数据也是执行上次的承诺。

数据表

时间 地点 基站 航迹 用途
20140707-0709 青岛千里岩 Y Y 卫星高度计定标
20140915-0919 青岛千里岩 Y N 卫星高度计定标
20141015-1015 青岛田横岛 Y N 卫星高度计定标
20150410-0410 青岛田横岛 Y N 卫星高度计定标
20150502-0502 珠海担杆岛 Y Y 卫星高度计定标
20150629-0701 青岛千里岩 Y N 卫星高度计定标
20190331-0401 青岛小麦岛 Y Y 机载高度计定标
20190714-0715 威海成山头 Y Y 卫星高度计定标
20190826-0827 威海成山头 Y Y 卫星高度计定标
20210520-0524 青岛小麦岛 N Y 低成本浮标测试

数据下载

https://zenodo.org/record/5774652

数据描述

数据格式主要为GNSS通用RINEX格式。少数试验数据为硬件厂家格式,使用者需要使用相关软件进行格式转换。

数据解算软件

很多软件可以用于解算动态的浮标数据,比如:

  • GAMIT
  • Bernese GNSS
  • RTKLIB
  • PRIDE PPP-AR
  • CSRS-PPP
    我们发现RtkLib容易上手,PPPpride对廉价芯片数据的处理更加优秀,CSRS-PPP更加智能化。GAMIT有点老,但是很经典,Bernese功能强大,是收费软件。此外还有一些其他的商业或者免费软件可以GNSS数据,无法一一列举。

浮标应用场景

本次共享的GNSS浮标数据主要是卫星高度计定标项目所采集,因此也主要用于了海面高度和海浪测量。GNSS浮标可以准确的获得地心坐标系下的三维海面起伏,数据频率通常使用1Hz,可以有效的提取潮汐信息和波浪信息。

  • 卫星高度计定标
  • 机载高度计定标
  • 远海潮汐测量
  • 波浪全要素测量
  • 大地水准面评估

它还有很多应用没有挖掘,更多信息见:小型低成本GNSS浮标研发及初步结果

引用

数据引用格式:

1
2
3
4
5
6
7
8
9
@dataset{lei_yang_2021_5774652,
author = {Lei Yang},
title = {GNSS buoy data},
month = dec,
year = 2021,
publisher = {Zenodo},
doi = {10.5281/zenodo.5774652},
url = {https://doi.org/10.5281/zenodo.5774652}
}

如果数据对您的研究有用,也可以考虑引用如下论文:
[1]LIN Z, LEI Y, YONGSHENG X, 等. Retrieving wave parameters with PPP mode from GNSS buoy measurements[J]. IEEE Geoscience and Remote Sensing Letters, 2020, Early Access. DOI:10.1109/LGRS.2020.3041846.
[2]LEI Y, XINGHUA Z, P. M S, 等. First Calibration Results of Jason-2 and Saral/AltiKa Satellite Altimeters from the Qianliyan Permanent Facilities[J]. Advances in Space Research, 2017, 59(12): 2831–2842. DOI:https://doi.org/10.1016/j.asr.2017.02.044.
[3]YANG L, XU Y, ZHOU X, 等. Calibration of an Airborne Interferometric Radar Altimeter over the Qingdao Coast Sea, China[J]. Remote Sensing, 2020, 12(10): 1651. DOI:10.3390/rs12101651.
[4]杨磊, 周兴华, 王朝阳, 等. 基于GNSS浮标和验潮资料的HY-2A卫星雷达高度计绝对定标[J]. 海洋学报, 2017, 39(1): 111–120.

最近学习了GMT的python库pygmt,感觉相当值得推荐。下面简单介绍安装和使用。

安装步骤

基本的准备工作和安装步骤如下:

  • 安装miniconda
  • 安装conda加速器mamba,提高python库的安装速度(可选);
  • 安装jupyter lab(可选);
  • 安装pygmt;

miniconda

Miniconda是一款小巧的python环境管理工具,其安装程序中包含conda软件包管理器和Python。一旦安装了Miniconda,就可以使用conda命令安装任何其他软件工具包并创建环境等。去官网https://conda.io/en/latest/miniconda.html 下载安装包即可完成安装。

安装后,创建一个新的独立python环境(随便取名,此处为gmt),以备pygmt的安装和调用:

1
2
conda create -n gmt python=3.9
conda activate gmt

mamba

虽然conda是个安装软件的神器,但镜像不稳定,下载安装软件的速度有时很慢。对于几十Mb甚至上百Mb的软件往往下不动,下了半天可能失败。特别是安装的软件多了后,对软件依赖关系的解析时间特别长。mamba加速神器,可以用来并行下载和安装,大大加快速度,减少失败几率。

首先,mamba本身需要先通过conda来安装:

1
conda install -c conda-forge mamba

mamba安装成功后,后续所有软件安装都可将conda替换为mamba了。

jupyter lab

JupyterLab是Jupyter主打的最新数据科学生产工具,作为一种基于web的集成开发环境,你可以使用它编写notebook、操作终端、编辑markdown文本、打开交互模式、查看csv文件及图片等功能。pygmt对jupyter lab有很好的衔接,可以方便的查看和记录中间过程,显示绘图结果。安装命令为:

1
mamba install -c conda-forge jupyterlab

pygmt

pygmt可以在python中直接使用GMT进行数据处理和绘图,实现了和python的交互操作。下面命令将自动安装pygmt以及依赖,包括proj,gdal,netcdf等:

1
mamba install -c conda-forge pygmt

在命令栏输入jupyter lab,启动jupyter lab,新建一个lab,查看版本并绘制一个简单的例子:

1
2
3
4
5
6
import pygmt
pygmt.show_versions()

fig = pygmt.Figure()
fig.coast(region="g", frame=True, shorelines=1)
fig.show()

遥感影像绘制

遥感影像绘制不是GMT常用的功能,因此疑问也较多,这里从遥感数据的下载、格式转换、拉伸、裁剪,到最终绘制,给出完整的步骤。

数据下载

免费下载worldview开放数据:https://www.maxar.com/open-data/
本例子采用数据土耳其地震影像(https://www.maxar.com/open-data/turkey-earthquake)

使用GMT查看影像信息:

1
2
!gmt grdinfo 10300500A4F8E700.tif
# 分辨率约为4.32089651661e-06*120000=0.5m

10300500A4F8E700.tif: Title: Grid imported via GDAL
10300500A4F8E700.tif: Command:
10300500A4F8E700.tif: Remark:
10300500A4F8E700.tif: Pixel node registration used [Geographic grid]
10300500A4F8E700.tif: Grid file format: gd = Import/export through GDAL
10300500A4F8E700.tif: x_min: 26.8895518746 x_max: 27.0835860536 x_inc: 4.32089651661e-06 name: x n_columns: 44906
10300500A4F8E700.tif: y_min: 37.6434216334 y_max: 37.8210061593 y_inc: 4.32089651661e-06 name: y n_rows: 41099
10300500A4F8E700.tif: v_min: 0 v_max: 229 name: z
10300500A4F8E700.tif: scale_factor: 1 add_offset: 0
+proj=longlat +datum=WGS84 +no_defs

或者也可以使用gdal查看:

1
2
3
print("GDAL info")
# 使用gdal查看
!gdalinfo 10300500A4F8E700.tif

信息略

或者也可以使用pygmt.grdinfo查看,不过格式不太美观,没有换行:

1
pygmt.grdinfo("10300500A4F8E700.tif")

信息略

降低影像分辨率

降低分辨率为9m(0.000075*120000=9m),并改为Byte格式(GMT不识别TIF的float32格式):

1
!gdal_translate -tr 0.000075 0.000075 -r average -ot Byte  10300500A4F8E700.tif 10300500A4F8E700_lowbyte.tif

这里的gdal程序应该可以在安装pygmt之后可以自动调佣,因为同时已经安装了gdal依赖,并创建了这些可执行文件。

绘图

1
2
3
4
5
6
7
8
9
10
11
fig = pygmt.Figure()

data="10300500A4F8E700_lowbyte.tif+b0,1,2"

fig.grdimage(
grid=data,
frame=["af"],
projection="M6.5i",
)

fig.show()

色调

如果喜欢亮色,可以适当拉伸灰度值:

1
!gdal_translate -tr 0.000075 0.000075 -scale 0 200 0 255 -r average -ot Byte  10300500A4F8E700.tif 10300500A4F8E700_lowbyte2.tif

重复绘图的代码,效果:

局部

为了保持清晰,局部绘图使用原始分辨率。为了防止图像过大,处理时间长,将裁剪成小区域绘图,并转格式和拉伸:

1
2
!gdalwarp  -te 26.966 37.7 27.0 37.7166 10300500A4F8E700.tif 10300500A4F8E700_small.tif
!gdal_translate -scale 0 200 0 255 -r average -ot Byte 10300500A4F8E700_small.tif 10300500A4F8E700_lowbyte4.tif

重复绘图的代码:

其他

  • 遥感影像一般为底图,在此基础上可以使用pygmt任意添加点、线、面、文字等要素,除了可以识别文本格式,它已经可以读取shp格式。
  • 导出的最终图的格式可以通过后缀修改。比如可以导出高清pdf图片,方便的插入latex使用。
  • 本例使用的遥感影像已经转为经纬度坐标,无需再次转换坐标。如果是UTM,则可以通过gdal快速转换。
  • 本例子未展示地震前后对比,大家可以下载数据后自行对比。

下载

可以下载本例子的jupyter 版本:https://www.jianguoyun.com/p/DY8Q0ugQ2PCQBxjvv5cE

在Ubuntu上安装TensorFlow GPU版本,首先需要:

  • 一张NVIDIA GPU显卡和Ubuntu系统;
  • NVIDIA 显卡驱动,最新为495.29.05(2021年10月22日);
  • CUDA toolkit;
  • cudNN SDK;
  • CUPTI;
  • TensorFlow作为深度学习的框架。

以NVIDIA 2080ti为例,安装步骤如下:

安装 NVIDIA 显卡驱动

在官网:https://www.nvidia.com/download/index.aspx?lang=en-us 下载最新的显卡驱动。

完成后运行nvidia-smi,查看显卡信息:

正常显示则表示驱动安装成功。

Ubuntu初次插入GPU显卡后会自动安装驱动,也能正常使用显卡,但是版本可能较低,和TensorFlow的GPU需求不匹配。也可以通过Ubuntu自带的驱动更新来安装显卡最新的驱动

CUDA toolkit

去谷歌网站查看版本匹配,确定TensorFlow、cuda toolkit、和cuDNN的版本对应正确。

以TensorFlow2.5为例,需要的cuDNN8.1和CUDA 11.2。

注意这个CUDA 11.2不是驱动的版本,可以和上面的显卡驱动显示的11.5不一致。

下载:

1
2
3
wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run
sudo chmod +x cuda_11.2.2_460.32.03_linux.run
sudo ./cuda_11.2.2_460.32.03_linux.run

坑-1

cuda toolkit包中含有了显卡驱动,因为之前已安装,这里不要再安装,否则显卡驱动冲突。

此处可参考:https://zhuanlan.zhihu.com/p/122286055

去掉driver前面的X,执行install,等一会安装成功。

添加到路径

1
2
3
4
5
sudo gedit ~/.bashrc
export PATH="/usr/local/cuda-11.2/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME=/usr/local/cuda-11.2
source ~/.bashrc

测试

1
nvcc -V

cuDNN

从官网(https://developer.nvidia.com/rdp/cudnn-download) 下载cuDNN。先注册,然后找到对应的8.1版本,并下载deb版本。

可参考:https://zhuanlan.zhihu.com/p/126997172

下载内容为:

1
2
3
libcudnn8_8.1.1.33-1+cuda11.2_amd64.deb
libcudnn8-dev_8.1.1.33-1+cuda11.2_amd64.deb
libcudnn8-samples_8.1.1.33-1+cuda11.2_amd64.deb

依次安装:

1
2
3
sudo dpkg -i llibcudnn8_8.1.1.33-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-dev_8.1.1.33-1+cuda11.2_amd64.deb
sudo dpkg -i libcudnn8-samples_8.1.1.33-1+cuda11.2_amd64.deb

对于新版的cuda,如11.6,cudnn只提供了一个文件。可以使用如下方法安装:

1
2
3
4
5
6
7
8
# Procedure
# Navigate to your <cudnnpath> directory containing the cuDNN tar file.
# Unzip the cuDNN package.
$ tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
# Copy the following files into the CUDA toolkit directory.
$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

参考:https://blog.csdn.net/P081513083/article/details/126324723

测试cuDNN

1
2
3
4
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd ~/cudnn_samples_v8/mnistCUDNN
sudo make clean
sudo make

遇到错误:

1
2
test.c:1:10: fatal error: FreeImage.h: No such file or directory
1 | #include "FreeImage.h"

解决方法:

1
sudo apt-get install libfreeimage3 libfreeimage-dev

进行测试:

1
sudo ./mnistCUDNN

显示Test passed!

CUPTI

该程序没有约定版本,直接通过apt安装。

1
sudo apt-get install libcupti-dev

并编辑~/.bashrc添加到路径。

1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

Tensorflow

坑2

不要使用conda安装,使用pip安装。

使用conda反复安装TensorFlow,总是无法调用GPU,后来使用pip安装(也是官方教程的方法)发现安装包要比conda的包大一倍。

使用下面的命令测试:

1
import tensorflow as tf

会出现Successfully opened dynamic library libcudart.so.11.0,表示成功。

接着使用

1
tf.config.list_physical_devices('GPU')

至此,安装成功。

参考

https://medium.com/analytics-vidhya/configure-tensorflow-gpu-with-ubuntu-18-04-2021-update-aee264e887ae
https://www.bilibili.com/read/cv9164113
https://towardsdatascience.com/installing-tensorflow-gpu-in-ubuntu-20-04-4ee3ca4cb75d
https://zhuanlan.zhihu.com/p/122286055
https://zhuanlan.zhihu.com/p/126997172
https://www.tensorflow.org/install/source#gpu

下面介绍GMT中blockmeangrdmath的统计计算功能,包含均值、标准差和趋势。

案例:高度计大气湿延迟的中国周边海域分布

以中国周边海域的高度计湿延迟为例,计算湿延迟的空间均值、标准差和趋势。

code

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
REM             GMT EXAMPLE xxxx
REM 2021-03-14 leiyang@fio.org.cn
REM Purpose: Using blockmean, grdmath to calculate the STD abd trend
REM
gmt gmtset FORMAT_GEO_MAP = dddF MAP_FRAME_WIDTH=2p
gmt gmtset FONT_ANNOT_PRIMARY 7p,Helvetica,black FONT_LABEL 7p,Helvetica,black

set ps=jason_wet_global_new.ps
set R=105/130/15/45
set J=M5c

REM Calculate mean value and plot mean wet path delay
gmt makecpt -Cvik -T50/350/5> t.cpt
REM use Jason-2 data of cycle 1-294 (6years), downloaded from RADS.
rem gawk "!/NaN/ && NR>13 && $3>100 {print $3,$2,(-$4)*1000}" D:\rads\wet\radsdata_ok\j2*c*.asc > model.dd
gmt blockmean model.dd -R%R% -I20m >tmp_.dd
gmt surface tmp_.dd -R%R% -I20m -Ggridded2_j2_s.nc -T0.25
REM gridded2_j2_s.nc is the averaged file and will be used in next step.
gmt grdimage gridded2_j2_s.nc -R%R% -J%J% -K -Ct.cpt -Y13c> %ps%
gmt pscoast -R -J -Dl -A10000/0/1 -Bag --FONT_TITLE=10p -Gwhite -W0.1p --MAP_ANNOT_OBLIQUE=45 -O -K >> %ps%
gmt psscale -DjBC+o0c/-1.4c+w1.5i/0.08i -R -J -Ct.cpt -Bxaf -By+lmm -I -O --FONT_ANNOT_PRIMARY=7p -K>> %ps%
echo 107 42 a)mean of WPD| gmt pstext -F+f8p,1,black+jLB -R -J -O -N -Gwhite -K >> %ps%

rem Calculate STD and PLOT
gmt makecpt -Cvik -T50/150/1> t.cpt
gmt blockmean model.dd -As -E -R -I20m -Ggridded2_j2_std.nc
gmt grd2xyz gridded2_j2_std.nc | gawk "!/NaN/ {print $1,$2,$3}" | gmt surface -R -I20m -Ggridded2_j2_std2.nc -T0.25
REM gridded2_j2_std2.nc is the STD file and will be used in next step.
gmt grdimage gridded2_j2_std2.nc -R -J -K -Ct.cpt -O -X7c >> %ps%
gmt pscoast -R -J -Dl -A10000/0/1 -Bag --FONT_TITLE=10p -Gwhite -W0.1p --MAP_ANNOT_OBLIQUE=45 -O -K >> %ps%
gmt psscale -DjBC+o0c/-1.4c+w1.5i/0.08i -R -J -Ct.cpt -Bxaf -By+lmm -I -O --FONT_ANNOT_PRIMARY=7p -K>> %ps%
echo 107 42 b)STD of WPD| gmt pstext -F+f8p,1,black+jLB -R -J -O -N -K -Gwhite >> %ps%

rem Calculate trend and PLOT
gmt makecpt -Cvik -T-30/30/1> t.cpt
gmt grdsample gridded2_j2_s.nc -I60m -Ggridded2_j2_s_re.nc

gmt grdmath gridded2_j2_s_re.nc DDY = slope2.nc
gmt grdmath gridded2_j2_s_re.nc DDX = slope3.nc
gmt grdmath gridded2_j2_s_re.nc D2DY2 = slope1.nc

gmt grdimage slope2.nc -R -J -K -Ct.cpt -O -X-7c -Y-10c>> %ps%
gmt pscoast -R -J -Dl -A10000/0/1 -Bag --FONT_TITLE=10p -Gwhite -W0.1p --MAP_ANNOT_OBLIQUE=45 -O -K >> %ps%
gmt psscale -DjBC+o0c/-1.4c+w1.5i/0.08i -R -J -Ct.cpt -Bxaf -By+lmm/@. -I -O --FONT_ANNOT_PRIMARY=7p -K>> %ps%
echo 107 42 c)trend of WPD| gmt pstext -F+f8p,1,black+jLB -R -J -O -N -Gwhite -K >> %ps%

gmt grdimage slope3.nc -R -J -K -Ct.cpt -O -X7c >> %ps%
gmt pscoast -R -J -Dl -A10000/0/1 -Bag --FONT_TITLE=10p -Gwhite -W0.1p --MAP_ANNOT_OBLIQUE=45 -O -K >> %ps%
gmt psscale -DjBC+o0c/-1.4c+w1.5i/0.08i -R -J -Ct.cpt -Bxaf -By+lmm/@. -I -O --FONT_ANNOT_PRIMARY=7p -K>> %ps%
echo 107 42 d)trend of WPD| gmt pstext -F+f8p,1,black+jLB -R -J -O -N -Gwhite >> %ps%

gmt psconvert %ps% -A -P -Tf

结果

大气湿延迟和大气水汽和液态云有关,均值呈现出南高北低的自然特征。在北纬25-35度之间,时间变化(STD)最为剧烈,说明这段区间可能四季分明,不过度干燥,不过分潮湿,适合人类居住(xia che)。变化趋势图表示南北和东西方向一度距离上湿延迟的变化,因为网格的空间单位是度,所以这里一阶导数结果表示一度空间距离上的湿延迟变化量。

要点

blockmean model.dd -As -E中的-As设置输出为STD。如果不做设置,默认输出的是均值。

gmt grdmath gridded2_j2_s_re.nc DDY = slope2.nc中的DDY或者DDX设置一个固定方向的一阶导数计算,因为网格被提前预设为1度,因此计算结果是1度距离上的变化率。grdmath也可以计算二阶导数,使用D2DY2或者D2DX2

数据

可以直接小编从RADS数据库中提取的文件model.dd,它是 Jason-2 cycle 1-294的全部模型湿延迟原始数据汇总:
model.dd: https://www.jianguoyun.com/p/DWQl1jsQ2PCQBxjWsYwE