27.1.5. 内挿

27.1.5.1. ヒートマップ(カーネル密度推定)

カーネル密度推定を使用して、入力ポイントベクタレイヤの密度(ヒートマップ)ラスタを生成します。

密度はその場所にあるポイントの数に基づいて計算され、集まっているポイントの数が多ければ多いほど、値は大きくなります。ヒートマップを用いれば、 ホットスポット や点のクラスター化を簡単に確認できます。

パラメータ

ラベル

名前

データ型

説明

入力レイヤ(点)

INPUT

[ベクタ:ポイント]

ヒートマップに使用するポイントベクタレイヤ

半径

RADIUS

[数値]

デフォルト: 100.0

地図単位のヒートマップの検索半径(またはカーネルのバンド幅)。この半径は、ある点の周りで影響を受ける点の距離を指定します。大きな値を指定するほどヒートマップは滑らかになり、小さな値を指定すると、細部や点の密度のばらつきが表されます。

出力ラスタサイズ

PIXEL_SIZE

[数値]

デフォルト: 0.1

レイヤの単位で表した、出力ラスタレイヤのピクセルサイズ

GUIでは、出力ラスタサイズは行数( )/ 列数 ( カラム )で指定するか、 または ピクセルサイズ( ピクセルサイズX / ピクセルサイズY )で指定します。行数や列数が大きくなると、ピクセルサイズは小さくなり、出力ラスタのファイルサイズは増加します。 カラムピクセルサイズXピクセルサイズY の値は同時に更新されます。つまり、行数を2倍にすれば列数も2倍になり、ピクセルサイズは半分になります。出力ラスタの範囲は(ほぼ)変わりません。

半径を示す属性(フィールド)

オプション

RADIUS_FIELD

[テーブルのフィールド:数値]

入力レイヤの属性フィールドから、各地物の検索半径を設定します。

重みに使う属性

オプション

WEIGHT_FIELD

[テーブルのフィールド:数値]

入力地物を属性フィールドの値で重みづけします。結果のヒートマップにおいて、特定の地物の影響を増加させるために使用します。

カーネル関数

KERNEL

[列挙型]

デフォルト: 0

ポイントからの距離が長くなるにつれてポイントの影響力が減少する割合を制御します。カーネルによって減衰の速度は異なり、TriweightカーネルはEpanechnikovカーネルよりもポイントに近い距離の地物に大きな重みを与えます。このため、Triweightカーネルは「よりシャープな」、Epanechnikovカーネルは「よりスムーズな」ホットスポットになります。

さまざまなカーネル関数が利用可能です(詳細については Wikipedia を参照してください):

  • 0 --- Quartic

  • 1 --- Triangular

  • 2 --- Uniform

  • 3 --- Triweight

  • 4 --- Epanechnikov

減衰比(Triangularのみ)

オプション

DECAY

[数値]

デフォルト: 0.0

Triangularカーネルで使用します。 ある地物からの熱が距離に従ってどのように減少するかをさらに制御できます。

  • 値 0(=最小値)の場合は、与えられたの半径の中心に熱が集中し、端では完全に消滅すること意味します。

  • 値0.5の場合は、半径の端のピクセルは、検索半径の中心のピクセルの半分の熱を持っていることを意味します。

  • 値 1 の場合は、熱が検索半径の円全体に均等に分散していることを意味します(これは「Uniform」カーネルと同等です)。

  • 値が 1よりも大きい場合は、中心よりも検索半径の端の熱が高く、端に行くにつれて熱が高くなることを意味します。

スケーリングするか

OUTPUT_VALUE

[列挙型]

デフォルト: そのまま

出力ヒートマップラスタの値を変更できます。次のいずれかです:

  • 0 --- そのまま

  • 1 --- スケールする

ヒートマップ

OUTPUT

[ラスタ]

デフォルト: [一時ファイルに保存]

カーネル密度値の出力ラスタレイヤを指定します。次のいずれかです:

  • 一時ファイルに保存

  • ファイルに保存...

