api.weather.gov开始和结束时间

时间:2018-05-22 17:40:10

标签: php json

我一直在使用来自 weather.gov 的相对较新的V3 API中的提醒功能。我已成功使用API​​在https://api.weather.gov/alerts/active使用PHP查看当前警报,并在HTTP请求中发送相应的accept,version和user-agent标头。

我现在正在寻求扩展此功能,以便查询特定日期的非活动警报。文档以ISO8601DateTime格式说明了开始和结束参数。因此,以下示例URL应在2018年5月15日在伊利诺伊州生成所有警报的列表:

https://api.weather.gov/alerts?start=2018-05-14T00:00:00-05:00&end=2018-05-15T00:00:00-05:00&state=IL

然而,这会产生响应:

{
   "type": "FeatureCollection",
   "features": [],
   "title": "Watches, warnings, and advisories issued between Mon, May 14, 2018 12:00:00 AM -0500 and Tue, May 14, 2018 12:00:00 AM -0500 for Illinois"
}

响应清楚地表明参数正在被正确解析。我知道伊利诺伊州今天发布了大量警报。我也尝试了很多变化,包括更短和更长的持续时间,不同的时区(包括没有),不同的日期和不同的状态,包括没有提供的状态。所有这些都提供了描述列表的类似结果,但没有实际数据。

是否有人在API上找到了更好的文档,或者在警报开始和结束时间方面取得了成功?

您可以找到API here的完整文档。

2 个答案:

答案 0 :(得分:1)

我玩了一遍,最后只是通过一个简单的请求来查看你得到的东西。

https://api.weather.gov/alerts?state=IL

然后我使用了有效而不是开始和结束。

https://api.weather.gov/alerts?state=IL&effective=2018-05-20T06:08:00-04:00

你得到了一些回报:

    {
        "@context": [
    "https://raw.githubusercontent.com/geojson/geojson-ld/master/contexts/geojson-base.jsonld",
    {
        "wx": "https://api.weather.gov/ontology#",
        "@vocab": "https://api.weather.gov/ontology#"
    }
],
"type": "FeatureCollection",
"features": [
    {
        "id": "https://api.weather.gov/alerts/NWS-IDP-PROD-2847567-2622897",
        "type": "Feature",
        "geometry": {
            "type": "Polygon",
            "coordinates": [
                [
                    [
                        -90.97,
                        39.39
                    ],
                    [
                        -90.89,
                        39.45
                    ],
                    [
                        -90.77,
                        39.38
                    ],
                    [
                        -90.71,
                        39.23
                    ],
                    [
                        -90.81,
                        39.22
                    ],
                    [
                        -90.97,
                        39.39
                    ]
                ]
            ]
        },

答案 1 :(得分:1)

不久前,我再次进行了回顾,很明显,NWS的内部发生了一些变化,因为我现在可以指定开始时间和结束时间了。首先是时间戳:

  • 时间采用以下几个怪癖的格式格式化为ISO-8601。请记住,以下所有都是有效的ISO-8601。
  • 这些格式有效
    • 2020-05-14T05:40:08-00:00
    • 2020-05-14T05:40:08-05:00已将偏移量更改为-5小时
    • 2020-05-14T05:40:08Z将时区更改为Z(UTC的简写)
  • 这些不起作用
    • 2020-05-14T05:40:08+00:00不接受正偏移量
    • 2020-05-14T05:40:08.000Z不接受毫秒
    • 20200514T054008Z不接受没有标点符号的情况
    • 2020-05-14仅接受日期

这是一个将返回数据直到2020年5月21日的URL:https://api.weather.gov/alerts?start=2020-05-14T05:40:08-00:00

我还学到了以下内容:

  • startend网址参数似乎正在过滤响应中的sent字段。
  • /alerts端点大约有最后一周的数据。