前言

GIS外业工作中经常需要采集一些路线、点位等信息,一些大型项目的可能有专门的二次开发移动GIS程序用于记录,对于个人或小团队而言,一般则选用第三方的工具进行记录。本文即简单列出几个外业数据采集工具软件及对应的数据处理方法。

奥维地图

数据采集

外业工作中非常著名的一款软件,有IOS、Android客户端,也适配了HarmonyOS Next,跨平台能力突出,可在应用市场下载,无需登录也可以完成基本的数据采集工作。打开奥维互动地图APP后点击下图所示的设置按钮

奥维地图设置按钮

随后使用开始记录轨迹暂停记录轨迹停止记录轨迹并保存菜单项控制记录的开始、暂停和结束,菜单中还有可以设置轨迹记录和轨迹属性的项目;停止记录并保存后,所记录的轨迹数据就会出现在本地收藏夹中,点击主界面底部的收藏按钮进入查看。如需采集点位信息,则点击底部的我在这按钮收藏我的位置,添加相应信息即可。

奥维地图收藏夹入口

数据导出

奥维地图免费版不支持导出shp等通用格式的数据,只能导出奥维的专有格式(以ov开头的)。我们进入一份数据,点击分享>文件分享,选择ovkml格式的数据,导出并传输到电脑。在电脑上通过重命名的方式修改ovkml文件后缀名为kml,这样就能得到我们熟悉的kml格式数据了。但是kml格式通用性仍然较差,主要用于显示标签,较少能用于空间分析等进一步计算,可以使用ArcGIS Pro的kml转图层工具将kml转为ArcGIS的图层,随后再将该图层导出为shp格式以完成格式的转换,得到我们最终想要的shp格式数据。

小结

因为奥维互动地图的跨平台特性,此方法尤其可以方便IOS和HarmonyOS Next的用户完成外业采集任务,实测下来奥维的采集并非完全使用原始数据,其采集的轨迹(Polyline)折点数少于GPS原始数据。

北斗伴

数据采集

北斗伴是一款轻量的可快速获取GPS相关信息的软件工具,目前之后安卓端,应用市场搜索可下载。进入软件主页即可查看经纬度、日期、时间、海拔、速度、速度方向等等各种GPS相关信息。数据采集需要点击设置(注意不是轨迹)菜单项,点击存储NMEA即开始采集轨迹数据,点击停止存储结束采集。

存储NMEA

采集结束后点击分享NMEA即可将所记录的NMEA数据以txt格式的文件分享传输至电脑上

数据处理

目前,ArcGIS Pro(截至3.4.2版本)尚未原生直接支持导入NMEA格式的数据,可以使用以下途径进行转换。

QGIS

QGIS中提供了多种格式GPS数据的导入功能,使用的是转换GPS数据这个工具

转换GPS数据工具

格式选择NMEA、要素类型选择轨迹,就可以将相应的NMEA数据导入进来,随后再将导入所得的图层导出为shp(在QGIS中叫做ESRI形状文件)就又可以愉快地把玩采集到的数据了。

QGIS导入NMEA选项页面

GPSBabel

这是一款GPS数据格式转换的小软件,访问https://www.gpsbabel.org/download.html#downloading即可下载,支持Linux、Windows、MacOS多平台,打开软件,同样地在格式(Format)中选择NMEA,转换选项旁的Filters可以选择只转换轨迹,输出格式选择ESRI shapefile,运行后即可得到所需要的轨迹shp数据。

GPSBabel软件界面

FME

FME是一款数据集成平台,其中文宣传语也挺有意思:构建数据和应用之间的桥梁,不难看出其格式兼容性的强大,它能够将全部数据和应用程序连接子啊一起,可包含336种不同的格式。软件本身有多个版本,支持Windows、MacOS、Linux、Docker、Kubernetes等多种安装部署方式。ArcGIS Pro也开发了一款定制化的FME,需要单独安装。如果已经安装,就可以在分析菜单中找到Data Interoperability按钮,点击即可打开ArcGIS Pro Data Interoperability Extension,也就是ArcGIS Pro定制版的FME。

进入软件后新建一个空白工作空间Blank Workspace,点击顶部菜单Transformers,Add Transformer添加转换器,搜索NMEA,切换到Reader选项卡,双击第二个结果NMEA GPS即可将该Reader添加到工作区。