出力

ラベル

名前

データ型

説明

ヒートマップ

OUTPUT

[ラスタ]

カーネル密度値のラスタレイヤ

例:ヒートマップの作成

以下の例では、QGISサンプルデータセット( サンプルデータのダウンロード 参照)の airports ベクタポイントレイヤを使用します。ヒートマップ作成に関する素晴らしいQGISチュートリアルは、 http://qgistutorials.com にもあります。

図 27.2 では、アラスカの空港が表示されています。

../../../../_images/heatmap_start.png

図 27.2 アラスカの空港

  1. QGISアルゴリズムの 内挿 グループから ヒートマップ(カーネル密度推定) アルゴリズム開きます

  2. 入力レイヤ(点) selectString フィールドで、現在のプロジェクトにロードされたポイントレイヤのリストの中から airports レイヤを選択します。

  3. 半径1000000 メートルに変更します。

  4. ピクセルサイズX1000 に変更します。 ピクセルサイズYカラム は自動的に更新されます。

  5. 実行 をクリックして、airportsのヒートマップを作成し読み込みます( 図 27.4 参照)。

../../../../_images/heatmap_dialog.png

図 27.3 ヒートマップダイアログ

QGISはヒートマップを生成し、マップウィンドウに追加します。デフォルトでは、ヒートマップはグレースケールで表示され、色が明るい領域は空港が集中していることを示しています。QGISでこのヒートマップのスタイルを設定し、見た目を改善しましょう。

../../../../_images/heatmap_loaded_grey.png

図 27.4 グレーの面に見える読み込み直後のヒートマップ

  1. heatmap_airports レイヤのプロパティダイアログを開きます( heatmap_airports レイヤを選択し、マウス右ボタンでコンテキストメニューを開いて、 プロパティ を選択します)。

  2. シンボロジ タブを選択します。

  3. レンダリングタイプ selectString を「単バンド疑似カラー」に変更します。

  4. 適切な カラーランプ selectString 、例えば YlOrRd を選択します。

  5. 分類 ボタンをクリックします。

  6. OK ボタンを押して、レイヤを更新します。

最終的な結果を 図 27.5 に示します。

../../../../_images/heatmap_loaded_colour.png

図 27.5 スタイルが設定されたアラスカの空港のヒートマップ

Python コード

Algorithm ID: qgis:heatmapkerneldensityestimation

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

27.1.5.2. IDW内挿(逆距離加重法)

ポイントベクタレイヤの逆距離加重法(IDW)内挿ラスタを生成します。

作成したい未知の点からの距離に応じてサンプル点からの影響が減少するように、サンプル点は内挿時に重み付けされます。

IDW内挿法には、サンプルデータ点の分布が不均一な場合、内挿結果の質が低下するといった、いくつかの欠点もあります。

その上、内挿面の最大値と最小値はサンプルデータ点上でしか起こりえません。

パラメータ

ラベル

名前

データ型

説明

入力レイヤ

INTERPOLATION_DATA

[文字列]

内挿に使用するベクタレイヤとフィールド。コードでは文字列で指定します(詳細については InterpolationWidgetsParameterInterpolationData クラスを参照)。

内挿データの文字列を構成するために、以下のGUI要素が用意されています:

  • 入力ベクタ [ベクタ:任意]

  • 内挿対象の属性 [テーブルのフィールド:数値] :内挿に使用する属性

  • 内挿にZ座標を使用する [ブール値] :レイヤに保存されているZ値を使用します(デフォルト:False)

追加されたレイヤとフィールドの組み合わせごとに、タイプを選択します:

  • ポイント(Points)

  • ストラクチャーライン

  • ブレークライン(改行)

文字列では、複数のレイヤ・フィールド要素は '::|::' で区切られます。レイヤ・フィールド要素のサブ要素は '::~::' で区切られます。

距離係数(P)

DISTANCE_COEFFICIENT

[数値]

