Alteryxで行う空間分析について解説するシリーズです。
今回は、空間分析では問題になりがちな容量の大きいポリゴンデータについて解説していきます。
日本地図ポリゴンの容量が大きい問題について
国土交通省の配布している行政区画地図ですが、全国で82Mほどのサイズになっており、比較的ファイルサイズとしては重いです。
レコード数としては12万件あるので致し方ないところです。
厳密にこのポリゴンを利用したい場合はそのまま利用するしかありませんが、地図を引いて(小さな縮尺で)見る場合は、こんなに細かい地図は不要です。
細かい凹凸や小さい島などは削除し、ポイントを減らすことができれば、容量を減らし軽いデータにすることができます(表示も早くなります)。
この場合、「一般化」ツールを使うことができます。
日本語訳として「一般化」と呼ばれてもわかりにくいのですが、英語だと「Generalize」です。GISツールでの定義としては、小さな縮尺で表示する際のために空間オブジェクトを単純化する処理のことを言います。このためのアルゴリズムとして、折れ線を単純化するためのアルゴリズムである「Ramer–Douglas–Peucker」アルゴリズムが使われています。
間引くためのしきい値として、デフォルトでは0.1kmとして設定されています。この値は減らしたい容量と希望の精度に応じて値を変化させてください。値が大きいほど多くのポイントを減らし、データ量を減らすことができます。
なお、一般化を行ったあとに、元々サイズの小さかった空間オブジェクトがNoneになるのでフィルターツールで取り除いてください。
それでは、東京のお台場近辺をズームアップしてどのように変化しているか見てみましょう。
細かいところが省かれています。細かい形状も単純化されているのがわかるかと思います。
これにより、表示が格段に早くなります。元々のデータでは、ポリゴンを構成するポイント数が14,976,857ポイント(約1500万ポイント)であったのに対して、284,135ポイント(約28万ポイント)まで減らすことができました。容量的にも、ポリゴン部分だけでAlteryx読み込み時に74.6Mであったデータが4.6Mまで減っています。閲覧ツールで地図を見ようとすると、元々の状態だと5-6秒待たされますが、1秒程度で表示されるようになりました。
スムージングツール
スムージングツールは一般化ツールとは逆の動きで、ポイントを追加することでポリゴンを滑らかな形状にします。以下は上記の日本地図に一般化した後にスムージングでスムージングしたものです。
カクカクしていた部分が丸みを帯びて滑らかな形状になっていることがわかります。これを行うことで残念ながらデータ量は22.2Mまで増加しています。
スムージングツールは、「B−スプライン」スムージングアルゴリズムを用いてポリゴンの形状を滑らかにします。
デフォルト設定では、最大半径が1kmになっていましたが、0.1と弱めの設定にしています。これも含めてポリゴンのサイズの調整など行ってください。
巨大なポリゴンとマッチングをかける際の注意について
空間マッチツールで巨大なポリゴンと大量のデータのマッチングをかける際は気をつけてください。それぞれマッチしたデータに巨大なポリゴンが一緒に出力されてしまうので、出力結果が非常に大きなデータセットになってしまいます。
例えば、以下のように行政区画を結合して1レコードにした日本地図を考えてみましょう。
これに対してマッチングをかけると以下のようになります。
この場合は、空間マッチのセレクト機能で無駄なポリゴンを出力しないようにしてください。以下のように大きく容量に差がでます(日本地図をチェックしたままだと900Mに対して、チェックをはずすことでたったの174bytesまで容量を落とすことができます)。
もしくは、巨大なポリゴンをグリッド作成ツールで細切れにすることでも容量的な問題はクリアできます(あまり細切れにしすぎると、今度はマッチングに時間がかかります)。
まとめ
- 巨大なポリゴンは一般化ツールで容量を減らすことができることを紹介しました。使用目的に応じてうまく使うようにしてください。
- ポリゴンの形状を滑らかにしたい場合はスムージングツールが有効です
- 巨大なポリゴンとのマッチングを行っていてメモリ消費が大きい場合は、ポリゴンを細切れにしてみてください。
コメント