メインコンテンツまでスキップ

推計震度分布図作図用データ

概要

最大震度5弱以上を観測した地震について、観測点のない地域についても250mメッシュの面的に推計する。

資料名
推計震度分布図作図用データ

配信形式
BUFR(二進形式汎用気象通報式)

データ種類コード
IXAC41

WebSocket圧縮形式
なし

配信形式

推計震度分布図は、GPVとなりデータ量があることからBUFR形式となりバイナリデータとなります。

情報

512KiB以上の電文について分割して配信されますので、終了節がない場合は適宜利用者で電文の結合の上ご利用ください。 分割報に付加する符号の表現については、RRA-RRXとし(WMO全球通信システム(GTS)で定義されている遅延報で運用)、分割第2報目から付与されます(1報目は付与なし)。

APIでは、head.designation の 指定コード の場所で表現します。

利用に際しての留意事項

注意

推計震度分布図で示す個々のメッシュの震度は、各メッシュの矩形内が同一震度であることを示すものではなく、またメッシュの境界線が震度の境界でもありません。

したがって、分布図を必要以上に拡大してメッシュの境界線を強調してもあまり意味がありません。また必要以上の縮尺に拡大することは適切ではありません。

図を活用する場合、大きな震度の面的な拡がり具合やその形状に着目していただくことが重要です。また、推計された震度の値は、場合によっては1階級程度異なることがあります。

※技術情報より

分割された電文の結合の方法

TypeScript による実装例です。 なお、この実装は簡易的なものであり受信順序などにより正しく動作しない場合があります。

Package: @dmdata/api-types

import { APITypes } from '@dmdata/api-types';

// 分割電文の格納
const delayTelegrams: { [key in string]: APITypes.WebSocketV2.Event.Data[]; } = {};

function ixac41(data: Buffer){
// IXAC41 の図作成処理
}

// WebSocket から受信する電文のイベント
event.on('data', (data: APITypes.WebSocketV2.Event.Data) => {
if (data.head.type === 'IXAC41'){
const bodyChunk = Buffer.from(data.body, data.encoding ?? 'utf-8');

// 電文の識別名を作成する(GTS基準)
const groupName = `${data.head.type} ${data.head.author} ${data.head.time}`;

// BUFR終端の識別符号があるかチェック
// 終端がある電文が来たら今まで来ていた電文を結合する
if (bodyChunk.subarray(-4).includes('7777')) {
const bodyChunks: Buffer[] = [
...delayTelegrams[groupName],
bodyChunk
];

// 複数の電文を結合
const body = Buffer.concat(bodyChunks);
ixac41(body);
return;
}

delayTelegrams[groupName] ??= [];

// 順番通りに来ていると想定して、受信した順に追加していく
delayTelegrams[groupName].push(bodyChunk);
}
});

サンプルデータ

250mメッシュの「推計震度分布図」サンプルデータ(気象業務支援センター)

配信資料に関するお知らせ 2023/01/11 - 上記サンプルの構造の例・フォーマット状態

配信される電文の解説資料

配信資料に関する仕様 No40102 - 推計震度分布図

配信資料に関する技術情報 第591号 - 250m メッシュの「推計震度分布図」の提供開始について