ポイントを介してラインレイヤー(道路ネットワーク)をトレースする方法


8

道路ネットワーク(紫)、ポイントファイル(緑)、始点(黄色)があります。

道路網に基づいてポイントファイルを追跡したい。ポイントを電柱のように考えますが、私が欲しいのは電話回線を示すマップ(ラインシェープファイル)です。「電柱」には番号付けのスキームがありますが、これは素晴らしいものではありません。この場合は、番号が付けられていないと思います。

誰かが解決策を持っていますか?見栄えが良いのは、ポイントをバッファリングしてから、バッファから道路ネットワークを切り取ることです。しかし、私はもっと完全なものを求めています。「電柱」が12,000あるため、自動化する必要があります。

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


1
あなたが求める解決策は、たとえば、どの地点にも十分に近い道路フィーチャを単に選択することとどのように異なりますか?「より完全」とはどういう意味ですか?
whuber

道路セグメントは、ポイントを1000フィートを超えて伸びている場合があります。バッファから切り取ったときにネットワークが不安定だったので、completeを使用しました。私が言うべきだったのはもっと正確だった。
サド

1
あなたは正しい、あなたはバッファからクリップしたくない!ポールが配置されている可能性のある道路セグメントを撤回して、それらのセグメントがポールの走路を超えて伸びすぎないようにしたいようです。しかし、長いランに沿ったギャップを2つの異なるランからどのように区別しますか?この基準を提供できますか?
whuber

まあギャップは問題になるとは思わない。黒い線は、そのエリアの内部にあるミニサービスエリアを表しています。理由は、単に視覚化するだけでなく、計画のためであり、ポイントファイル(直径など)内に格納できる(使用可能な)よりも多くの情報をラインファイル内に追加する可能性があります。
サド

回答:


9

これに対処するには多くの方法がありますが、いくつかは一般的で効果的であることで際立っています。これを理解するために、対処しなければならない可能性のあるいくつかの問題を列挙してみましょう。

  • 極間に大きなギャップがある可能性があります。アルゴリズムは、ギャップを伝送システムの実際の中断と見なす場合があります。

  • 道路をネットワークに接続するために重要ないくつかの短い道路セグメントがある可能性がありますが、それらの近くには極がありません。これらのセグメントは、極に近接して選択されることはありませんが、ソリューションの必要な部分です。

  • 中心点から道路でアクセスできない極があるかもしれません。これらの極は、他の中心点から発信された他の伝送ネットワークの一部である可能性があります。

また、すでにポリラインネットワーク(道路)があるため、極点を完全に新しいポリラインに接続するよりも、それを活用するほうが有利であるというスタンスを採用しています。

これらの考慮事項は、優れたソリューションの構成要素にいくつかの重要なステップが含まれることを示唆してます。

  1. 中心点からすべての極までの道路距離を計算します。

  2. 特定の道路セグメントに沿って局所的に最大の距離を持つ極を特定します。つまり、同じセグメントに沿って隣接する極のいずれも、より大きな距離を持ちません。

  3. これらの極大点から中心点に戻る最短経路を形成します。

これらの最短経路の結合は、伝送ネットワークをたどります。(実際、ステップ2は本当に必要ではありませんが、ステップ3に含まれる計算を大幅に削減します。)

手順1と3は、ネットワーク表現(Network Analyst)またはラスター表現(Spatial Analyst、CostDistanceまたはFlowAccumulation計算を使用)を使用して実行できます。ステップ2は単純なデータベースの要約です。ステップ1の後、各極は属性として道路セグメントと距離を持ちます。道路セグメントごとに最大距離を見つけ、それらの最大距離に到達する極を選択します。

いくつかの潜在的な問題状況があります。

  1. 一部の極は道路に近くない場合があります。これらについて何をすべきかを私たちに伝える問題文には何もありません。これらはラスター計算で自動的に処理できます(適切なコストグリッドにより、道路以外のセルに高インピーダンスが割り当てられますが、インピーダンスは無限ではないため、孤立した極を最も近い道路に接続できますが、残念ながら互いに接続することはできません)。少なくとも、手順3でソリューションを取得した後、そのネットワーク上にないすべての極を選択し、それらをどのように処理するかを検討できます(おそらく、それらの接続を手動で作成するか、ユークリッド最小スパニングツリーソリューションを使用して)。

  2. 一部の道路セグメントがループを形成している場合は、ステップ2をスキップする必要があります。スキップしないと、それらのループの一部が失われる可能性があります。

  3. 道路ポリラインは、実際には接続されたネットワークを形成しない場合があります。視覚的に接続されているように見えるネットワークを分割する道路セグメント間に小さなギャップがある場合があります(サイズが数ミリの場合もあります)。これはデータ品質の問題であり、一部のラスターベースのソリューションを除いて、あらゆるソリューションを悩ませます。


