本サイト/記事は移転しました。

約10秒後にリダイレクトします。

eTrex30のログファイルをeTrex Vista形式に

 eTrex Vistaでは日付8桁形式のファイル名で日毎にファイルが作成されていた。たとえば20130105.gpxとか。eTrex30ではCurrent.gpx一つに追記していく形式のようで、そのままでは整理が面倒。
 ということで、phpとgpsbabelで日毎に切り出すようにしてみた。

<?php
$gpxfile=urldecode($argv[1]);

$gpx=file_get_contents($gpxfile);
preg_match_all("/<\/ele><time>(.*)<\/time>/U",$gpx,$times);
$dates = array();
foreach($times[1] as $time){
	array_push($dates,date("Ymd",strtotime($time)));
}
$dates=array_unique($dates);

foreach($dates as $date){
	$cmd = "gpsbabel -t -i gpx -f " . $gpxfile . " -x track,start=" . $date 
	. "000001,stop=" . $date . "235959 -o gpx,garminextensions -F " . $date . ".gpx";
	echo "$cmd\n";
	exec($cmd);
}
?>

 自分専用なのでエラー処理などは省略。タイムゾーン関連は未検証。

 Current.gpxが時々変になってテキストエディタで開けなくなるけど、これはもしかしたらOSの排他制御の影響かもしれない。