航空野生生物調査では、通常、数十のGPXファイルを生成し、通常、それらのほとんどをGISアプリケーションで表示するためのシェープファイルに変換します。GPXファイルは、GPSデータのすべて(またはほぼすべて)を1か所に保管する素晴らしい方法です。これらは、トラックログ、ウェイポイント、ルート情報を1つの便利な形式で保存するxmlファイルです。それらは複数のトラックを保存し、Garminから保存された古いトラックも保存します。
同じ追跡からのポイント観測データを持つ他のテーブルと並行して、このすべての追跡データを空間データベースに保存したいと思います。
ogr2ogrを使用すると、トラックを空間データベースに変換できます。
ogr2ogr -append -f "SQLite" -dsco SPATIALITE=yes # add to table with Spatialite filetype
-dsco INIT_WITH_EPSG=yes -t_srs epsg:4326 # using WGS84
SURVEYDATA.sqlite GPXFILE.gpx tracks -nln tracktable; # adding tracks to 'tracktable'
ただし、これにより、保存された各トラックが線としてインポートされ、各トラックポイントの時間/位置情報が失われます。
その情報を保存するトラックログデータベースを構築する賢い方法を知っている人はいますか?
編集:
トラックログは単なる線ではなく、それぞれが標高と時間の属性を持つ連続したポイントのコレクションです。各ポイントは、特定のトラックに属するトラックセグメントに属し、各トラックセグメント内のポイントは中断することなく取得され、リンクされていると見なされます。例えば:
<trk><name>ACTIVE LOG</name>
<trkseg>
<trkpt lat="-13.471403" lon="31.382982"><ele>467.818725585938</ele><time>2009-09-09T03:53:38Z</time></trkpt>
<trkpt lat="-13.471403" lon="31.382982"><ele>468.780029296875</ele><time>2009-09-09T03:53:50Z</time></trkpt>
<trkpt lat="-13.471403" lon="31.382982"><ele>465.896118164063</ele><time>2009-09-09T03:54:43Z</time></trkpt>
</trkseg>
したがって、トラックログを保存するには、このポイントのコレクションを関連データとともに保存する必要があります。
1つの解決策は、これらのトラックをポイントとしてロードし、トラック名、セグメント、標高、および時間の列を追加することです。ただし、ogrはトラックをポイントとして変換するとは思わない。
解決
指摘誰@scrussのおかげgpx2spatialite私は(OS X 10.9)をインストールし、sudo easy_install gpx2spatialite
。このツールセットは、「drawinglife」プロジェクト用に設計されています(したがって、ほとんどの人にとっておそらく不要な「都市」情報があります)。メインのgpx2spatialiteページではあまり説明されていませんが、drawinglife wikiの方が優れています。それでも、多くの文書化されていない機能-重複の削除など!
トラックセグメント、トラック、トラックポイント、およびウェイポイントを保持するGPXファイル用の空間データベースを作成します。また、さまざまなトラックにラベルを付けるように設計された「ユーザー」が設定されています(sqliteはユーザーアクセスシステムではないが、描画生活のためのものであるため、奇妙に思えます):
gpx2spatialite create_db MyGPXArchive.db
すべてのサブフォルダーを含むGPXファイルのフォルダー全体を読み込み、途中で重複を確認して削除します。
gpx2spatialite -s -d MyGPXArchive.db -u SL25 Selous2013/
オプション:
-s
=トラックポイントが都市データベースにあるかどうかをチェックしません(LOTを高速化します)-d MyGPXArchive.db
=使用するデータベース。-u SL25
=ユーザーSL25を追加します(収集した一連のトラックに使用したラベルのみ)。Selous2013
=興味のあるトラックがあるフォルダー(サブフォルダーを含む)。
バグ:
タイムスタンプ情報を破棄する古いGarminにトラックを保存した場合、インポートがクラッシュします(GPSUなどのユーティリティを使用して、保存したトラックを削除します)。gpsbabelがある場合は、最初に次のようなファイルでファイルをフィルタリングします。
gpsbabel -w -r -t -i gpx -f [INPUT.gpx] -x track、start = 20000101 -o gpx -F [OUTPUT.gpx]