我想使用 .kml 轨迹文件来制作一组 x、y 坐标以在 R 中使用。
我现在拥有的是 GoogleEarth 轨道,我相信它是一个 LineString。我听说rgdal包 http://cran.r-project.org/web/packages/rgdal/index.html通常是人们使用的,但它不适用于 Mac 版本的 R。如果可能的话,我想在 Mac 上执行此操作,并在其中进行其余的分析。如果有必要,我可以在 Windows 上的 R64 上进行转换,然后将坐标带到我的 Mac,但这似乎......笨重。
.kml 代码的开头如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>Perimeter_Track.kml</name>
<Placemark>
<name>ACTIVE LOG</name>
<LineString>
<coordinates>
-157.80736808,21.4323436,20.324951171875
我想将其转换为距地图上某个点的 x , y 坐标(以公里为单位)。成品将是水体的线条轮廓,其上覆盖有物种丰度数据。
我已经尝试过几种方法:
1. 将 .kml 文件转换为 .csv 并将其导入到 r 使用read.csv
;
2. 使用导入坐标getKMLcoordinates
in the maptools
包裹。
(1) 的问题是,当我尝试将 .kml 坐标转换为 csv 时,转换器程序 (kmlcsv) 中出现错误,表示无法读取文件(我不确定为什么 - 错误日志不可用)。
当我尝试(2)时,我得到的坐标排列得很奇怪。
spa<-getKMLcoordinates("Perimeter_Track.kml", ignoreAltitude=TRUE)
summary(spa)
返回:
Length Class Mode
[1,] 128 -非数字
[2,] 242 -非数字
[3,] 34 -非数字
[4,] 126 -非数字
我相信这是因为 .kml 文件实际上是四个独立的轨道,由小间隙隔开(即,他们将 GPS 关闭了一小段时间,然后再次启动)。我是否需要单独导入这些才能获得整个形状?如果是这样,我该怎么做?
我最终希望在 x x y km 的网格上获得这个形状,其中坐标以 km 为单位,而不是 GPS 坐标。如果有人对如何做到这一点有任何见解,我很乐意听取您的意见!
首先十分感谢。