搜索并添加NMEA读取器

Dataset毫无疑问就选择此前导出的txt文件了,坐标系按实际选择(或者暂时不选,到时候进到ArcGIS Pro再自己定义投影也行),一般GPS得到的数据都是WGS 1984地理坐标系的了,下面的选项选择Individual Feature Types可以添加此Reader所支持的所有类型,分别导入,选择Single Merged Feature Type则将所有类型都合并为一个,我们选择前者(因为Shapefile不支持多类型共存),此时工作区就会出现轨迹点、轨迹、标志点这三种类型的数据了,我们需要转出的是tracks轨迹数据。

FME工作区

因为我们要输出的是shp格式的数据,所以还需要添加一个shp格式的Writer,同样是在Add Transformer处搜索shp,切换到Writer选项卡,双击Esri Shapefile Writer,设置输出shp的文件夹、坐标系等参数、属性,添加到工作区

Shp格式输出器

在第二个弹出的窗口中可以设置要素类型、shp文件名、用户属性、格式属性等(下图所示界面)

设置shp属性

随后点击轨迹tracks右侧的输出三角形,再点击输出的Shapefile左侧的红色输入三角形将二者连接起来,完成了转换流程的构建

构建转换流程

点击顶部工具栏的Run运行转换工作流,根据实际设置一些必要参数后软件就会开始转换工作,结束后可在日志区看到Successful类似字样,并在刚刚设置的输出位置中找到相应的shp文件。

FME也支持对数据进行预览,当然也可以将结果shp导入到ArcGIS Pro中进行更进一步的编辑与分析

ArcGIS Pro中预览效果

补充

  1. FME工具包实际还有一个Quick Translator能实现更快速的数据转换
  2. 本文使用的FME Reader需要先在电脑上安装了GPSBabel后才能使用

手动分割

此处只介绍思路,从NMEA的原理出发不难想到这种处理方法,但是相比于上述现成工具更加费时费力。已知NMEA数据大致长下面这样子:

$GNGGA,075905.00,2309.735839,N,11321.739507,E,1,12,0.4,39.8,M,-6.7,M,,*51
$GPGSV,4,1,14,01,49,038,36,03,35,115,34,08,09,070,32,14,52,336,31,1*60
$GPGSV,4,2,14,17,41,308,43,19,20,280,26,22,33,326,32,30,50,238,42,1*63

整体跟csv很像,因此我们可以根据NMEA的编码规则(参考https://blog.csdn.net/weixin_39888010/article/details/129057620)提取我们需要的信息,综合运用导入表、字段计算器、xy表转点、xy转线、点集转线等工具,将原数据提取成我们需要的shp点或线要素。

大语言模型

大语言模型发展到现在已经过去了约两年了,很多人还停留在用它来问问题、写文章,实际上其能力远不止于此,很多时候它不仅能够给出解决方案,更能把问题解决掉直接给出结果了,以此为契机也不妨试试,日常工作生活学习更应当积极探索其能力边界。

大语言模型应用示例

由于提示词尚未经过严谨思考和优化,所使用的也是上一代的大语言模型(无推理能力),因此得出的结果不完全符合我们的目的,但是已初见端倪。

小结

使用此方法采集的数据实际即为GPS源数据,没有经过任何的平滑、简化运算,可以最大程序保留原始特征,但是同样的数据量也会较大,更考验后期处理能力。此外,本部分中还以本次需求为例介绍了三款工具软件,除了NMEA以外,三款工具都各自支持了大量的数据格式,此后遇到类似格式转换需求时不妨到这些工具上看看。尤其是FME,其强大的工作流能够帮助实现更多更高级的批量数据转换操作,以此为引也不妨深入了解、探索一下。

其它软件

外调助手可以提供限时的轨迹采集与数据记录,能够导出shp格式;QField可以采集点位数据;ArcGIS也提供了移动端的外业软件,但是需要收费;上到Google Play应用商店还能找到Locus GIS等更多移动端GIS软件。

总结

本文以一个很简单的需求为引子,试图探索GIS外业数据采集与处理的流程方法,介绍了多种解决问题的方法。既总结了几种常见的外业数据采集方法,又为以后解决别的问题提供思路启发。