沈雪华
(中国地质调查局南京地质调查中心,江苏南京 210016)
Google Earth(以下简称GE)是一款功能强大的虚拟地球软件。它可以提供海量全球高分辨率地球影像、DEM等地理信息数据,支持用户对这些数据进行浏览、查询和下载,实现了真正意义上的“数字地球”。由于GE改变了传统的地理信息以点、线、面为主的平面形式,能够实现立体三维遥感影像空间展示,且任何人都可以通过网络数据访问,目前已经在城市安全、水文、地质调查、防震减灾等领域得到了广泛应用。Liu et al.(2013)基于GE模拟了城市气体渗漏,为城市燃气安全管理和应急救援提供了可靠的数据[1]。Chien&Keat Tan(2011)以GE为工具,建立了2-D水动力模型,认为GE有足够的能力实现水动力数据的可视化,但其交互数据输入仍受到一定的限制[2]。在地质勘查领域,虚拟技术正在成为构造地质可视化的一项标准流程,已经实现了利用GE建立构造地质可视化符号和曲流河地质知识库,为地质勘查提供了便利[3-5]。银正彤等(2009)在GE平台上,实现了对地震灾害信息的快速收集、传输和展示应用,为救灾抢险提供依据,并提出相应的救灾方案路线[6]。
GE除了可以通过浏览查询全球各地的高清影像图获得相应的位置、地形、高度等信息外,还可以根据经纬度导入点符号、线、多边形等外部信息。少量而简单的地理要素可以利用GE界面交互生成,但对于大量而又复杂的地理信息,交互生成几乎是不可能的。例如:地质勘探中的GPS航迹和大量地球物理测点,或者等高线三维地形模型等[7],手动交互难以达到目的。此时可以先通过ArcGIS、MapInfo、Global Mapper等软件根据经纬度信息生成KML格式,再导入到GE中[8]。KML是 Keyhole标记语言(Keyhole Markup Language)的缩写,用来保存和描述诸如点、线、面、图片等地理信息。目前绝大多数虚拟地球都采用KML格式来描述地理目标,GE也不例外。KML可以通过人工交互和计算机程序两种方式生成。人工交互是在GE中采用不同的工具绘制出相应的地理要素,然后将这些地理要素保存为KML文件。后一种方式则是通过计算机程序将用户数据自动生成KML文件,然后导入GE中。采用计算机程序可以产生更复杂的地理要素类型,同时减少人工干预所带来的误差,更为高效和精确。为此,本文介绍一种简单高效的KML文件生成方法,只需GMT软件中的一个命令即可实现利用地标信息生成KML文件。
gmt2kml是GMT软件中的一个命令。GMT是1987年由Paul Wessel和Walter Smith H.F.Smith共同开发的一款功能强大而开源的绘图软件,可在Linux、Windows等系统下安装使用,用户可以到 GMT 主页(http://gmt.soest.hawaii.edu/)下载安装包。GMT有图形美观、色彩强烈、组织灵活、移植性强等特点,支持多种地图投影,可由命令行、脚本和用户程序调用,能绘制出非常美观的2D和3D图形,具有很强的适应性,已在地理、地球物理、大气、海洋等领域得到广泛应用[9-12]。gmt2kml命令可以直接将数据表文件转换为GE所需的KML文件,用法如下:
infile表示输入的数据表文件;-A为高度信息;-C为色标;-D为描述文件;-E伸出特征;-F表示要素类型,e-地震事件,s-点符号,t-时间序列,l-线,p-多边形;-G 填充点要素;-H识别表头,-Hi跳过所有#注释;-K允许追加命令;-L数据列名称;-N地理要素命名;-O追加的命令;-Q要素的透明度;-R限定区域;-S要素显示比例;-T标题;-W线或多边形的属性;-m多段数据。
gmt2kml的参数较多,可以生成不同类型的地理要素,并允许对其进行修饰。正是因为具有丰富的参数,才能体现出gmt2kml命令的强大性。除去输入数据文件infile和输出结果文件output.KML,必要的参数只有要素类型F。常用的要素类型有点符号(s)、线(l)、多边形(p),使用时分别为 -Fs、-Fl、-Fp。GMT软件允许命令追加,当使用一个命令得到输出文件之后,还可以将其它命令的结果追加到该输出文件中。gmt2kml具有追加的功能,使用多行命令生成一个KML文件时,只需在命令行中增加-K,此时输出的结果便允许被追加。而追加的语句中一定要有-O参数,表明该语句是一条追加的语句。gmt2kml还可以同时读取一个或者多个数据表文件,并将其转换为相应地理要素的KML文件,用户可以同时赋予标题、高度、颜色、画笔、透明度、限定区域、描述等特殊的属性。各参数详尽的使用方法可以参考GMT帮助手册。
GE仅支持地理坐标,因此输入数据必须是包括经度、纬度的地理坐标,数据表文件格式如下:
经度 纬度 [高度][开始时间 [结束时间]]
经度和纬度属于位置信息,为必要数据,高度、时间等信息可选。实际工作中通常使用笛卡尔坐标,需将其转换为地理坐标[13]。
生成点符号的语句:
gmt2kml infile -Fs -Gnred -Gfgreen -Sf0.6 -Sn0.6 >out.kml
主要参数有:-F,要素类型,这里s(symbol)表示生成点符号;-Gn,标签颜色;-Gf,图标颜色;-Sf,图标显示比例;-Sn,标签显示比例;out.kml表示输出的KML文件。除了-F是必要参数,其余参数皆为非必要,可选用于修饰和丰富点符号。
生成线和多边形的语句:
gmt2kml infile -Fl -W1p,green,solid > out.kml
主要参数有-F,要素类型,这里为线(line);-W,线的属性,1p表示线宽,green为线颜色,solid为线型,可以根据需要修改。-W为可选参数,若无则线条将被赋予默认的线宽、颜色和线型。该语句将文件infile中的点从头至尾依次相连,最终生成一条线。实际工作中,有时候希望生成多条线,此时只需将数据按照多段数据格式排列如下:
这里-m表示多段数据,i表示输入,>表示每条线的标识,也可以使用其它符号标识。
生成多边形与生成线方法相似。不同的是生成多边形时,需将-Fl改为-Fp,则自动将每一个封闭的区域填充为多边形。相应的语句为:
单个多边形:
gmt2kml infile - Fp - W1p,green,solid > out.kml
多个多边形:
gmt2kml infile -Fp -W1p,green,solid -mi">" >out.kml
gmt2kml转换十分高效,数据量越大更能体现出它的优势。例如在地质及地球物理测量过程中,定位所采用的手持GPS可以记录每一天的航迹。若能将航迹导入GE,结合高清影像中的地物,可以更好的管理和分析测量结果。图1是地球物理磁法测量某一天所记录的航迹,通过gmt2kml将其转入到GE中,可以直观地看出该台班的工作路线及地形地貌。将航迹保存为经度、纬度、高度之后,采用gmt2kml只需两行命令即可实现图1中的效果。
图1 航迹管理和显示Fig.1 Management and display of tracks
实现命令如下:
第一行命令将 infile.txt中的点生成 result.kml文件,第二条命令将infile.txt中坐标点连接成线并追加到已有result.kml文件中。相比前面的介绍,这里使用了参数-E和-C。-E表示突出地面(图1效果),实现立体感;若没有该参数,则所有的点和线均处于相同的平面;-Crainbow.cpt表示使用rainbow.cpt色标文件,将高度赋予不同的颜色。
gmt2kml命令可以轻松高效的生成各种GE要素。用户可根据需要选择不同的参数,并对各种要素进行修饰,以获得更美观并符合要求的KML文件,更好地服务于地质、地球物理等行业。
[1]LIU F,CHU Y,LIANG D.Simulation of Urban Gas Leakage based on Google Earth[J].Procedia Engineering,2013,52:220 -224.
[2]CHIEN N Q,KEAT T S.Google earth as a tool in 2 - D hydrodynamic modeling[J].Computers & Geosciences,2011,37(1):38 -46.
[3]王俊锋,白宗亮,田琮,等.GoogleEarth在地质解译中的应用[J].新疆地质,2014,32(1):136 -140.
[4]BLENKINSOP T.G.Visualizing Structural Geology:From Excel to Google Earth[J].Computers & Geosciences,2012,45(1):52 -56.
[5]石书缘,胡素云,冯文杰,等.基于GoogleEarth软件建立曲流河地质知识库[J].沉积学报,2012,30(5):869 -878.
[6]银正彤,郑文锋,杨朝晖,等.GoogleEarth在防震减灾决策中的应用[J].地震研究,2009,32(1):99 -103.
[7]莫善军,李志凛,陈成江,等.利用GoogleEarth建立等高线三维地形模型[J].测绘通报,2012(2):39-42.
[8]BALLAGH L M,RAUP B H,DUERR R E,et al.Representing Scientific Data Sets in KML:Methods and Challenges[J].Computers & Geosciences,2011,37(1):57 -64.
[9]苏鹤军,张慧,李晨桦,等.GMT绘图软件汉字库配置技术应用研究[J].地震工程学报,2013,35(4):928 -935.
[10]占伟,孟宪刚,刘志广.GMT绘制GPS速度场的应用[J].华北地震科学,2010,28(3):61 -64.
[11]赵桂儒,李卫东,吴敏.GMT软件显示汉字的技术原理与实现[J].测绘通报,2012(12):87 -89,97.
[12]徐硕,段洪杰,刘琼仙.应用GMT软件绘制云南省强震动台站分布图研究[J].地震研究,2009,32(4):415 -419.
[13]徐绍铨,张华海,杨志强,等.GPS测量原理及应用[M].武汉:武汉大学出版社,2003.