Project Podris 适用于 WebSocket 服务的JSON情报分发标准格式

Made by Avastrator, Produced by Longecko
Updated at 2025-10-02, Version 10

该标准用于 PSC 的 WebSocket 情报分发,Project Podris 维护者遵循该标准分发情报,Project Podris 用户依照该标准获得情报,该标准会不定期的更新,详情见 Project Podris 官网。

Project Podris 会积极接入众多数据源以提升其实用程度,但许多不安全的数据源有可能会使 Project Podris 的情报质量大打折扣。因此,Project Podris 使用频道(Channel)机制,将可靠的数据源和不安全的数据源分隔开来,使其在能保证长期用户不受不稳定数据源影响的同时,也允许爱好者前瞻最新的数据源进行测试。

目前,Project Podris 有两个频道:stabletesting
stable:仅提供经过 Project Podris 的长期使用并确定在绝大多数情况下是能正常工作的数据源
testing:在包含 stable 频道的所有数据源以外,还提供最新接入的数据源,但这些数据源都是未经过 Project Podris 验证,且

PSC 向客户端发送了握手包以确认连接建立以后,无需任何交互,您就默认位于 stable 频道了。
要切换频道,请向 PSC 发送:

channel 频道名称(String字符串)

这样的纯文本消息。如果频道成功切换,Project Podris 会向客户端发送一个新的握手包,其对应的数据源也会启用或禁用。

注意:不同的频道之间,其所有情报的 event_id 并不完全互通,不建议复用。

这是 PSC 通过 WebSocket 分发给客户端的JSON情报字典的开头,您解析到的每一个 WebSocket 字典消息的开头都是这样的(握手包HSK除外):

键名键值类型描述示例值
md5String字符串该报的MD5值后七位73f8677
event_idInt整数事件编号514
event_typeString字符串该消息的情报类型EQR
event_sourceString字符串情报来源中国地震台网[正式测定]
md5 是每一个消息独有的,不同频道间互通
event_id 是 Project Podris 所报出的每个事件独有的,不同频道间互通。比如同一个地震的多个预警报与来自诸多机构对其的测定报,它们的md5一定不相同,但event_id一定相同

报体是连接在报头之后的
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时表示极浅,有极小的概率为负数(十分罕见,大部分情况是测定机构问题)
关于区域烈度:
地震预警、地震速报与摇晃感知会给出此次地震的各地域烈度(或感知实测烈度),均使用列表表示,烈度的强在前,烈度的弱在后,可能为空列表,单个地域为一个字典,格式如下:

键名键值类型描述示例值
regionString字符串地域名称西藏日喀则市定日县
locationList列表当地经纬度[28.50,87.45]
intensityFloat浮点数当地预估(或实测)烈度8
int_typeString字符串烈度使用的单位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

键名键值类型描述示例值
timeInt整数PSC 当前毫秒级时间戳1736211916000
verFloat浮点数服务正在采用的情报分发标准格式版本号,与该文档标题下的版本相对应0.1
channelString字符串当前处于的频道stable
active_eewList列表当前正在活跃的地震预警情报列表\
active_typList列表当前正在活跃的台风情报列表\
ipString字符串客户端的公网 IP 地址114.514.114.514
regionList列表客户端 IP 所在的地点名称["Chongqing", "重庆"]
locationList列表客户端 IP 所在的地理位置[29.5689,106.5577]
active_eewactive_typ 存放的均是能使用下文方法解析的字典
region 只会有两个值,第一个是所在地的英文名,第二个是所在地的中文名
Project Podris 使用 MaxMind 的 GeoIP2 离线数据库在 PSC 本地对客户端的 IP 进行定位,定位仅供参考,无需担心您的隐私安全

EEW

键名键值类型描述示例值
timeString字符串发震时间2025-01-07T01:05:16Z
regionString字符串震中地点名称西藏日喀则市定日县
fe_regionString字符串震中所在的 F-E Regionwestern Xizang
locationList列表震中经纬度[28.50,87.45]
magnitudeFloat浮点数震级6.8
mag_typeString字符串震级单位Ms
intensityFloat浮点数预估最大烈度8
int_typeString字符串预估最大烈度单位CSIS
depthInt整数震源深度10
area_intensityList列表预警地域\
impact_radiusInt整数预计地震影响半径1700
report_numInt整数预警报数3
report_finalBool布尔值是否是最终报True
report_historyList列表本次预警的预警报历史\
仅当 report_final 为 True 时存在 report_history
若震中坐标不在 F-E Region 内, fe_region 值将为一个空字符串
impact_radius 的单位为 千米

EQR

