ベクタ解析機能

「ベクタ」メニューから利用できる解析機能について

QGISのバージョン1.7では以前はfToolsというプラグインで用意されていた機能がディフォルトで「ベクタ」メニューとして用意されており、そこから解析、調査、空間演算、ジオメトリ、データマネージメントといったグループのツールにアクセスできます。それぞれ5つのツールグループには様々なツールが内包されており、合計38のベクタツールが提供されています。ここではそれらの一つ一つを取り上げ、そのツールの使い道と使い方について解説します。

vector1

 

解析ツール

解析ツールグループには、距離マトリックス、線長の合計、ポリゴン内の点、ユニーク値のリスト、基本統計、最小近傍計算、平均座標(群)、ラインの交差、というツールが用意されています。

vector2

 

距離マトリックス

距離マトリックスは、点データにおいてすべての点間の直線距離の組み合わせを求めるためのツールです。このツールは例えばひとつの点に着目して、その点に他の点が及ぼす影響を距離によって重み付けして計算するときなどに便利な機能で、遺伝子による個体群構造の解析などに使われます。

dist_matrix1dist_matrix2dist_matrix3

この例では単純に上左図のように5つの点があるとします。これら5つの点間の距離の組み合わせを距離マトリックスツールで計測します。まず距離マトリックスツールを選択するとウィザードが表示されるため、ポイントレイヤ、対象ポイントレイヤに同じ点レイヤーを、ユニークID、対象ユニークIDに同じIDフィールドを選択します。その上で「出力マトリックスタイプ」として「線形(N*k x 3)距離行列」を選択し、出力ファイル名を指定した後「OK」をクリックします。出力されたCSVファイルを開くとすべての点間組み合わせの距離が計算されていることが確認できます。また応用として、対象ポイントレイヤに他のレイヤを選択することで異なるレイヤー間の点間の距離も計算できます。「出力マトリックスタイプ」には、先の例で上げた「線形(N*k x 3)距離行列」の他に「標準(N x T)距離行列」、「距離統計行列(平均、標準偏差、最小、最大)」が用意されており「距離統計行列」ではさらにオプションとして最近傍の点数を指定した上で統計が取れるようになっています。以下は左から「標準(N x T)距離行列」、「距離統計行列(平均、標準偏差、最小、最大)」、「距離統計行列(平均、標準偏差、最小、最大)」+「最近傍2点群のみを扱う」の出力結果を示したものです。

dist_matrix4dist_matrix5dist_matrix6

線長の合計

ポリゴン内に含まれる線の総延長を求めて新しいポリゴンレイヤーとして出力します。例えば河川が線レイヤー、市町村境界がポリゴンレイヤーとして用意されている要な場合、各市町村ごとの河川の総延長をこのツールを使って計算することができます。

vector_length1vector_length2vector_length3

 

ポリゴン内の点

ポリゴン内に含まれる点の総数を計算し、新しいポリゴンレイヤーとして出力します。

vector_point_counts1vector_point_counts2vector_point_counts3

 

ユニーク値のリスト、基本統計、最小近傍分析

これら3つのツールは、1つのレイヤーについていろいろな情報を得るために利用することができます。特に新しいレイヤーを作るツールではないので、結果はクリップボードにコピー&ペーストするか、出力された結果を見るだけです。「ユニーク値のリスト」は、対象とするベクタレイヤの属性テーブルから一つのフィールド(列)を選んで、その中に含まれるユニークな値をリストしてくれます。例えば、列の中にどの様な植生タイプが含まれているかを調べたいときに便利です。「基本統計」は「ユニーク値のリスト」と同様に一着のフィールドを対象に、そのフィールドの平均値、標準偏差などの基本的な統計値を計算します。事前に対象とする地物を選択しておけば選ばれた地物だけの統計値を計算することができます。「最小近傍分析」は「点」に対して行われる分析で、点群がどの程度固まって分布しているのか定量的に計算するためのツールです。

vector_unique1

vector_stat1vector_nearest1

 

平均座標

このツールは、点、線、ポリゴンいずれかのレイヤーの地物の座標から平均した座標を求めるためのツールです。ユニークIDフィールドに属性テーブルに予め入力しておいた属性を指定することで、各グループ簿との平均座標を求めることも出来ます。また、各地物に対し重み付けをして、その上で平均座標を求めることができます。重み付けも、属性値に予め値を入力しておく必要があります。下の例で示したように、重み付けをした場合、単純な平均座標よりも大きい重み付けのされた線分3の方に平均座標がシフトしたことがわかると思います。この場合重み付けには線分のユニーク値を使って見ました。

