Alteryxツールアイコン「ヒートマップツール」(Heat Map Tool)をご紹介します
ヒートマップツール (Heat Map Tool)
[空間]カテゴリの[ヒートマップ]ツールについて紹介します。概要
このツールは、レコードの多寡によって生じる密度の差を表現する「ヒートマップ」のポリゴンを生成します。
基本的にポイントデータを入力としますが、ポリゴンやラインを入力した際は中心点(重心)を利用してヒートマップのポリゴンを生成します。
なお、デフォルト設定はかなり荒目の設定となっていますが、グリッドサイズなどを小さくしすぎると処理に時間がかかるためご注意ください。
なお、本ツールはAlteryxマクロですので、中身の作りを確認することが可能です。
設定項目
質問タブ
入力する空間オブジェクトの密度とグリッドサイズ、最大距離の関係が出来上がるポリゴンに影響します。インプットの密度が低ければグリッドサイズ・最大距離を大きめに指定する必要がありますし、逆に密度が高い場合は、グリッドサイズ、最大距離を小さめに指定する必要があります。
項目名 | 内容 |
---|---|
グリッドサイズ | ヒートマップ作成時のベースとなるグリッドの細かさを指定します。小さいグリッドにするほど処理に時間がかかるため、作成するマップの面積・密度とのバランスで指定してください。
デフォルト値:1.0 ※単位はマイル ※小数点1位までしか認識しない(例:0.1は入力可能だが、0.11は入力できない)ため、最小値は0.1マイル(約0.16km)となります |
最大距離 | あるセルから別のセルに対して影響を及ぼす最大距離です。ざっくり言うと、「周辺をどの程度まで範囲とみなすか」、という設定になります。
デフォルト値:10.0 ※単位はマイル ※小数点1位までしか認識しない(例:0.1は入力可能だが、0.11は入力できない)ため、最小値は0.1マイル(約0.16km)となります。 |
減衰関数 | 最大距離に達するまでのヒートの減衰量を決める関数です。デフォルト関数では、直線的に減衰する設定になっています。
デフォルト「1 - [Distance]/[MaxDistance]」 減衰を弱めようと思えば、例えば「1 - ([Distance]/[MaxDistance])*([Distance]/[MaxDistance])」とすれば弱まりますし、逆に減衰を強めようとすると「1-LOG(1+[Distance]*100)/LOG(1+[MaxDistance]*100)」というような設定も可能です。 |
結果をスムージング | チェックを入れるとポリゴンの境界線がなめらかになります(一般化ツールとスムージングツールを内部的に使用しています) |
出力タイプ | 「積層」「ドーナツ」の2種類から選択可能です。 |
出力タイプについて(「積層」と「ドーナツ」の違いについて)
「ドーナツ」は生成される各ポリゴンが重ならないタイプで、「積層」は上のレコードのポリゴンが下のレコードのポリゴンを含む形となります。
TileNum | Heat値 | 実際にできるポリゴンが含むHeat値 |
---|---|---|
-3 | ~ 0.0069 | すべての値( ~ 84) |
-2 | 0.0073 ~ 0.76 | 0.0073 ~ 84 |
0 | 0.76 ~ 8 | 0.76 ~ 84 |
1 | 8 ~ 84 | 8 ~ 84 |
TileNum | Heat値 | 実際にできるポリゴンが含むHeat値 |
---|---|---|
-3 | ~ 0.0069 | ~ 0.0069 |
-2 | 0.0073 ~ 0.76 | 0.0073 ~ 0.76 |
0 | 0.76 ~ 8 | 0.76 ~ 8 |
1 | 8 ~ 84 | 8 ~ 84 |
それぞれ使うシーンに合わせて使い分けてください。
入力タブ
項目名 | データ型 | 内容 |
---|---|---|
Point(SpatialObject) | 空間型(Spatial Object) | ヒートの元になる位置情報である空間オブジェクトを入力します。指定必須です。 |
Heat(Optional)(Double) | 数値型(Double) | ヒートの値の元になる数値情報を入力します。オプションですので、入力しなくても動作します。
この入力を与えない場合は、各ポイントのヒート値は同等とみなされます。 |
出力項目
ヒートマップツールの出力結果は以下のようなフィールド構成となります。
計算結果によっては、異なるTile_Numで同じ内容のポリゴン・Tile_Nameが出力されることがあるようです。
項目名 | 詳細 |
---|---|
Tile_Num | 内部のタイルツールが自動的に出力するタイルのNoです。 |
Tile_Name | 内部のタイルツールが自動的に出力する名称です(スマートタイルで「詳細な名前列を出力する」設定となっています)。 |
SpatialObj | ドーナツタイプもしくは積層タイプの空間オブジェクト(ポリゴン)です |
なお、Spatial Objectを閲覧ツールで表示すると以下のようになります(デフォルト設定で作成)。
サンプル
本ツールは、入力値に合わせてパラメータの調整が必要になります。
今回は、インプットとして、神奈川県の人口データ(ポリゴン)を元に、ランダム配置を行ったポイントデータを作成しました。これを使って様々なパターンでヒートマップを書いてみたいと思います。
※密度的には、6.44人/平方キロメートル(16,485レコード、面積約2,558平方キロ)
これだと若干わかりにくいので、Tableauで密度表示したものも参考に掲載します。
設定1
グリッドサイズ、最大距離をなるべく小さい値で試してみました。
グリッドサイズ | 0.1 |
最大距離 | 0.5 |
減衰関数 | 1 - [Distance]/[MaxDistance] ※デフォルト |
設定2
設定1に対して、最大距離を伸ばしたパターンとなります。
グリッドサイズ | 0.1 |
最大距離 | 1.0 |
減衰関数 | 1 - [Distance]/[MaxDistance] ※デフォルト |
設定3
設定1に対して、グリッドサイズを2倍にしたパターンです。
グリッドサイズ | 0.2 |
最大距離 | 0.5 |
減衰関数 | 1 - [Distance]/[MaxDistance] ※デフォルト |
設定4
設定1に対して減衰関数を調整したパターンです(減衰しやすくしています)。
グリッドサイズ | 0.1 |
最大距離 | 0.5 |
減衰関数 | 1-LOG(1+[Distance]*100)/LOG(1+[MaxDistance]*100) |
ちなみに、減衰量はデフォルトと比べると以下のグラフのようなイメージとなっています。
サンプル2
今度は、サンプル1に対してレコード数を減らしてみたいと思います(ランダム%サンプリングツールにより、レコード数を10%にしてみます)。
これにより、密度は10分の1の0.644人/平方キロメートル(1,648レコード、面積約2,558平方キロ)となります。
設定5
グリッドサイズ、最大距離をなるべく小さい値で試してみました。
グリッドサイズ | 0.2 |
最大距離 | 1.0 |
減衰関数 | 1 - [Distance]/[MaxDistance] ※デフォルト |
※設定1と同じ設定だと、芳しくない結果となりました
元のデータ量(密度)が少ないと、設定が全然変わってくることがよくわかります。
設定6
設定5に対してグリッドサイズのみ大きくしてみました。
グリッドサイズ | 0.5 |
最大距離 | 1.0 |
減衰関数 | 1 - [Distance]/[MaxDistance] ※デフォルト |
その他
- グリッドサイズ>=最大距離 と設定すると、とても使えない結果となりました
- 最大距離を0.3以下にすると、エリアが細切れになってヒートマップとして成り立たなくなりました(今回のポイントの散らばりに依存する部分だと思います)
- レポートマップツールを使うと綺麗な地図を作成できます
レポートマップツールの設定のコツは以下のとおりです。
まとめ
- インプットに応じて都度パラメータのチューニングが必要です
- 減衰関数を変更するよりグリッドサイズ、最大距離で大きく結果が変化します
- レポートマップを使うと綺麗な地図が作成できます
サンプルワークフローダウンロード
HeatMapSample fa-download
※Alteryx Designer 2019.4.8.22007時点の情報です