QX/T 653 风暴追踪。当前位置、历史路径和预报路径画成点 / 线,当前位置按最大反射率分色。工厂 createStiLayer。能时序,写在产品的「能力」里。
参数
本页绘制用这些字段。site 是雷达站心,必填。风暴画点线,不填色。
| 参数 | 必选 | 用途 | 默认 |
|---|---|---|---|
data | 必选 | 解析出口的 values,一张风暴表 | — |
product | 必选 | 固定写 sti | — |
site | 必选 | 雷达站心 { lon, lat },用来把方位 / 距离投到地面 | — |
| 显示与交互 | 可选 | 见 图层 | — |
数据
风暴追踪是 RSTM 原件。二进制,魔术字 RSTM。GenericType=2,ProductType=37,产品代号 058 / 58。
RSTM
通用头
站点块
切块 × 切块数
产品块(256 字节)
风暴表(从产品块 +192 起)| 参数 | 含义 |
|---|---|
RSTM | 魔术字。认文件靠它 |
| GenericType | 2 气象产品 |
| ProductType | 37 风暴追踪 |
| 产品代号 | 058 / 58。与平面最大反射率高度的 ProductType=58 不是同一种块 |
| 站号 / 站名 / 经度 / 纬度 | 站点块。图层用经纬把方位 / 距离投到地面 |
| 风暴数 | 风暴表头 20 字节里的个数,最多 256 |
| 运动 | 每个风暴 24 字节:速度、方向 |
| 预报点 / 历史点 | 先写点数,再写点。每点 12 字节:方位、距离(米)、unix 时次 |
| 属性 | 每个风暴 60 字节:编号、方位、距离、高度、最大反射率 sti、最大反射率高度、液态水、顶高、底高等 |
数据从产品块 +192 起:风暴头 → 运动 ×N → 预报点 → 历史点 → 属性 ×N。路径点是该点自己的方位 / 距离 / 时次,不是格网点列。路径点时次来自该点 unix。原件多为 .bin,也可传打包,解开再认 RSTM。
风暴追踪
通过绘制风暴当前位置、历史和预报路径,用来看风暴怎么走。产品 key 为 sti,单位 dBZ(最大反射率)。本产品能时序。
文件
QX/T 653「风暴追踪」。国内交换名 Z_RADR_I_*_P_DOR_*_STI_*。原件多为 .bin,也可传 .gz / .bz2 / .zip / .tgz。format: 'rstm'。
数据
文件规则见页头。本产品当前位置按属性里的最大反射率分色,单位 dBZ。sti / 距离 / 高度是标量;预报 / 历史是路径点。地面位置由站点 + 方位 + 距离推。
调用
const parsed = await parse(buffer, {
format: 'rstm',
// 一次只出这一列
product: 'sti'
})
const layer = createStiLayer({
// 解析出口
data: parsed.values,
// 画哪一列,与 parse 相同
product: 'sti',
// 雷达站心,用来把方位 / 距离投到地面
site: parsed.site
})
layer.addTo(globe)当前场四至:layer.getBounds()。库不飞入,套合由地球宿主相机做。没有风暴距离时按 345 km。见 图层。
色标
按最大反射率分色:≥50 红,≥40 深橙,≥35 橙,其余黄。≥50 的红心带呼吸闪烁。预报路径橙色虚线,历史路径蓝色实线。
| 档 (dBZ) | 5 | 35 | 40 | 50 |
|---|---|---|---|---|
| 色 | #ffc107 | #ff9800 | #ff5722 | #f44336 |
能力
雷达时序 同一要素 2~6 个时次。parse 一次解开,图层只画第一场,bindSequence 切帧。某一场可以是空表(消亡),仍算合法时序帧。不调 play 就不会播。
const frames = await parse([bufferA, bufferB], {
format: 'rstm',
// 一次只出这一列,多份必须相同
product: 'sti'
})
const layer = createStiLayer({
// 第一场
data: frames[0].values,
// 画哪一列,与 parse 相同
product: 'sti',
// 雷达站心,用来把方位 / 距离投到地面
site: frames[0].site
})
const sequence = bindSequence(layer, frames)
sequence.setIndex(1)