vector_average1vector_average2

 

ラインの交差

このツールは、2つの異なる線レイヤー同士で線分が交差する位置に点を発生させるためのツールです。2つのレイヤーを指定する必要がありますが、同一のレイヤーを指定することもできるので、その際には同じレイヤーで交差する線分の交点に点が作られます。

vector_line_intersects1vector_line_intersects2

 

調査ツール

このグループには、野外調査でよく使われるランダム選択、グリッド格子またはその交点としての規則的な点群の発生、、、などが用意されています。

vector3

ランダム選択

複数ある地物の中からランダムに指定した数、または指定した割合の地物をランダムに選択します。選択するだけなので、新しいレイヤーやファイルは作られません。

vector_random1

サブセットのランダム選択

ランダム選択の一種ですが、サブセットを指定するための属性を指定できるため、複数あるグループの中からそれぞれ指定した数、または指定した割合の地物をランダムに選択することができます。たとえば、GPSで収集した調査地A内の1000点、調査地B内の500点のデータがある場合、それぞれの調査地からランダムに例えば25点ずつ選択するときなどに使います。

vector_random2

ランダム点群

指定したポリゴン内に指定した数の点をランダムに発生させるために利用します。非階層化サンプリング法では、たとえ複数のポリゴンが存在したとしてもそれらすべてを一括して取り扱いランダムな点を発生します。階層化サンプリング法では、それぞれのポリゴン毎に指定した数、密度、または指定したフィールドの値を利用してそれぞれのポリゴン内にランダムに点を発生させます。調査地を示すポリゴン内に、調査プロットを指定した数だけ配置するときなどに使えます。

vector_random3

規則的な点群

このツールは指定した範囲内に規則的な点群を発生させます。指定範囲としては既存の点、線、ポリゴンレイヤーまたはユーザーが指定する座標値が利用できます。点の発生の仕方にはグリッドの間隔を指定して規則的に発生させる方法、利用ポイント数を指定する方法があります。ポイント間の間隔をランダムにしたり、点が始まる位置をオフセットしたりすることができます。

vector_regular1vector_regular2

ベクタグリッド

vector_grid1vector_grid2

場所による選択

2つのレイヤー間の位置関係を使って地物を選択するためのツールです。「交差」する地物の選択だけができるので、「内包される」や「地物の重心が含まれる」などの機能はありません。オプションとして、現在選択されている地物を使った選択や、選択される地物の追加、削除などが用意されています。

spatial_selection1

レイヤ領域のポリゴン

いわゆるバウンディングボックスと呼ばれる対象レイヤの地物をすべて含むような長方形を発生させるツールです。点、線、ポリゴンのいずれにも用いることができます。下の例では点レイヤーから全ての点が含まれる領域ポリゴンを発生させました。

bbox1bbox2

 

空間演算ツール

このグルーブには1つまたは2レイヤ間のジオメトリ演算を行うツールが揃っています。特にバッファ、交差、融合などはGISの分析に頻繁に使われるツールです。

vector4

凸包

地物を構成する結節点の際外郭を結ぶポリゴンを発生させるツールです。バウンディングボックスと異なり、すべての地物が含まれる最小の凸型多角形が作られます。フィールドにグループ番号などを入力しておくと、グループ毎の凸型多角形が作られます。ジオメトリとしては、点、線、ポリゴンいずれも指定できます。

vector_mcp1
vector_mcp2

バッファ

地物に指定した距離でバッファを発生させます。

vector_buffer1

vector_buffer2

vector_buffer3

 

交差、統合、対称差分、クリップ、差分

これらはいずれも2つのレイヤーを対象に行うジオメトリーの演算です。「交差」は、2つのレイヤの重なる部分のジオメトリーと属性値を新しいレイヤーとして作成します。「統合」は2つのレイヤーのジオメトリーを合わせたものがひとつのレイヤーに統合されます。「対称差分」はレイヤーの双方から見た差分が新しいレイヤーと属性テーブルになります。「クリップ」は最初のレイヤーから次のレイヤーと重なる部分を切り取ったジオメトリーがレイヤーとして作成されます。「差分」は最初のレイヤーのうち、次のレイヤーとの「差」となるものが新しいレイヤーとして作成されます。

vector_intersection1

vector_geoprocess1

2つのレイヤー

vector_geoprocess2

交差

vector_geoprocess3

統合

vector_geoprocess4

対称差分

vector_geoprocess5

