田舎のブロードバンドデータポイントのベクトルデータセット(どのくらい高速かなど)があり、同様の特性を持つポイントのクラスターがあるかどうかを調べ、それらを囲むポリゴンをプロットしたいと思います。
たとえば、1つのPostGISデータセットに45,000ポイントがあり、ランドスケープに分散している場合があります。互いにx km以内にあり、速度がy kbps未満であるクラスターを識別し、適格なクラスターごとに凸包を生成します。
たとえば、QGISでこれを行う簡単な方法はありますか?
田舎のブロードバンドデータポイントのベクトルデータセット(どのくらい高速かなど)があり、同様の特性を持つポイントのクラスターがあるかどうかを調べ、それらを囲むポリゴンをプロットしたいと思います。
たとえば、1つのPostGISデータセットに45,000ポイントがあり、ランドスケープに分散している場合があります。互いにx km以内にあり、速度がy kbps未満であるクラスターを識別し、適格なクラスターごとに凸包を生成します。
たとえば、QGISでこれを行う簡単な方法はありますか?
回答:
私はいくつかの提案からのビットを結合し、私自身のビットを追加し、私にとってうまく機能するソリューションを見つけました-そしてすべてはQGis内から!
最初にPostGis SELECTを実行して、正しい共通属性を持ち、互いにx km以内にあるポイントを見つけました。
SELECT DISTINCT s1.postcode、s1.the_geom、s1.gid FROM Broadband_data AS s1 JOIN Broadband_data AS s2 ON ST_DWithin(s1.the_geom、s2.the_geom、1000)WHERE s1.postcode!= s2.postcode AND s1.fastest_broadband <= 2000
(Manningの非常に優れたPostGis in Actionブックからかなりまっすぐに、自己結合を追加するだけです)
次に、Carson FarmerのManageRプラグインをロードし、レイヤーをインポートしました。ここから私が提案PAMクラスタリング処理に続いここでは、と凸包はfToolsを使用して秒単位で計算された上で形状ファイルに結果をエクスポート(カーソンは、周りを取得しません!)。
QGISソリューションではありませんが、私は個人的にSaTScanを使用した探索的分析を選択します。高速で、十分に文書化されており、広く適用されているため、起動時に問題が発生することはありません。ただし、45kポイントにはいくらかのRAMが必要になる場合があります。
Postgresから直接読み取ることができるかどうかはわかりませんが、dbfおよびテキストファイルから簡単にインポートできます。
分析の出力は、PostgresまたはQGISに簡単に読み戻すことができます。円形のクラスターまたは楕円を検索することを決定できます(データに特定のタイプの集落がある場合、たとえば、谷間の長い形状の都市/村などに使用すると便利です)。その後、ポリゴンまたは楕円を生成したり、クラスターのメンバーである場所のみを表示したりできます。
Google Earthで結果をすばやくプレビューするには、NAACCRのSaTScanからGoogle Earthへの変換ツールを使用することもできます。
重要なこと-モンテカルロシミュレーション(最低99、私が思う)を実行することを決定した場合、クラスターの統計的有意性についても何かを伝えることができます。このクラスターの解釈と正当化は、少なくとも過去20年にわたって空間科学で議論されてきたため、別の問題になります(私は思う;)。
高い値、低い値、または高い値と低い値のクラスターを探して、純粋に空間分析を実行することもできます。データに一時的な属性がある場合(毎日、毎週の集計)、いくつかの時空モデルを実行することは非常に興味深いと思います。
SciPyにはクラスタリングパッケージ(Python用)があり、Pythonコンソールで使用したり、簡単なプラグインを作成してそれを実行したり、postgis内でPL / pythonを使用したりできます。
http://docs.scipy.org/doc/scipy/reference/cluster.html
解析後、fツールを使用して凸包を作成します。
Ftoolsプラグインを試すことができます。 Vector
> Geoprocessing Tools
> Convex Hulls
。
にはオプションがCreate convex hulls based on input field
あり、入力フィールドパラメータは入力ポイントの属性から取得する必要があります。