Made by Avastrator, Produced by Longecko
Updated at 2025-10-02, Version 10
该标准用于 PSC 的 WebSocket 情报分发,Project Podris 维护者遵循该标准分发情报,Project Podris 用户依照该标准获得情报,该标准会不定期的更新,详情见 Project Podris 官网。
*注:PSC 指 Podris Service Center,即 Project Podris 服务器
频道 Channel
Project Podris 会积极接入众多数据源以提升其实用程度,但许多不安全的数据源有可能会使 Project Podris 的情报质量大打折扣。因此,Project Podris 使用频道(Channel)机制,将可靠的数据源和不安全的数据源分隔开来,使其在能保证长期用户不受不稳定数据源影响的同时,也允许爱好者前瞻最新的数据源进行测试。
目前,Project Podris 有两个频道:stable
与 testing
stable:仅提供经过 Project Podris 的长期使用并确定在绝大多数情况下是能正常工作的数据源
testing:在包含 stable 频道的所有数据源以外,还提供最新接入的数据源,但这些数据源都是未经过 Project Podris 验证,且
PSC 向客户端发送了握手包以确认连接建立以后,无需任何交互,您就默认位于 stable
频道了。
要切换频道,请向 PSC 发送:
channel 频道名称(String字符串)
这样的纯文本消息。如果频道成功切换,Project Podris 会向客户端发送一个新的握手包,其对应的数据源也会启用或禁用。
注意:不同的频道之间,其所有情报的 event_id 并不完全互通,不建议复用。
报头 Header
这是 PSC 通过 WebSocket 分发给客户端的JSON情报字典的开头,您解析到的每一个 WebSocket 字典消息的开头都是这样的(握手包HSK除外):
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
md5 | String字符串 | 该报的MD5值后七位 | 73f8677 |
event_id | Int整数 | 事件编号 | 514 |
event_type | String字符串 | 该消息的情报类型 | EQR |
event_source | String字符串 | 情报来源 | 中国地震台网[正式测定] |
md5
是每一个消息独有的,不同频道间互通event_id
是 Project Podris 所报出的每个事件独有的,不同频道间互通。比如同一个地震的多个预警报与来自诸多机构对其的测定报,它们的md5一定不相同,但event_id一定相同报体 Body
报体是连接在报头之后的
Tip:该板块是这篇文档的最重要部分,将会以 event_type
情报类型分别介绍,请耐心仔细阅读喵
关于时间格式:
Project Podris使用的时区统一是UTC协调世界时。格式均遵循 ISO8601,即 YYYY-MM-DDThh:mm:ssZ
关于地理坐标:
均使用列表表示,纬度在前经度在后,均为Float浮点数,精度不定,如:[28.50,87.45]
关于地震烈度:
烈度单位仅有:CSIS、MMI、JMA、CWASIS(JMA与CWASIS震度的5-、5+、6-、6+分别表示为4.75、5.25、5.75、6.25)
关于震源深度:
单位均为公里,为0时表示极浅,有极小的概率为负数(十分罕见,大部分情况是测定机构问题)
关于区域烈度:
地震预警、地震速报与摇晃感知会给出此次地震的各地域烈度(或感知实测烈度),均使用列表表示,烈度的强在前,烈度的弱在后,可能为空列表,单个地域为一个字典,格式如下:
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
region | String字符串 | 地域名称 | 西藏日喀则市定日县 |
location | List列表 | 当地经纬度 | [28.50,87.45] |
intensity | Float浮点数 | 当地预估(或实测)烈度 | 8 |
int_type | String字符串 | 烈度使用的单位 | CSIS |
关于情报类型:
目前的类型有:
1. HSK
(HandShaKe):握手消息
2. EEW
(Earthquake Early Warning):地震预警
3. EQR
(EarthQuake Report):地震报告
4. ESP
(Earthquake Shaking Perception):地震摇晃感知情报
5. CMT
(Centroid Moment Tensor):震源机制报告
6. TNW
(TsuNami Warning):海啸预警
7. TYP
(TYPhoon):台风实况
8. CAN
(CANcellation):情报取消报
*注:以下示例值均使用 西藏日喀则市定日县6.8级地震 数据,标为 \ 的代表暂无具体示例值
HSK
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | Int整数 | PSC 当前毫秒级时间戳 | 1736211916000 |
ver | Float浮点数 | 服务正在采用的情报分发标准格式版本号,与该文档标题下的版本相对应 | 0.1 |
channel | String字符串 | 当前处于的频道 | stable |
active_eew | List列表 | 当前正在活跃的地震预警情报列表 | \ |
active_typ | List列表 | 当前正在活跃的台风情报列表 | \ |
ip | String字符串 | 客户端的公网 IP 地址 | 114.514.114.514 |
region | List列表 | 客户端 IP 所在的地点名称 | ["Chongqing", "重庆"] |
location | List列表 | 客户端 IP 所在的地理位置 | [29.5689,106.5577] |
active_eew
与 active_typ
存放的均是能使用下文方法解析的字典region
只会有两个值,第一个是所在地的英文名,第二个是所在地的中文名Project Podris 使用 MaxMind 的 GeoIP2 离线数据库在 PSC 本地对客户端的 IP 进行定位,定位仅供参考,无需担心您的隐私安全
EEW
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 发震时间 | 2025-01-07T01:05:16Z |
region | String字符串 | 震中地点名称 | 西藏日喀则市定日县 |
fe_region | String字符串 | 震中所在的 F-E Region | western Xizang |
location | List列表 | 震中经纬度 | [28.50,87.45] |
magnitude | Float浮点数 | 震级 | 6.8 |
mag_type | String字符串 | 震级单位 | Ms |
intensity | Float浮点数 | 预估最大烈度 | 8 |
int_type | String字符串 | 预估最大烈度单位 | CSIS |
depth | Int整数 | 震源深度 | 10 |
area_intensity | List列表 | 预警地域 | \ |
impact_radius | Int整数 | 预计地震影响半径 | 1700 |
report_num | Int整数 | 预警报数 | 3 |
report_final | Bool布尔值 | 是否是最终报 | True |
report_history | List列表 | 本次预警的预警报历史 | \ |
report_final
为 True 时存在 report_history
键若震中坐标不在 F-E Region 内,
fe_region
值将为一个空字符串impact_radius
的单位为 千米EQR
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 发震时间 | 2025-01-07T01:05:16Z |
region | String字符串 | 震中地点名称 | 西藏日喀则市定日县 |
fe_region | String字符串 | 震中所在的 F-E Region | western Xizang |
location | List列表 | 震中经纬度 | [28.50,87.45] |
magnitude | Float浮点数 | 震级 | 6.8 |
mag_type | String字符串 | 震级单位 | Ms |
intensity | Float浮点数 | 最大烈度 | 8 |
int_type | String字符串 | 最大烈度单位 | CSIS |
depth | Int整数 | 震源深度 | 10 |
area_intensity | List列表 | 区域烈度 | \ |
impact_radius | Int整数 | 预计地震影响半径 | 1700 |
pending | Bool布尔值 | 该测定信息是否有待进一步修正 | False |
detail_link | String字符串 | 详情链接 | https://news.ceic.ac.cn/CC20250107090516.html |
datas | List列表 | Project Podris 综合情报所包含的所有原情报 | \ |
event_source
为 ProjectPodrisMixe
d 时存在 datas
键若震中坐标不在 F-E Region 内,
fe_region
值将为一个空字符串当测定机构声明其本次发布的报告会稍后进行进一步修正时,
pending
会为 True
,并且本次报告不会被记录到地震历史中Project Podris 综合情报是 PSC 自动检测不同来源同一震的情报(类型包含
EQR
与 CMT
)并合并起来发布的情报,其震中位置、震源深度等信息是 datas
中的情报整合起来取得的平均值。在 EQH
中,综合情报会将其 datas
内的情报覆盖,只展示包含了它的综合情报(综合情报并不是一直都能准确整合地震数据,请理性看待)ESP
摇晃感知内容是一个列表,列表中有多个(或一个)字典,一个字典分别对应着一个地区的摇晃感知
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 感知时间 | 2025-01-07T01:05:16Z |
list | List列表 | 感知地区列表 | \ |
CMT
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 发震时间 | 2025-01-07T01:05:16Z |
region | String字符串 | 震中地点名称 | 西藏日喀则市定日县 |
fe_region | String字符串 | 震中所在的 F-E Region | western Xizang |
location | List列表 | 震中经纬度 | [28.50,87.45] |
magnitude | Float浮点数 | 震级 | 6.8 |
mag_type | String字符串 | 震级单位 | Ms |
mw_mag | Float浮点数 | 矩震级 | 7.1 |
depth | Int整数 | 震源深度 | 10 |
fault_type | String字符串 | 断层类型 | normal |
mt_1 | List列表 | 断层一数据 | [348,40,-100] |
mt_2 | List列表 | 断层二数据 | [181,51,-81] |
detail_link | String字符串 | 详情链接 | https://data.earthquake.cn/datashare/report.shtml?PAGEID=earthquake_dzzyjz&cmtype=review |
:normal reverse strike-slip normal-oblique reverse-oblique
,意思分别对应:正断层 逆断层 走滑断层 正斜滑断层 逆斜滑断层断层数据从前到后分别对应其 走向、倾角、滑动角,均为 Int整数型
TNW
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 预警发布时间 | 2025-07-30T00:05:16Z |
report_num | Int整数 | 预警报数 | 1 |
list | List列表 | 预警地区列表 | \ |
海啸警报会给出各地域的预估海啸影响,均使用列表表示,按照严重程度从大到小、从前到后排序,单个地域为一个字典,格式如下:
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
region | String字符串 | 地域名称 | Russia |
coastline | List列表 | 当地海岸线线串坐标数据 | \ |
level | String字符串 | 文字描述的预警等级 | Potential Threat |
max_height | String字符串 | Null空 | 预估最高海啸 | \ |
arrival | String字符串 | Null空 | 预估抵达时间 | \ |
max_height
的单位为 米(Meter)TYP
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 更新时间 | 2024-11-16T02:00:00Z |
name | List列表 | 该台风英文与中文名 | ["Example", "示例"] |
location | List列表 | 台风经纬度位置 | [22.50,120.40] |
move_speed | Int整数 | 台风移速 | 17 |
wind_speed | Int整数 | 台风风速 | 54 |
pressure | Int整数型 | 台风中心气压 | 1000 |
radius7 | List列表 | 台风七级风圈 | [240, 320, 260, 280] |
radius10 | List列表 | 台风十级风圈 | [60, 80, 60, 80] |
radius12 | List列表 | 台风十二级风圈 | [40, 40, 40, 40] |
forecast | List列表 | 台风路径预报 | \ |
history | List列表 | 台风路径历史 | \ |
detail_link | String字符串 | 详情链接 | http://typhoon.nmc.cn/web.html |
台风移速为 千米每小时
台风中心气压单位为 百帕
台风风圈列表中有四个 Int整数,分别对应 东北、东南、西北、西南 的风圈半径,单位为 千米。可能为空列表。
台风路径的预报和历史均使用列表表示。预报按照从早到晚、从前到后排序,历史按照从晚到早、从前到后排序。单个路径为一个字典,格式如下:
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 时间 | 2024-11-16T02:00:00Z |
location | List列表 | 台风经纬度位置 | [22.50,120.40] |
move_speed | Int整数 | Null空 | 台风移速 | 17 |
wind_speed | Int整数 | 台风风速 | 54 |
pressure | Int整数型 | 台风中心气压 | 1000 |
move_speed
键会为 Null空CAN
键名 | 键值类型 | 描述 | 示例值 |
---|---|---|---|
time | String字符串 | 情报取消时间 | 2025-11-03T21:14:19Z |
description | String字符串 | 情报取消详情 | 本次地震预警取消。 |
event | Dict字典 | 被取消的情报副本 | \ |
被取消的情报副本也是采用该文档的格式,原封不动地包含在 event 键中
主动数据 Active Data
主动数据是需要客户端主动将参数发送给客户端才能收到的数据,请求消息均使用纯文本,响应的数据也都采用了 Brotli 压缩 。
地震历史数据
请求:get_eqlist
请求最新的地震情报个数(Int整数)
响应:List列表 该列表包含 EEW最终报、EQR原情报、CMT原情报。其中每一项都可以以上文所述的格式解析。新情报在前,旧情报在后,PSC 仅保留最新的1000个情报。
*注:请不要连续多次向 PSC 请求大量的地震历史数据,这有几率(尽管很小)会使我们亲爱的 PSC 飞升 (ㄒoㄒ)
震源机制球(沙滩球)
请求:get_beachball 走向(Int整数) 倾角(Int整数) 滑动角(Int整数)
响应:String字符串 一个采用Base64编码的PNG图片