ラスターを使用せずに複数のポイントに関連するアクセス不能の極を見つける


9

スコットランドの町や村を代表する一連のポイントから「アクセスできないポイント」を見つけたい。FOSS GISツールの使用(QGIS、SAGA、GRASS、Postgres / PostGIS ...)。

これは、人口の中心から最も離れたポイントです。これは、町を含まない最大の円の中心になりますが、端に町があります。

機能するラスターアプローチがあります-GDAL 近接フィルターです。

これを行うためのVECTORベースの方法はありますか?ラスタライズを必要としないものですか?

これがラスターの私の試みです...

  • メートル単位の適切なプロジェクションのポイントレイヤーから始めます(OSGB、27700を使用しています)。
  • 「1」というフィールドを追加し、定数値1の整数に設定します。
  • ベクトルをラスターに、編集コマンド-a 1を使用し、ピクセルではなくGEO を使用します。ピクセルが正方形であることを確認してください!
  • 近接ラスター(この場合、幅1 km)に等高線を作成します

これは次のようになります。私はいくつかの候補点を手書きしました;-)

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

マルチリングバッファープラグインを使用して)繰り返しバッファーをディゾルブするとうまくいくと思いましたが、これを機能させるのに十分なメモリがないと思います。

回答:


7

3点以下しか触れないのは、最大半径の三角形のエクセルクルの中心だと思います。下の写真では、最初の11個の中心が示されています。それらは、ランキング番号によってラベル付けされています。

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

三角形の外側にあるものを取り除き、チャンピオン、つまり画像のNo3を定義するだけで十分です。

スティーブン・ファインディングにインスパイアされたアップデート:

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

上記の結果は、スクリプトなしで(ただし、高度なライセンスを使用して)ArcGISで取得した最初のソリューションとは異なり、機能します!ただし、調査範囲の端に問題のある結果が生じる可能性があります。


1
うわー、これを共有してくれてありがとう!(1)ドロネーへのポイント(Vector | Delaunay Triangulation)、(2)チャンピオン三角形を選択し($areaドロネーポリゴンの属性テーブルで計算)、QGISでワークフローを追跡し、最大のものを新しいレイヤーとして保存しました(3)外心を検索(Processing | GRASS | Vector | v.voronoi.skeletonオンチャンピオンの三角形)。この方法は正しいと思いますか?
Kazuhito

最初のステップは正しいです。すべての三角形の半径中心を計算しました。中心を見つけるために、3つの側面すべての中点に対して内向きの垂線を作成し、交点を見つけます(組み合わせ3、2)。
FelixIP 2017年

エクセルクルではなく、三角形の外接円。
FelixIP 2017年

本当にありがとう!(そして素敵な写真にも感謝します。それについて背景を身に付けるほど、それは魅力的になります。)
Kazuhito

1
いい観測だ!テストして答えを更新します。最初のソリューションとは異なり、少なくともArcgisではスクリプトは必要ありません。
FelixIP 2017年

5

これがフォローアップです。私を正しい方向に向けてくれて@FelixIPに感謝します!

オーストラリアのOSMデータを使用して、オーストラリア本土の「アクセスできない場所」を見つけることができました。POINT(137.234888 -24.966466)で、アカルネネヘ、ベドリー、デア山から約260 km離れたところにあります。

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

ラスターアプローチとベクターアプローチの組み合わせを使用するQGISでかなり簡単なワークフローを見つけました。同様のアプローチが他のGISでも機能すると確信しています。

「a-ha」の瞬間はこれに気づいたことから来ました

すべての最大値は、ボロノイメッシュ上の3点、つまりボロノイポリゴンの隣接するトリプレットが交わる点にあります。

アプローチは次のとおりでした:-

  • メートルベースの投影で作業します。私は3857を使用しましたが、理想的ではありませんが、私のOSMデータはその形式でした:)
  • ( 'city'、 'village'、 'town'、 'hamlet')の興味のある場所を表すレイヤーを取得する
  • このレイヤーからボロノイメッシュを作成します
  • 抽出ノードを使用して三点を取得する
  • 近接ラスターを作成します(質問に示されているように)
  • ラスターを風景の輪郭にクリップして、海のピクセルを0に設定します。
  • 抽出されたノードでラスターに対してポイントサンプリングツールを使用する

次に、DBマネージャー仮想レイヤーを使用して、ラスター上の距離値が最大のノードを見つけます。

select 
    rowid,
    name,
    proximity2,
    st_astext(st_transform(geometry,4326)) as pt, 
    st_buffer(geometry, proximity2) as geometry
from 
    "samples" 
order by 
    proximity2 desc 
limit 1;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.