第35回日本情報地質学会講演会 講演要旨集 013-014頁 2024年

軽石漂流シミュレーションのための粒子数密度の定量可視化北尾 馨*・桑谷 立**

Quantitative visualization of particle number density
for pumice drift simulation
Kaoru KITAO* and Tatsu KUWATANI*** 合資会社キューブワークス CubeWorks Inc., 4-1, Mizukino-2, Moriya, Ibaraki 302-0121, Japan. Email: kitao@cubeworks.co.jp** 国立研究開発法人海洋研究開発機構海域地震火山部門 Research Institute for Marine Geodynamics(IMG), Japan Agency for Marine-Earth Science and Technology (JAMSTEC), 2-15, Natsushima-cho,
Yokosuka, Kanagawa 237-0061, Japan.

キーワード：漂流軽石, グリッド密度分布, クライアントサイド, GPGPU
Key words : Drifting Pumice, Grid Density Distribution, Client Side, GPGPU

１．概要
桑谷ほか(2023)は，海域火山から噴出した大量軽石の 1年間の漂流をシミュレートした結果をウェブ地図上に展開する軽石漂流シミュレーション可視化システム(以下，可視化システムという)のプロトタイプを開発した．可視化シス
テムは大量の軽石をインタラクティブに展開するためWebGL により直接 GPU に描画命令を発行することが特徴
で，本件開発までに複数の火山，複数の噴出を切り替えて表示する等幾つかの機能を追加し，現在公開の準備を進めている．可視化システムは高速動作実現のため，データファイルの書式として点群 PNG(西岡，2023)を採用している．
本件では可視化システムに，地図をグリッドで分割し，各グリッドを軽石の粒子数密度に応じて着色してその分布状態(以下，グリッド密度分布という)を表示する機能を追加で実装したのでこれを紹介する(第１図)．グリッド密度分
布表示の際には追加のデータを必要とせず，取得・処理済みである軽石位置データからグリッドごとの軽石数集計デー
タ(以下，集計データという)を作成してこれを利用する．表示要求時の処理時間もほぼ必要とせず，地図の移動等が発生した場合でも遅延なく表示することができる．

また本件システムと同等の表示機能を持つ国土地盤情報検索サイト KuniJiban(以下，KuniJiban という)とその実装を比較し，本件システムの優位性について検証する．

