1

国家气象局 (NWS) 在其文本公告和联合格式提要中嵌入机器可读组件,称为有效时间事件代码 (VTEC)。

有关 VTEC 的更多信息http://www.nws.noaa.gov/os/vtec/
文本公告示例:http ://www.nws.noaa.gov/view/national.php?prodtype=allwarnings

我正在开发一个解析器来解释嵌入在 NWS 公告中的一系列 VTEC,并有一个正则表达式来捕获逻辑,我很乐意分享,见下文,但不是 100% 确定我是否做对了。

具体来说,

1. 是否有任何关于可以在任何一条 NWS 消息(或其更新)中嵌入多少个 VTEC 的规范?通常只看到一个,但如果有多个,层次结构是什么,如果有的话 - 最后一个会取消前一个吗?或者,所有 VTEC 的重量是否相同?
2. 如果发布水文或 H-VTEC,是否总是紧跟在 P-VTEC 之后?
3. 在 XML 文档的意义上,H-VTEC 元素和 P-VTEC 元素之间是否存在“父子”关系?
4. VTEC 可以用作消息或其更新的唯一标识符吗?如果不是,那么数据库意义上的“主键”是什么?是否可以使用 VTEC 的散列以及公告更新日期?或者是否推荐任何其他字段组合?

以下正则表达式能够获取 VTEC,假设可以释放任意数量的 P-VTEC,并且如果存在 H-VTEC,它将始终位于“父”P-VTEC 之前。

[/][OTEX][.](NEW|CON|EXT|EXA|EXB|UPG|CAN|EXP|COR|ROU)[.][\w]{4}[.][A-Z][A-Z][.][WAYSFON][.][0-9]{4}[.][0-9]{6}[T][0-9]{4}[Z][-][0-9]{6}[T][0-9]{4}[Z][/]([^/]*[/][\w]{5}[.][[N0-3U]][.][A-Z][A-Z][.][0-9]{6}[T][0-9]{4}[Z][.][0-9]{6}[T][0-9]{4}[Z][.][0-9]{6}[T][0-9]{4}[Z][.](NO|NR|UU|OO)[/])?
4

1 回答 1

0

VTEC 的详细描述见:http ://www.nws.noaa.gov/directives/sym/pd01017003curr.pdf

如果链接过期,也可以通过以下钻取找到:

  1. NWS 指令。 http://www.nws.noaa.gov/directives/
  2. (点击)运营和服务。
  3. (向下滚动)传播。

阅读文档后,对#2 和#3 的回答是肯定的。H-VTEC 将始终是紧接在前的 P-VTEC 的补充。关于#1,多个 P-VTEC 是可能的,并且逻辑可能比正则表达式更复杂。关于#4,答案几乎肯定是否定的,主要是因为 NWS 公告中可能缺少 VTEC,因此不归类为主键。

因此,感谢 Suamere,解析 VTEC 字符串所需的正则表达式很可能是:

/[OTEX]\.(NEW|CON|EXT|EXA|EXB|UPG|CAN|EXP|COR|ROU)\.\w{4}\.[A-Z]{2}\.[WAYSFON]\.\d{4}\.\d{6}T\d{4}Z-\d{6}T\d{4}Z/([^/]*/\w{5}\.[N0-3U]\.[A-Z]{2}\.\d{6}T\d{4}Z\.\d{6}T\d{4}Z\.\d{6}T\d{4}Z\.(NO|NR|UU|OO)/)?
于 2013-08-30T19:47:06.840 回答