デフォルト: 2.0

内挿の距離係数を設定します。最小値は 0.0、最大値は 100.0 です。

領域 (xmin, xmax, ymin, ymax)

EXTENT

[範囲]

出力ラスタレイヤの範囲。

利用できる方法:

  • レイヤーから計算...: 現在のプロジェクトに読み込まれたレイヤの範囲を使用します。

  • レイアウトマップから計算...: アクティブなプロジェクト内の レイアウト地図アイテム の範囲を使用します。

  • ブックマークから計算...:保存された ブックマーク の範囲を使用します。

  • 現在のキャンバス領域を使用

  • キャンバスに描画: 考慮する領域を区切る矩形をクリック&ドラッグします。

  • xmin, xmax, ymin, ymax として座標を入力

出力ラスタサイズ

PIXEL_SIZE

[数値]

デフォルト: 0.1

レイヤの単位で表した、出力ラスタレイヤのピクセルサイズ

GUIでは、出力ラスタサイズは行数( )/ 列数 ( カラム )で指定するか、 または ピクセルサイズ( ピクセルサイズX / ピクセルサイズY )で指定します。行数や列数が大きくなると、ピクセルサイズは小さくなり、出力ラスタのファイルサイズは増加します。 カラムピクセルサイズXピクセルサイズY の値は同時に更新されます。つまり、行数を2倍にすれば列数も2倍になり、ピクセルサイズは半分になります。出力ラスタの範囲は(ほぼ)変わりません。

出力レイヤ

OUTPUT

[ラスタ]

デフォルト: [一時ファイルに保存]

内挿された値のラスタレイヤ。次のいずれかです:

  • 一時ファイルに保存

  • ファイルに保存...

出力

ラベル

名前

データ型

説明

出力レイヤ

OUTPUT

[ラスタ]

内挿された値のラスタレイヤ

Python コード

Algorithm ID: qgis:idwinterpolation

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

27.1.5.3. 線の密度

ラスタの各セルについて、円形状の近傍領域内の線の密度を計算します。この指標は、円形の近傍領域と交差する線分の数をすべて足し合わせ、この合計値をその近傍領域の面積で割ることで得られます。ラインセグメントには、重みづけの係数を適用することができます。

../../../../_images/linedensity.png

図 27.6 線の密度の例。ソース入力レイヤ:Roads Overijssel - The Netherlands (OSM)

パラメータ

ラベル

名前

データ型

説明

入力線レイヤ

INPUT

[ベクタ:任意]

ライン地物を含んでいる入力ベクタレイヤ

重み属性(フィールド)

WEIGHT

[数値]

線の密度の計算の際に使用する重み係数が含まれるレイヤのフィールド

検索半径

RADIUS

[数値]

デフォルト: 10

円形近傍の検索半径。単位を指定できます。

ピクセルサイズ

PIXEL_SIZE

[数値]

デフォルト: 10

レイヤの単位で表した、出力ラスタレイヤのピクセルサイズ。ラスタのピクセルは正方形です。

線密度ラスタ

OUTPUT

[ラスタ]

デフォルト: [一時ファイルに保存]

出力結果のラスタレイヤ。次のいずれかです:

  • 一時ファイルに保存

  • ファイルに保存...

出力

ラベル

名前

データ型

説明

線密度ラスタ

OUTPUT

[ラスタ]

線密度の計算結果のラスタレイヤ

Python コード

Algorithm ID: native:linedensity

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。

27.1.5.4. TIN内挿(不規則三角網)

ポイントベクタレイヤの不規則三角網(TIN)内挿ラスタを生成します。

TIN内挿法を使用して、最近傍点の三角形で形成されるサーフェスを作成できます。このサーフェスを作成するために、選択されたサンプル点の周りの外接円を作成し、その交点を、重ならない、できるだけコンパクトな三角形のネットワークに連結します。結果として得られるサーフェスは滑らかではありません。

このアルゴリズムは、内挿値のラスタレイヤと三角網のベクタラインレイヤの両方を作成します。