２．グリッドの考え方
可視化システムではウェブ地図ライブラリ Leaflet を使用している．Leaflet はあらかじめ分割された正方形の地図画像(以下，タイルという)を適切に要求，配置することで地図表示を実現している．Leaflet 標準のタイルの辺の長さ(𝑆!"#$ = 2%!"#$ )は 256 ピクセルで，タイルはその平面位置を表す𝑋と𝑌に縮尺(ズームレベル)を表す𝑍を加えた，一意に識別可能な座標(以下，タイル座標という)を保持する．ズーム
レベル 0 では地球全体を 1 枚のタイル(縦横分割なし)で表し，ズームレベル𝑍では地球全体を縦横それぞれ2& 枚のタイルで分割して表す(タイルの総枚数は2'×& )．
グリッドはタイル単位で処理する．グリッドは正方形で，その辺の長さはタイルの辺の長さを超えない 2 の累乗ピクセル(2%%&"' )とする．すなわち𝐸)*"+ は 0 以上𝐸!"#$ 以下の整数である．地図の縮尺がズームレベル𝑍であるとき，グリッドによる世界全体の分割数は縦横それぞれ2& × 2%!"#$ ÷ 2%%&"'であり，この式は2&,%!"#$-%%&"' と同義である．すなわち各グリッドの領域はズームレベルが𝑍 + 𝐸!"#$ − 𝐸)*"+ における各タイルの領域に 1 対 1 で対応する．よってズームレベル𝑍のとき，ズームレベル𝑍 + 𝐸!"#$ − 𝐸)*"+ に相当する点のタイル座標を求めることで当該ズームレベルにおけるグリッド密度分布表示のための集計用データを生成することができる．

３．使用するデータソースと表示手順

第 1 図 グリッド密度分布の表示例

グリッド密度分布表示に使用するデータソースとその表示手順について記述する．
3.1 データソース
データソースとして点群 PNG ファイルから生成済みのGPU 上のバッファ(以下，頂点バッファという)を使用する．
可視化システムは点群 PNG ファイル取得時，PNG ファイ
ルの画素の色情報である RGBA 値を使って計算した値を頂14点バッファとして保持し，展開時はこのバッファを使って地図要素上での位置を計算している．
RGBA 値から数値 (𝑉)を復元するための計算式は以下の通りである(画素１ピクセルを使用する場合)．
𝑉 = (𝑅 × 256' + 𝐺 × 256 + 𝐵) − (𝑅 < 128 ? 0 ∶ 256. )𝑅: 𝑅𝐺𝐵𝐴の𝑅値，𝐺: 𝑅𝐺𝐵𝐴の𝐺値，𝐵: 𝑅𝐺𝐵𝐴の𝐵値各点が保持するポイント情報値(𝑉/0"1! )と全点共通パラメータであるオフセット値(𝑉0223$! )は前述の計算式により得られる(西岡，2023)．位置座標の復元にはこれらの値の他に係数常用対数値(𝐹#0) )を使用する．頂点バッファとして保持する値(𝑃4522$* )は以下の計算式で求められる．
𝑃4522$* = 𝑉/0"1! ÷ 106#(%𝑃4522$* (頂点バッファ上の値)に対して以下の計算式を適用することで位置の値(𝑃/0"1! )を決定することが出来る．
𝑃/0"1! = 𝑃4522$* + 𝑉0223$! ÷ 106#(%
位置の値は点群 PNG ファイル作成時に使用したズームレベルにおける平面座標(以下，ポイント座標という)であり，この値から点の当該ズームレベルにおけるタイル座標𝑃!"#$ を得ることが出来る．その計算式は以下の通りである．
𝑃!"#$ = ?𝑃/0"1! ÷ 𝑆!"#$ @これらの計算を水平位置を表す２次元座標のそれぞれに対して適用することでタイル座標を求めることが出来る．
3.2 表示手順
ズームレベル𝑍における点のポイント座標が(𝑃7 , 𝑃8 , 𝑍)であるときその点のタイル座標は以下である．

求の都度データベース処理，スクリプトによる整形を経て集計データを生成している．クライアントは集計データを取得して表示するだけで，性能の低いコンピュータでも十分高速な表示が可能である．しかし地図表示状態変更の都度サーバは数十のタイル要求を処理する必要が生じ，同時利用者数が増加するとサーバ負荷が大きくなる傾向がある．
一方，本件グリッド密度分布表示機能はすべてクライアン
ト処理による実装である．グリッド密度分布表示では，最初の点群 PNG ファイル取得，2 回の GPGPU 処理と CPU による演算を組み合わせた集計処理を実行するため，起動時には相応の回線速度とコンピュータ性能が要求されるが，初回処理完了後は地図の再描画発生時もサーバとの通信不要で高速な展開が可能になる．
4.2 グリッド表示
KuniJiban は，小縮尺時に分割したグリッド単位でグリッド内の点の数に応じて着色することで点の分布状況を示している(大縮尺時はマーカーで点の個々の位置を示す)．
グリッド密度分布表示はグリッドの面積を求めることで密度を決定し，それに応じて着色している．いずれの手法でもタイル単位で canvas を作成し，グリッドの大きさに合わせて正方形を描いて着色している点は共通で，色決定の対象に違いはあるが処理手順の差は僅かで技術的な差は小さい．
4.3 システムの柔軟性
KuniJiban は高速展開実現のため，点の位置データ登録時に集計データ生成用の値を自動計算して格納している．
そのためシステム再構築時にはデータベースの再構築やデータの再登録が必要となる場合もあり，柔軟性が高い仕組みであるとは言い難い．
一方本件のグリッド密度分布表示機能は位置データだけを保持して要求の都度集計データを作成するため，仕様変更に対して柔軟に対応することが可能である．ただしデータに変更がある場合はその都度，点群 PNG ファイルを再作成する必要がある．

(⌊𝑃7 ÷ 𝑆!"#$ ⌋, ?𝑃8 ÷ 𝑆!"#$ @, 𝑍)
同じ点について，ズームレベルが𝑑& だけ小さいズームレ
ベル𝑍 − 𝑑& を考えた場合のタイル座標は以下である．
(?𝑃7 ÷ 𝑆!"#$ ÷ 2+) @, ?𝑃8 ÷ 𝑆!"#$ ÷ 2+) @, 𝑍 − 𝑑& )これに基づいて各点の各ズームレベルにおけるタイル座標を計算，タイル座標別で点の数を集計したデータ(集計データ)を作成する．本件では以下の手順で処理している．
① 集計データを作成するズームレベル範囲を決定．
② GPGPU により最大ズームレベルでのタイル座標を計算．
③ 結果を CPU に転送し該当する経過日数のデータを抽出．
④ ズームレベル範囲のタイル座標を計算，集計．
⑤ グリッド描画時，グリッドの面積とタイル座標を調べ，集計データから必要な値を取得して密度を計算．
⑥ 密度から色を決定し当該グリッドを着色．

４．KuniJiban との比較
本件グリッド密度分布表示と KuniJiban が装備する表示機能について，両者の特徴を比較した(第１表)．KuniJiban
ではボーリング位置，可視化システムでは漂流軽石を扱うが，ここでは便宜上両者を点と呼ぶ．
4.1 集計データ作成
グリッド表示の際，KuniJiban ではタイル単位でサーバに集計データを要求してその結果を利用する．サーバは要文

献

桑谷立・北尾馨・西川遥・多田訓子・渡部裕美(2023) 点群
PNG を用いた軽石漂流シミュレーション結果の可視化：
漂流軽石のハザード評価システムの構築に向けて. 情報地質, vol.34, no.3, pp.061-068. https://doi.org/10.6010/geoinformatics.34.3_61
西岡芳晴(2023) 点群 PNG. https://gsj-seamless.jp/labs/pcpng/ (確認日：2024 年 5 月 31 日)
第 1 表 本件グリッド密度分布と KuniJiban の仕組みの比較
KuniJiban

本件グリッド密度分布

集計データ作成
サーバサイドクライアントサイド

タイル単位で取得の都度計算

初回表示時にまとめて計算サーバに負荷がかかる

クライアント性能に依存

グリッド表示グリッド内の点の数

グリッド内の点の密度

canvas で表示

canvas で表示

システムの柔軟性
集計データを事前登録(データベースへの依存大)

集計データを都度作る(データ依存小さい)

データベースから集計データ生成

データ更新の都度点群 PNG
ファイル再作成