クリップ

vector_geoprocess8

差分

 

交差とクリップの違い

上の例では、交差とクリップは見た目には変わりません。しかし、それぞれ作成されたレイヤーの属性テーブルを見ると、「交差」では指定した双方のレイヤーから属性値が持ち込まれているのに対し、「クリップ」では、クリップされるレイヤーの属性値だけが新しいレイヤーに持ち込まれます。結果から考えると、重なる部分で2つのレイヤーの属性値が両方とも必要な場合は「交差」を、切り取る対象とするレイヤーの属性値だけが必要ならば「クリップ」を使えばいいということになります。

 

差分と対称差分の違い

差分ツールには、通常の差分と対称差分が用意されています。これらの違いは直感的にわかりにくいので、以下の図を見ながら説明します。まず一番左の図は、円形の地物「1」と「2」がそれぞれのレイヤーとして表示されています。この2つのレイヤーの「差分」を取るにあたり、「ベクターレイヤーの入力」にレイヤー1を、「レイヤの差分」にレイヤー2を指定すると中央の図が得られます。つまり、レイヤー1におけるレイヤー2の差分が求められたわけです。これに対し、「対称差分」ではレイヤー1とレイヤー2双方にとって差分となるジオメトリ、言い換えると、通常の「差分」をレイヤー1とレイヤー2の相互の差分を求めその合計を求めたものが対称差分となります。

vector_diff1

レイヤー1と2

vector_diff2

差分

(1の2に対する差分)

vector_diff3

対称差分

 

融合

このツールでは指定したレイヤーの重なりあう地物同士をひとつの地物として融合します。融合に際し、属性値を指定できるので予めグループ番号などを入力しておくとグループごとの融合が行えます。「融合フィールド」ドロップダウンリストには、「すべてを融合する」というオプションがデフォルトで用意されているので、すべての地物を融合することも出来ます。

vector_dissolve

vector_dissolve2

ポリゴンのID番号を「融合フィールド」

として指定

 

vector_dissolve3

ポリゴンID毎に地物が融合される

ジオメトリーツール

このグループには、ジオメトリのエラーチェックやジオメトリーの変換に関する様々なツールが用意されています。

vector_geometrytools1

 

ジオメトリの整合性をチェック

このツールは、ジオメトリーにエラーがあるかどうかをチェックします。代表的なポリゴンのジオメトリーエラーとしては自己交差と呼ばれるエラーで、下図のようポリゴンを構成する線分が自身のポリゴンを横切ってしまうような例です。特にエラーが発生している座標が表示されるので何が問題なのか探して、自分の目で見ることができます。

geometry_check1geometry_check2

geometry_check3

 

ジオメトリカラムの出力/追加

このツールは、選択したレイヤーのジオメトリー属性、つまり、点ならxy座標、線なら線分の長さ、ポリゴンならポリゴン外周長と面積を属性値として持つレイヤーを新しく作ります。

geometry_column1

 

ポリゴンの重心

いわゆるセントロイド、重心点を作成するツールです。ポリゴンの形によっては必ずしもポリゴン内部にセントロイドが計算されないことに気をつけてください。

centroid1 centroid2

 

ドロネー三角形分割

複数の点が含まれるレイヤーで、最小の3角形になるよう最小凸型多角形を分割したポリゴンを作成します。

triangle1 triangle2

 

ボロノイポリゴン

点レイヤーからボロノイポリゴンを作成するツールです。点群から各点の縄張りを求めるようなものと考えると考えやすいかもしれません。バッファーを設定すれば与えられた点から規定される最小の立方体よりもより大きな範囲でボロノイポリゴンを発生させることができます。

Voronoi1 Voronoi2

 

ジオメトリを簡素化する

複雑なジオメトリーを簡素化するために使います。地物同士の関係が必ずしも保存されるわけではないので、下の例のように場合によっては元はつながっていた線分が切れてしまうようなことも起こります。ジオメトリーが複雑な場合、様々な計算に時間がかかるため、ジオメトリーを簡素化して分析を行うことが有効な場合があります。

simplify1 simplify2 simplify3

 

マルチパートをシングルパートにする

このツールは、1つのジオメトリーに複数のジオメトリーが格納されているような場合(マルチジオメトリー)、それらを個別のジオメトリーに変換するためのツールです。GISに少し慣れた方は、エクスプロード(爆発させる)と呼ぶこともあります。次に示す「シングルパートをマルチパートにする」ツールのちょうど反対の機能を提供します。以下の例では、見た目のポリゴンは変わりませんが、その属性テーブルを見ると、1つのジオメトリーが2つに別れたことが示されています。

