多くのポイントを空間的に分割するにはどうすればよいですか?


9

1億3千万件を超える顧客の位置データを全国に広めています。これはPostGISの空間テーブルです

次に、国全体を「サービスエリア」に分割し、各サービスエリアが次のようになるようにします。

  • 少なくとも30の顧客
  • 最大で1000平方kmです。

ArcGISのAggregateツールを調査しましたが、次の理由で私の基準を満たしていません。

  • 最小数は考慮されません
  • Qgis&Grassのみを自由に使用できます。

これを達成するためにどのツール/プロセスを使用できますか?

回答:


4

私は小さな実験をしました:

  • ランダムポイント900を生成
  • 最小全域木を使用してそれらを接続しました
  • 真ん中のどこかでシンクを選んだ

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

  • リンクを反転して方向グラフを形成しました。つまり、各ノードは最終的に同じシンクに放電します

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

  • 私が使用しているスクリプトを実行して、小さな集水域をより大きな集水域に集約し、平均「サイズ」を30にしようとしました。

結果:

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

これに関心がある場合は、スクリプトを掘り下げるか(既にこのサイトのどこかで公開されています)、ワークフローを詳細に説明できます。ArcGISを使用しました。

-------------------------------------

** 2017年9月更新

これは上記と非常に似ていますが、ArcGISのラスターアプローチ、距離ツール、水文学ツールを使用しています。トリッキーな部分は、最小全域木を作成し、ラスター形式で「集水域」の出口を見つけることです。

これらは私が従ったステップです:

  • ノードの三角形化(ポイントからクラスターへ)、三角形のネットワークエッジの抽出、ノードのWEIGHTラスターへの変換:

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

  • エッジテーブルのフィールドを計算する:(ShapeLength ^ 3 / 1e6)を使用します。ラスターに変換し、非常に高い値でギャップを埋めてCOSTラスターを作成します。これにより、互いに近接したポイント間のフローが促進されます。流路は、シンクに向かって直線に近づくのではなく、最小スパニングツリー(MST)に似ていることが望まれます。
  • ノード(OUTLET / SINK)を選択し、COSTサーフェスとSINKをソースとして使用して、コストバックリンクラスターを作成します。を使用して、バックリンクラスターを適切な流れ方向ラスターに変換しInt(Power(2,"backlink"-1))ます。流れの方向と重みラスターを使用して流れを累積します。コスト割り当てのトリックを見るとわかるように、MSTに似たものが実際に生成されます。

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

ポイントを50でグループ化することにしました。ネットワークのフラクタル構造を念頭に置いて、「高流量ストリーム」の開始時にわずかに低いINLETポイント、つまりCon( "FlowAccum"> 45,1)を設定しました。セルとして定義された入口

高流量が存在し、焦点統計= 2であり、セルがシンクではない(流量方向にデータ値がない)

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

注入口を流動点および流れ方向として使用して、集水域を定義します。画像は115の集水域を示しています。

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

彼らの統計:平均= 50.33、最小= 46、最大= 74。

集水域の2番目のセットを取得するには、既に定義されている集水域の下のWEIGHTラスターを消去し、フローの累積を計算するだけで十分です。

メソッドはラスターベースであるため数百万のポイントで機能し、その数のポイントの三角形分割も問題にはなりません。


1
これが私にとって便利かどうかはわかりませんが、地獄のように面白いようです。できればスクリプトを投稿してください。
Devdatta Tengshe 16

今日または月曜日の後半にスクリプトを投稿し、休みを取った。それまでの間、gis.stackexchange.com / questions / 179559 /…を参照してください。その背後にあるアイデアについて説明しました
FelixIP

私は100,000ポイントで一晩テストしました。最後のステップは6時間近くかかりました。少なくともArcGISでは、それは進まなくなりました。言うまでもなく、私は自分でMSTをコーディングする必要がありました。なぜなら、PattersonによるツールIがスタックしていたからです。
FelixIP 2016

なんとか解決しましたか?私がラスターアプローチを使用していたようですが、これが重要であればワークフローを投稿できます/
FelixIP

してください。私はBruteforceメソッドを使ってそれを解決しましたが、私の目的には十分でした。しかし、私は他の人があなたの新しいアプローチから利益を得ることができると確信しています。
Devdatta Tengshe 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.