QGISを使用して複数の行から「平均」行を作成する


12

さまざまなGPS精度で同様のパス(この場合は山道)を表す複数のラインフィーチャ(マルチポイントにもあります...)があり、多くのラインが互いに近接していますが、完全には重なりません。

このプロジェクトの目的のために、私はそれらすべてから「平均」線を計算し、トレイルの最も可能性の高い位置の結果の線を生成する方法を探しています。

QGISまたは他のツールを使用して、どのように進めますか(OGRについて考えました...)?

ここに画像の説明を入力してください


見てみましょう平均曲 R.を使用する方法を説明するのOpenStreetMapのwiki、上を
ジェイク

2
「混同」に類似して、このサイト上でこの音はそれについていくつかのスレッドが存在しています:gis.stackexchange.com/search?q=conflationはあなたが近づいそこに着く質問と回答のいずれかを実行しますか?
SaultDon

今日は「混同」を見ていきますが、これまでのところ、先ほど提案した「平均的なトラック」がそのトリックをしているようです。QGISを介して直接実行できるかどうかを確認するためにもう少し探していますが、両方の答えは素晴らしいです、ありがとう!
堀善14年

:あなたはこのスレッドとそのリンクに見えるかもしれませんgis.stackexchange.com/questions/70623/...
ジョンズ

回答:


9

テストデータ:

  • QGIS 2.18.16、GRASS GIS 7
  • 4つのGPSトラック
  • 1x1kmのグリッド内

私。)

QGISプラグインLocate Points Along Lineshttps://plugins.qgis.org/plugins/LocatePoints/)を使用して、GPSトラックに沿ってポイントを作成します。例では5mの間隔を使用しました。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

II。)

作成Concave HullProcessing > Toolbox > QGIS geoalgorithms >Vector geometry tools > Concave hull0.1私の例ではのしきい値を使用しました。しきい値が低すぎる場合、出力ポリゴン内に穴がある可能性があります。

ここに画像の説明を入力してください

III。)

これで、スケルトンアルゴリズムを使用して「平均」ラインを計算できます。でスケルトンを検索しProcessing Toolboxます。のv.voronoi.skeletonツールを使用しますGRASS GIS 7 commands

ここに画像の説明を入力してください


7

ヒートマップアプローチ:

アプローチは、処理ステップの計算時間のため、より時間がかかります。より一般的な解決策に近づくためのアイデアと見ることもできます。

テストデータ:

  • QGIS 2.18.16、GRASS GIS 7
  • 4つのGPSトラック
  • 1x1kmのグリッド内

私。)

QGISプラグインを使用してGPSのトラックに沿ってポイントを作成しますが線に沿ってポイント(探してhttps://plugins.qgis.org/plugins/LocatePoints/)を。ヒートマップアプローチでは、2mの間隔を使用しました。

II。)

QGISヒートマッププラグインを使用してヒートマップを作成します。半径40mを使用しました。出力ラスターに穴がなくなるまで半径を増やします。異なる半径値でこれを試してください。

ここに画像の説明を入力してください

III。)

編集済み正確なヒートマップラスター値を保持する必要はありません。

次に、ほとんどのポイントが集中している「白い」領域にラスターを細くしたいと思います。そのため、出力ラスターを再計算します。出力ラスターの最小/最大値は0および 89.7935です。上記の値のみを使用します44。そのため、「経験則」を使用しました。最大値を切り捨てて、2で割ります。この値をもう一度切り捨てます。89/2 = 44,5-> 44。OSGeo4W Shell:を使用しましたgdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif

ここに画像の説明を入力してください

IV。)

編集済み

a)再計算されたヒートマップを Raster > Conversion > Polygonize ...

b)ポリゴンを単純化しVector > Geometry Tools > Simplify geometriesます。の許容値を使用しました2。ポリゴンが単純になると、スケルトンの処理時間が短縮されます。

c)スケルトンの計算:Processing Toolboxでスケルトンを検索します。v.voronoi.skeletonGRASS GIS 7コマンドのツールを使用します。

ここに画像の説明を入力してください

結果の線は、最初の回答よりもトレイルの最も可能性の高い位置を表していることがわかります。特に北のベンドでは、平均線は3つのトラックに沿っており、これらのトラックはより近くにあります。東の曲がりについても同じです。

アプローチの利点:

  • QGISのみを使用した合理的な良好な結果

短所:

  • ビッグデータセットの処理時間
  • パラメーターを事前に試す必要があります(ヒートマップの半径、最小値/最大値)
  • 処理ステップを自動化するのは難しい
  • 狭い曲がり/曲線、および実際にラインから外れたトラックについてはテストされていません

誰かが処理手順を最適化できる場合は、大歓迎です!


+1。これは、「平均線」を見つけるための効果的なアプローチです。ただし、必ずしも正しい行の最良の推定値ではありません。なぜそうならないかを見るために、ほとんどのパスが非常に速く通過したが、いずれかの場所でエラーが平均化されるのに十分なほどゆっくりと通過したと想像してください。この単一のパスは真実の最も信頼できる表現を提供しますが、各パスをリサンプリングすることにより、この情報は失われ、多くの貧弱な表現で平均化されます。明らかにこれは極端なケースですが、実際にはいくつかのパスは他のパスよりも優れている場合があります。
whuber

わかります。ご回答ありがとうございます。QGISのヒートマッププラグインには、いくつかの高度なオプションが用意されていますuse weight from field。速度(トラバーススロー/クイック)またはその他の情報を何らかの方法でデータの重み付けに使用できますか?重みを使用して、ヒートマップを改善できます。
ステファン

はい、できますが、これらの手法はいずれも、データに(強い肯定的な)自己相関がある可能性があるという懸念に対処していません。それに対処するには、個々のパスの時系列分析のようなものが必要になります。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.