multi2single1

single2multi3

元データ

single2multi2

処理後

single2multi5 single2multi4

元データの属性テーブル                               処理後の属性テーブル

 

シングルパートをマルチパートにする

このツールは、複数の独立したジオメトリーを、属性テーブルのあるフィールドの値(ユニークIDフィールド)を使って一つのジオメトリーにまとめるかまたはすべてをジオメトリーをひとつにまとめるためのものです。GISを使い始めたばかりの方には、なんのことだかわかりにくいと思いますが、これは例えば、実際の例としては、飛び地を考えるとわかりやすいと思います。飛び地は、例えばA市の一部がB市の中に孤立してある場合ですが、飛び地を含めA市をひとつのジオメトリーとして取り扱いたいときにはこのツールが使えます。この場合、市の名前をユニークIDフィールドに指定すれば、飛び地を含めA市が一つのジオメトリになります。以下の例では、見た目のポリゴンは変わりませんが、その属性テーブルを見ると、2つのジオメトリーが1つになったことが示されています。「シングルパートをマルチパートへ」という名前が少し混乱を招くかもしれませんが注意してください。また、この機能はジオメトリーのデータの格納の仕方が例えば「シングルポリゴン」から「マルチポリゴン」に変化するだけなので、たとえ統合するポリゴンが隣接していても、ポリゴンとしては融合されません。

single2multi1

single2multi2

元データ

single2multi3

処理後

single2multi4 single2multi5

元データの属性テーブル                              処理後の属性テーブル

 

ポリゴンをラインにする

このツールは名前が示すとおり、ポリゴンをラインに変換するために使われます。

makeitline1makeitline3makeitline2

 

ラインをポリゴンにする

このツールは、「ポリゴンをラインにする」のちょうど逆の機能を提供します。ただし、どの様な線データでも思ったようなポリゴンにできるわけではなく、始点と終点が繋がるようにポリゴンが作成されるので、場合によっては下の例の処理後2のように思わぬ結果を生みます。

polygonize1

makeitline2

処理前1

makeitline3

処理後1

simplify2

処理前2

polygonize2

処理後2

 

ノードを展開する

ノードとは、線やポリゴンを構成する始点、線分の結節点、終点などの点のことです。これらの点を線やポリゴンから取り出すためのツールがこれです。下の例では線からノードをとり出しています。一番右の図では元の線データと取り出したポイントデータが重ね合わされています。

node1

simplify2

node2

 

データマネージメントツール

このグループには投影法の定義やレイヤ、属性、ファイルの結合に関するツールが揃っています。

vector6

 

現在の投影法を定義する

投影法が定義されていないレイヤーに、投影法の定義を加えます。投影法が正しく設定されていないと表示や投影系の変換などがうまくできないので、このツールを使って定義を加えます。投影法が定義されていないベクタレイヤーを選択すると、「空間参照システムの入力」の表示が空のままになります。定義したい空間参照系は予め定義されているものを選択するか、すでにある他のレイヤーからインポートするか、2つの方法が用意されています。

define_projection1

 

場所で属性を結合する

2つのレイヤー間の位置関係に基づき、交差する地物の属性情報を新しい属性値として属性テーブルに加えます。属性値をそのまま加えることも出来ますが、複数の地物が含まれるような場合はそれらの統計値を計算して属性値として加えることも出来ます。例えば、植生図がポリゴンレイヤ、ニホンザルの位置情報が点レイヤーとして用意されてい場合、ニホンザルの点の属性情報に各点の直下にある植生の属性値を付け加えることができます。

spatial_join1

 

ベクタレイヤの分割

複数の地物が含まれるレイヤーから地物を分割して新しいファイルを指定したフォルダーに作成します。例えば2つのポリゴンが含まれるレイヤーで、ユニークID値としてそれぞれ1、2を属性値として各ポリゴンが持つとします。この機能を使うと、「ユニークIDフィールド」に属性値1,2が含まれるフィールドを指定すればそれぞれの1つのポリゴンを含む2つのシェープファイルが指定したフォルダーに作成されます。

vector_layer_split1

 

複数のshapeファイルを1つに結合する

一つのフォルダー内に含まれる複数の同一のジオメトリータイプを持つシェープファイルを一つのシェープファイルとして結合します。「ベクタレイヤの分割」と逆の機能です。

file_merge

 

ラスタ解析機能 | 目次へ

ドキュメントアクション

コメント (0)