[Turf.js]node.jsとturfで重い統計処理をバックエンドで行う。

最終更新日

turf  and node test

example

フロントエンドで行うには重い統計処理をバックエンドで行い、出力された統計処理済データをフロントエンドで表示するってのをやってみました。

インストール

「turf」とコマンドラインでの引数の処理を行うライブラリ「argv」をインストールします。

今回は「環境GIS」からダウンロードした2013年度の「全国の自動車交通騒音の測定結果」をポイントデータに変換しヘックスグリッドを敷き詰めて各セルに含まれるポイントの「Leq昼間(dB)」の値から中央値を算出します。

対象とするポイントデータは3531個所、ヘックスを敷き詰める範囲は本州および北海度が含まれる範囲です。

point.geojson

サンプル

実行

コマンドプロンプトでポイントデータを読み込みヘックスのサイズ(km)を指定して実行します。
例として50km単位のヘックスで統計処理を行う場合は以下となります。

処理時間

ヘックスグリッドを敷き詰める範囲に対してヘックスのサイズを小さくすると(セルの数が増えると)当然、統計処理にかかる時間は増えます。以下は今回試してみた結果です。

表示してみた

100km HEX
turf HexGrid 100km
example

25km HEX
turf HexGrid 25km
example

統計処理を短くする

海の上までヘックスを敷き詰めるのは無駄が多い。今回の場合なら、先に日本の地形データ(ポリゴン)を用意しておいてヘックスグリッドとintersectとさせて、日本列島上のヘックスだけ取り出してから統計処理を行えばかなり計算量が減らせると思うので、あとで試してみます。