Rのgpxトラックを分析したいのですが、データをインポートするために、私はXML-packageを使用しようとしています。XMLライブラリを使用してgpxトラックをインポート
個々のデータベクトルをインポートしてデータフレームに結合する方法を説明したa tutorialが見つかりました。
しかし、いくつかのノードでは心拍数がないので、私の使用状況では機能しません。<gpxtpx:hr>
が収集されているため、ベクトルの長さが一致しません。
したがって、関連するすべてのデータを一度にインポートしようとしています。
私はこれまでやって管理することの代わりにルートノードの、私はデータフレームに<trkseg>
のコンテンツをインポートしたいのですが、今
library(XML)
filename <- "sample.gpx"
download.file("https://owncloud.yeara.net/index.php/s/Io4uOq6sfFuCCdq/download", filename) # downloads a sample file from my server
gpx.raw <- xmlTreeParse(filename, useInternalNodes = TRUE)
rootNode <- xmlRoot(gpx.raw)
print(rootNode) # output seems okay
です。それは次のように設計すべきである:各trkseg
行
trkpt lon
でなければなりません
- 、
trkpt lat
、<ele>
と<time>
は値<gpxtpx:hr>
がある場合、それはまたに入る必要があり、対応する列 - にする必要があります対応する列
これを達成するのを手伝ってもらえますか?
あなたはこの処理を行うため、これまであなたが持っているコードを表示することができますか?適切なノードを処理する関数を作成するだけで、 "hr"子が存在しないときのデフォルトを提供できますか? – steveb
私がこれまで使っていたコードは、私の質問でリンクされています:http://www.r-bloggers.com/stay-on-track-plotting-gps-tracks-with-r/または 'elevations < - as.numeric xpathSApply(gpx.raw、path = "// trkpt/ele"、xmlValue)) '(同様の)。しかし、これは常に列を1つずつインポートするため、これは非常にエレガントではありません。 gpxファイルの構造から、(少なくとも理論的には)すべての関連データを一度にインポートすることが可能です。これが不可能な場合は、欠落している 'hr'ノードを全て 'NA'に置き換える方法があるかもしれません。 – speendo
ネストされたxmlファイルを平坦化することは(imho)常に苦痛です。 ststを 'lst
lukeA