【发布时间】:2011-10-26 18:32:17
【问题描述】:
我想使用 .kml 轨迹文件来制作一组 x、y 坐标以在 R 中使用。
我现在拥有的是一个 GoogleEarth 轨道,我相信它是一个 LineString。我听说rgdal package 通常是人们使用的,但它不适用于 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并使用read.csv导入r;
2.使用maptools包中的getKMLcoordinates导入坐标。
(1) 的问题是,当我尝试将 .kml 坐标转换为 csv 时,转换器程序 (kmlcsv) 中出现错误,提示它无法读取文件(我不知道为什么- 错误日志不可用)。
当我尝试 (2) 时,我得到的坐标排列很奇怪。spa<-getKMLcoordinates("Perimeter_Track.kml", ignoreAltitude=TRUE) 返回:
summary(spa)
Length Class Mode[1,] 128 -none- 数字
[2,] 242 -none- 数字
[3,] 34 -none- 数字
[4,] 126 -none- 数字
我相信这是因为 .kml 文件实际上是四个单独的轨道,由小间隙隔开(即,他们关闭 GPS 很短时间,然后重新开始)。我是否需要单独导入这些才能获得整个形状?如果是这样,我该怎么做?
最终,我希望在 x x y km 的网格上获得此形状,其中坐标以 km 为单位,而不是 GPS 坐标。如果有人对如何做到这一点有任何见解,我很乐意听取您的意见!
提前非常感谢。
【问题讨论】:
-
请注意:尝试
str(spa)以获取有关此内容的信息。看起来它是 4 个向量的列表。在这种情况下,lapply(spa, summary)应该会给你一个合理的总结。您可以使用plyr包走得更远:ldply(spa, summary)将生成一个漂亮的小数据框。如果它是一个列表,那么它可能是由你、Spacedman 和 John 比我更了解的元素组成的......