ある時点で、FlowAccumulationについて触れました。これは人々を驚かせるかもしれません:この問題は小川や流域とどう関係しているのでしょうか?しばらく画像を見つめます。起点を景観の低点として、電柱のある道路をその低点に向かって流れる小川の跡として想像してください。私たちは道路が本当にいる表面作成することができる場合ですが小川の場合は、各極の位置に小さな「雨」を降らせて、下り坂を流れます。濡れるポイントは私たちが求める解決策です。それらは、道路をたどるネットワークに極を効率的に接続します。適切なCostDistance計算(道路に沿ったインピーダンスがゼロではなく、道路からのインピーダンスが非常に高いが無限ではない)は、まさにそのような表面を作成します。その表面を作成する別の方法は、道路のユークリッド距離グリッドからです。道路が平坦であることを除いて、それは完璧です。彼らは傾く必要があります。そのためには、道路沿いの距離の非常に小さい倍数をユークリッド距離グリッドに追加します。(道路距離はまだコストのかかるCostDistance計算を必要としますが、今回は道路セルに対してのみ実行する必要があります、すべてのグリッドセルではなく、桁違いにスピードアップします。これにより、必要に応じて非常に高解像度のグリッドを使用できるようになり、粗いグリッドで発生する可能性のある離散化エラーを回避できます。)


7

基本的にwhuberのアプローチに従って、私はこれを試します:

  1. (黄色)の始点で道路を分割します。
  2. 道路に3つのフィールド、FROMDIST、TODIST、PARENTROAD_IDを追加します。FROMDISTは、TODISTと同様に、ポリラインの始点ノードの始点からの距離を格納します。PARENTROAD_IDは、出発地に近い道路のROAD_IDを格納します。
  3. ビルド最小スパニングツリーは、道路区間からなる、次いで計算FROMDIST、TODISTそれに応じPARENTROAD_ID値。
  4. ポイントフィーチャクラスに3つのフィールドを追加します:ROAD_ID、DISTANCE、PARENTPOINT_ID。
  5. 各点に対して、最も近い道路検索機能を、次いでFROMDISTを介して計算されたポリラインに沿った距離と共にポリラインのTODISTに基づいて、距離値補間 ICurve.QueryPointandDistanceを
  6. 各ポイントについて、開始点に近い次のポイントのIDを表すPARENTPOINT_IDを計算します。
  7. 各ポイントについて、それ自体とPARENTPOINT_IDによって参照されるポイントとの間に線セグメントを作成します。このポリラインを出力フィーチャクラスに書き込みます。

3

ジオデータベースでジオメトリックネットワークを本当に探しているように思えます。

道路が「幹線」として機能するジオメトリックネットワークを作成し、道路からポイントまで垂直に走る「フィーダーライン」を追加した場合はどうなるでしょうか。次に、「フロー方向の設定と表示、分析設定の変更、分析へのフラグとバリアの追加、およびさまざまなトレースタスクの実行」ができるはずです(「Utility Network Analystツールバー」というセクションを参照してください)。ジオメトリックネットワークで実行できる他のタイプの分析の詳細については、「ジオメトリックネットワークのトレースについて」も参照してください。

これには少しの設定が必要ですが、ポイントをネットワークに接続する自動化プロセスを作成することにより、新しいポイントがネットワークに追加されたときに、かなり簡単に更新できます。

:「ジオメトリックネットワークは、ArcInfoおよびArcEditorで作成および編集できますが、ArcViewでは読み取り専用です」。(「既存の単純なフィーチャクラスからジオメトリックネットワークを構築する」より


1

スターターとして(完全なソリューションではありません)。
おそらく、あなたのarcgisのデータ形式、バージョン、ライセンスレベルを知る必要があります。

私が見ることのように道路網を利用することで、線形参照システム、および、正しい順序で「再番号」極
次に、いくつかのツールの1つを使用して(他の誰かの答えがそれをより明確に定義すると確信しています)、極からポリラインを作成できます。
これが線形参照の arcgis 10 チュートリアルです。


データ形式-シェープファイル?arcinfo 10があります。ネットワークアナリストもいますが、arc9.3(試用版)のみです。興味深いのは、線形参照について読みます。
サド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.