2つある能登地震の補正パラメータの使用方法を調査検討した。2メッシュ(54367652,54367662)のみ重複がある様なので、geoアップリとしては市町村で適用するのではなく簡易的に実装する事にします。注意して使用して下さい。
1.能登地震の補正パラメータファイルは2つあり、重複部分は適用する市町村に応じて切り替えて使う必要があるので、具体的にどの程度重複があるのか調査して、今後の使用方法を検討する
1-1.対象データ(jgdMearge2024.db)
テーブル構造はmesh_code,db_sec,dl_sec,year_noで、year_noは対象地震を順に0,1,2,3とカウントアップした番号である。year_noが1、2が重複調査する能登半島地震パラメータである。

<対象地震>
yno=0:熊本地震
yno=1:能登半島地震
yno=2:能登半島地震(補完)
yno=3:日向灘地震
*yno=year_no
1-2.単純重複データ

<重複箇所>
総レコード数:
245283
重複レコード数:
27392
注意:能登半島部分は2つのパラメータファイルがある。それぞれのパラメータファイルには市町村の適用範囲があり、重なる部分は適用する市町村によりパラメータファイルを切り替える必要がある様です。

1-3.能登地震重複データ数調査
sqlite3データベースなので、以下のsql文により検索した結果、128(256/2)メッシュ重複がありそうです。
<year_no=1,2で同一メッシュコード数が2以上を検索>
SELECT *
FROM mesh_corrections
WHERE mesh_code IN (
SELECT mesh_code
FROM mesh_corrections
where year_no in (1,2)
GROUP BY mesh_code
HAVING COUNT(*) >= 2
)
ORDER BY mesh_code, year_no;
エラーなしで実行が終了しました。
結果: 256 行が 11ms で返されました
1 行目:
以下は検索結果の一部抜粋です
| mesh_code | db_sec | dl_sec | year_no |
|---|---|---|---|
| 54367652 | -3.0e-05 | -0.00023 | 1 |
| 54367652 | -2.0e-05 | -0.00022 | 2 |
| 54367653 | 0.0 | -0.00019 | 1 |
| 54367653 | 0.0 | -0.00019 | 2 |
| 54367654 | 3.0e-05 | -0.00015 | 1 |
| 54367654 | 3.0e-05 | -0.00015 | 2 |
1-4.能登地震異なる重複データ数調査
結果例を見ると、db_sec,dl_secが同じ場合が多そうです。対象となる市町村で切り替える必要があるのは、重複部分で移動量が異なるメッシュのみなので調査した結果2メッシュ(54367652,54367662)のみが実際に切り替える必要があるメッシュでした。
<year_no=1,2で同一メッシュコード数が2以上で補正量が異なるものを検索>
SELECT *
FROM mesh_corrections
WHERE year_no IN (1, 2)
AND mesh_code IN (
-- ここで「値が異なる mesh_code」を特定しています
SELECT t1.mesh_code
FROM mesh_corrections t1
INNER JOIN mesh_corrections t2
ON t1.mesh_code = t2.mesh_code
WHERE t1.year_no = 1
AND t2.year_no = 2
AND (t1.db_sec <> t2.db_sec OR t1.dl_sec <> t2.dl_sec)
)
ORDER BY mesh_code, year_no;
エラーなしで実行が終了しました。
結果: 4 行が 10ms で返されました
1 行目:
| mesh_code | db_sec | dl_sec | year_no |
|---|---|---|---|
| 54367652 | -3.0e-05 | -0.00023 | 1 |
| 54367652 | -2.0e-05 | -0.00022 | 2 |
| 54367662 | -3.0e-05 | -0.00026 | 1 |
| 54367662 | -2.0e-05 | -0.00025 | 2 |
2.能登地震の補正方針と新しいパラメータ作成
Geo(GeoDiveExa,GeoConverterPro)アプリは、公共測量に使用する物ではなく、あくまでも簡単に位置を測定・座標変換するツールです。上記2メッシュ用に特別な処理を追加せず簡易的な方法で対応するので使用には注意して下さい。
2-1.2つの能登地震補正パラメータを1つにする
2メッシュ(54367652,54367662)のみ異なるので、2つの補正パラメータがあるとGeoアプリは2度補正実行するので座標変換結果にズレが発生する。この不具合解消のために1つにマージする。
<year_no=1,2のデータ数を調査>
SELECT count(*)
FROM mesh_corrections
WHERE year_no =1;
エラーなしで実行が終了しました。
結果: 1 行が 15ms で返されました
1 行目:15347
SELECT count(*)
FROM mesh_corrections
WHERE year_no =2;
エラーなしで実行が終了しました。
結果: 1 行が 16ms で返されました
1 行目: 2001
<以下の条件でマージします>
1。mesh_codeが単独のものはそのまま新しいテーブルにyear_no=1で追加する。2。2。mesh_codeが同じでdb_sec,dl_secが同じものはmesh_code,db_sec,dl_sec,year_no=1であたらしいテーブに追加する。
3。mesh_codeが同じでdb_sec,dl_secが異なるものはdb_sec,dl_secの平均値であたらしいテーブに追加する。
<上記条件をまとめてmesh_corrections_newを作成する>
CREATE TABLE mesh_corrections_new AS
SELECT
mesh_code,
AVG(db_sec) as db_sec,
AVG(dl_sec) as dl_sec,
1 as year_no
FROM
mesh_corrections
WHERE
year_no IN (1, 2)
GROUP BY
mesh_code;
エラーなしで実行が終了しました。
結果: クエリーの実行に成功しました。 10ms かかりました
1 行目:
<マージ結果のデータ数を求める>
SELECT count(*)
FROM mesh_corrections_new
WHERE year_no =1;
エラーなしで実行が終了しました。
結果: 1 行が 16ms で返されました
1 行目:17220
2-2.結果の検証
A.データ数検証OK
15347+2001–128=17220
B.重複メッシュ検証OK
マージ前
| mesh_code | db_sec | dl_sec | year_no |
|---|---|---|---|
| 54367652 | -3.0e-05 | -0.00023 | 1 |
| 54367652 | -2.0e-05 | -0.00022 | 2 |
| 54367662 | -3.0e-05 | -0.00026 | 1 |
| 54367662 | -2.0e-05 | -0.00025 | 2 |
マージ後
<重複メッシュ結果を検証する>
SELECT *
FROM mesh_corrections_new
WHERE mesh_code in (54367652,54367662);
エラーなしで実行が終了しました。
結果: 2 行が 15ms で返されました
1 行目:
| mesh_code | db_sec | dl_sec | year_no |
|---|---|---|---|
| 54367652 | -2.5e-05 | -0.000225 | 1 |
| 54367662 | -2.5e-05 | -0.000255 | 1 |
C.重複メッシュ部分の簡易誤差計算結果は0.015cm
(54367652,54367662)メッシュは2つの補正パラメータの平均値を設定しているので、簡易的に誤差計算=1秒:30mで計算すると緯度、経度の誤差は以下の様になる
緯度誤差=0.5e-05*30*100=0.000005*3000=0.005*3=0.015cm
経度誤差=0.000005*30*100=0.000005*3000=0.005*3=0.015cm
RTK-GPSでの測定でも2cm前後の誤差があり、GPS受信機単体なら数mの誤差があるので、(54367652,54367662)メッシュ内の位置計算結果には殆ど影響は無いとも言える。
3.jgdMearge2024.dbの更新
2で作成した新しいパラメータを使用できるように、year_no=0,3をmesh_corrections_newにコピーします。Geoアプリではmesh_corrections_newを使用して座座標変換する事にします。
<mesh_corrections_newにデータをまとめる>
INSERT INTO mesh_corrections_new (mesh_code, db_sec, dl_sec, year_no)
SELECT mesh_code, db_sec, dl_sec, year_no
FROM mesh_corrections
WHERE year_no IN (0, 3);
エラーなしで実行が終了しました。
結果: クエリーの実行に成功しました。 12ms, 14398 行に影響を与えました かかりました
1 行目:
<mesh_corrections_newテーブルからyear_no=1のみを選択して可視化した結果>

注意:Geoアプリの制限
このブログで説明したように2メッシュ(54367652,54367662)については、国土地理院の地震補正パラメータの平均を使用してます。この2メッシュを含むjgdMearge2024.dbはGeoアプリのJGD2024B補正に使用しています。2メッシュ(54367652,54367662)のみ地理院の指定している計算方式ではありませんので使用には注意が必要です。

コメントを残す