键名键值类型描述示例值
timeString字符串发震时间2025-01-07T01:05:16Z
regionString字符串震中地点名称西藏日喀则市定日县
fe_regionString字符串震中所在的 F-E Regionwestern Xizang
locationList列表震中经纬度[28.50,87.45]
magnitudeFloat浮点数震级6.8
mag_typeString字符串震级单位Ms
intensityFloat浮点数最大烈度8
int_typeString字符串最大烈度单位CSIS
depthInt整数震源深度10
area_intensityList列表区域烈度\
impact_radiusInt整数预计地震影响半径1700
pendingBool布尔值该测定信息是否有待进一步修正False
detail_linkString字符串详情链接https://news.ceic.ac.cn/CC20250107090516.html
datasList列表Project Podris 综合情报所包含的所有原情报\
仅当 event_sourceProjectPodrisMixed 时存在 datas
若震中坐标不在 F-E Region 内, fe_region 值将为一个空字符串
当测定机构声明其本次发布的报告会稍后进行进一步修正时,pending 会为 True,并且本次报告不会被记录到地震历史中
Project Podris 综合情报是 PSC 自动检测不同来源同一震的情报(类型包含 EQRCMT )并合并起来发布的情报,其震中位置、震源深度等信息是 datas 中的情报整合起来取得的平均值。在 EQH 中,综合情报会将其 datas 内的情报覆盖,只展示包含了它的综合情报(综合情报并不是一直都能准确整合地震数据,请理性看待)

ESP

摇晃感知内容是一个列表,列表中有多个(或一个)字典,一个字典分别对应着一个地区的摇晃感知

键名键值类型描述示例值
timeString字符串感知时间2025-01-07T01:05:16Z
listList列表感知地区列表\

CMT

键名键值类型描述示例值
timeString字符串发震时间2025-01-07T01:05:16Z
regionString字符串震中地点名称西藏日喀则市定日县
fe_regionString字符串震中所在的 F-E Regionwestern Xizang
locationList列表震中经纬度[28.50,87.45]
magnitudeFloat浮点数震级6.8
mag_typeString字符串震级单位Ms
mw_magFloat浮点数矩震级7.1
depthInt整数震源深度10
fault_typeString字符串断层类型normal
mt_1List列表断层一数据[348,40,-100]
mt_2List列表断层二数据[181,51,-81]
detail_linkString字符串详情链接https://data.earthquake.cn/datashare/report.shtml?PAGEID=earthquake_dzzyjz&cmtype=review
断层类型分别只会有五种值:normal reverse strike-slip normal-oblique reverse-oblique,意思分别对应:正断层 逆断层 走滑断层 正斜滑断层 逆斜滑断层
断层数据从前到后分别对应其 走向、倾角、滑动角,均为 Int整数型

TNW

键名键值类型描述示例值
timeString字符串预警发布时间2025-07-30T00:05:16Z
report_numInt整数预警报数1
listList列表预警地区列表\

海啸警报会给出各地域的预估海啸影响,均使用列表表示,按照严重程度从大到小、从前到后排序,单个地域为一个字典,格式如下:

键名键值类型描述示例值
regionString字符串地域名称Russia
coastlineList列表当地海岸线线串坐标数据\
levelString字符串文字描述的预警等级Potential Threat
max_heightString字符串 | Null空预估最高海啸\
arrivalString字符串 | Null空预估抵达时间\
max_height 的单位为 米(Meter)

TYP

键名键值类型描述示例值
timeString字符串更新时间2024-11-16T02:00:00Z
nameList列表该台风英文与中文名["Example", "示例"]
locationList列表台风经纬度位置[22.50,120.40]
move_speedInt整数台风移速17
wind_speedInt整数台风风速54
pressureInt整数型台风中心气压1000
radius7List列表台风七级风圈[240, 320, 260, 280]
radius10List列表台风十级风圈[60, 80, 60, 80]
radius12List列表台风十二级风圈[40, 40, 40, 40]
forecastList列表台风路径预报\
historyList列表台风路径历史\
detail_linkString字符串详情链接http://typhoon.nmc.cn/web.html
台风风速为 米每秒
台风移速为 千米每小时
台风中心气压单位为 百帕
台风风圈列表中有四个 Int整数,分别对应 东北、东南、西北、西南 的风圈半径,单位为 千米。可能为空列表。

台风路径的预报和历史均使用列表表示。预报按照从早到晚、从前到后排序,历史按照从晚到早、从前到后排序。单个路径为一个字典,格式如下:

键名键值类型描述示例值
timeString字符串时间2024-11-16T02:00:00Z
locationList列表台风经纬度位置[22.50,120.40]
move_speedInt整数 | Null空台风移速17
wind_speedInt整数台风风速54
pressureInt整数型台风中心气压1000
预报台风路径的 move_speed 键会为 Null空

CAN

键名键值类型描述示例值
timeString字符串情报取消时间2025-11-03T21:14:19Z
descriptionString字符串情报取消详情本次地震预警取消。
eventDict字典被取消的情报副本\
情报取消详情使用的语言取决于情报来源
被取消的情报副本也是采用该文档的格式,原封不动地包含在 event 键中

主动数据是需要客户端主动将参数发送给客户端才能收到的数据,请求消息均使用纯文本,响应的数据也都采用了 Brotli 压缩 。

地震历史数据

请求:get_eqlist 请求最新的地震情报个数(Int整数)
响应:List列表 该列表包含 EEW最终报、EQR原情报、CMT原情报。其中每一项都可以以上文所述的格式解析。新情报在前,旧情报在后,PSC 仅保留最新的1000个情报。
*注:请不要连续多次向 PSC 请求大量的地震历史数据,这有几率(尽管很小)会使我们亲爱的 PSC 飞升 (ㄒoㄒ)

震源机制球(沙滩球)

请求:get_beachball 走向(Int整数) 倾角(Int整数) 滑动角(Int整数)
响应:String字符串 一个采用Base64编码的PNG图片