パラメータ

ラベル

名前

データ型

説明

入力レイヤ

INTERPOLATION_DATA

[文字列]

内挿に使用するベクタレイヤとフィールド。コードでは文字列で指定します(詳細については InterpolationWidgetsParameterInterpolationData クラスを参照)。

内挿データの文字列を構成するために、以下のGUI要素が用意されています:

  • 入力ベクタ [ベクタ:任意]

  • 内挿対象の属性 [テーブルのフィールド:数値] :内挿に使用する属性

  • 内挿にZ座標を使用する [ブール値] :レイヤに保存されているZ値を使用します(デフォルト:False)

追加されたレイヤとフィールドの組み合わせごとに、タイプを選択します:

  • ポイント(Points)

  • ストラクチャーライン

  • ブレークライン(改行)

文字列では、複数のレイヤ・フィールド要素は '::|::' で区切られます。レイヤ・フィールド要素のサブ要素は '::~::' で区切られます。

内挿方法

METHOD

[列挙型]

デフォルト: 0

使用する内挿方法を設定します。以下のいずれかです:

  • 線形

  • Clough-Toucher (キュービック法)

領域 (xmin, xmax, ymin, ymax)

EXTENT

[範囲]

出力ラスタレイヤの範囲。

利用できる方法:

  • レイヤーから計算...: 現在のプロジェクトに読み込まれたレイヤの範囲を使用します。

  • レイアウトマップから計算...: アクティブなプロジェクト内の レイアウト地図アイテム の範囲を使用します。

  • ブックマークから計算...:保存された ブックマーク の範囲を使用します。

  • 現在のキャンバス領域を使用

  • キャンバスに描画: 考慮する領域を区切る矩形をクリック&ドラッグします。

  • xmin, xmax, ymin, ymax として座標を入力

出力ラスタサイズ

PIXEL_SIZE

[数値]

デフォルト: 0.1

レイヤの単位で表した、出力ラスタレイヤのピクセルサイズ

GUIでは、出力ラスタサイズは行数( )/ 列数 ( カラム )で指定するか、 または ピクセルサイズ( ピクセルサイズX / ピクセルサイズY )で指定します。行数や列数が大きくなると、ピクセルサイズは小さくなり、出力ラスタのファイルサイズは増加します。 カラムピクセルサイズXピクセルサイズY の値は同時に更新されます。つまり、行数を2倍にすれば列数も2倍になり、ピクセルサイズは半分になります。出力ラスタの範囲は(ほぼ)変わりません。

出力レイヤ

OUTPUT

[ラスタ]

デフォルト: [一時ファイルに保存]

TIN内挿結果のラスタレイヤ。次のいずれかです:

  • 一時ファイルに保存

  • ファイルに保存...

TIN内挿出力

TRIANGULATION

[ベクタ:ライン]

デフォルト: [出力をスキップ]

TIN生成結果のベクタレイヤ。次のいずれかです:

  • 出力をスキップ

  • 一時レイヤを作成( TEMPORARY_OUTPUT

  • ファイルに保存...

  • GeoPackageに保存...

  • データベーステーブルに保存...

ここでファイルの文字コードを変更することもできます。

出力

ラベル

名前

データ型

説明

出力レイヤ

OUTPUT

[ラスタ]

TIN内挿結果のラスタレイヤ

TIN内挿出力

TRIANGULATION

[ベクタ:ライン]

TIN生成結果のベクタレイヤ

Python コード

Algorithm ID: qgis:tininterpolation

import processing
processing.run("algorithm_id", {parameter_dictionary})

algorithm id は、プロセシングツールボックス内でアルゴリズムにマウスカーソルを乗せた際に表示されるIDです。 parameter dictionary は、パラメータの「名前」とその値を指定するマッピング型です。Python コンソールからプロセシングアルゴリズムを実行する方法の詳細については、 プロセシングアルゴリズムをコンソールから使う を参照してください。