如何将 BOM Api 用于天气、潮汐和膨胀

Posted

技术标签:

【中文标题】如何将 BOM Api 用于天气、潮汐和膨胀【英文标题】:How to use BOM Api for weather, tide and swell 【发布时间】:2017-01-24 19:58:20 【问题描述】:

我在澳大利亚的 BOM api 上有很多搜索。没有简单的方法可以获取风、温度、湿度等天气详细信息。它们通过 ftp 以 .xml 格式提供数据。根本没有json格式。有些地方他们以 json 格式提供数据。下面是 json 响应的链接。 http://www.bom.gov.au/fwo/IDW60801/IDW60801.94802.json

但是产品ID最大的问题,“观察”数据有西澳大利亚的IDW60801产品ID。它具有以下信息:- 天气、膨胀、压力和风。但它有前一天的详细信息而不是预测的详细信息。

有 wmo id :- 94802

我从某个地方获得了一些 wmo id,但它并不适用于澳大利亚的所有位置。我想以 json 或 . xml格式。

如果有人知道我们如何获得所有详细信息,请告诉我。

这是产品的 ftp 链接:- ftp://ftp.bom.gov.au/anon/sample/catalogue/ ftp://ftp.bom.gov.au/anon/sample/catalogue/Observations/ ftp://ftp.bom.gov.au/anon/sample/catalogue/Forecasts/ ftp://ftp.bom.gov.au/anon/sample/catalogue/Tide/

我还通过 BOM 获得了澳大利亚城市的 AAC 标识符列表。如果通过 AAC 标识符获取详细信息,请告诉我相应的 url,以便我可以通过它检索详细信息。

谢谢

【问题讨论】:

【参考方案1】:

您将问题表述为:

我在澳大利亚的 BOM api 上有很多搜索。没有简单的方法 获取风、温度、湿度等天气详细信息。他们提供 通过 ftp 以 .xml 格式输入的数据。根本没有json格式。

如果我了解您的需要,是从 BOM 中提取 JSON 格式的天气数据吗?

因此,首先要识别您附近的 IDV。在这种情况下,我在墨尔本使用的是 IDV60901。

这是 JSON 请求:http://www.bom.gov.au/fwo/IDV60901/IDV60901.95936.json

您可以在http://www.bom.gov.au/catalogue/data-feeds.shtml上的“观察 - 单个电台”下找到这些

响应包括一个标题,然后是每半小时的以下数据(其中“排序顺序”是最近的观察结果)。请注意,由于此位置不在海岸上,因此不提供海洋/海湾条件。但是,如果您选择与该数据相关的 IDV,那么您将找到有关海洋状况的观察结果:


    "sort_order": 0,
    "wmo": 95936,
    "name": "Melbourne (Olympic Park)",
    "history_product": "IDV60901",
    "local_date_time": "12/12:30pm",
    "local_date_time_full": "20171012123000",
    "aifstime_utc": "20171012013000",
    "lat": -37.8,
    "lon": 145.0,
    "apparent_t": 12.4,
    "cloud": "-",
    "cloud_base_m": null,
    "cloud_oktas": null,
    "cloud_type_id": null,
    "cloud_type": "-",
    "delta_t": 5.9,
    "gust_kmh": 28,
    "gust_kt": 15,
    "air_temp": 16.6,
    "dewpt": 4.0,
    "press": 1014.7,
    "press_qnh": 1014.7,
    "press_msl": 1014.7,
    "press_tend": "-",
    "rain_trace": "0.0",
    "rel_hum": 43,
    "sea_state": "-",
    "swell_dir_worded": "-",
    "swell_height": null,
    "swell_period": null,
    "vis_km": "-",
    "weather": "-",
    "wind_dir": "WNW",
    "wind_spd_kmh": 15,
    "wind_spd_kt": 8

【讨论】:

【参考方案2】:

我并不清楚如何做到这一点,这就是我发现的:

您可以使用此端点:http://www.bom.gov.au/fwo/<PARAMS...> 检索特定站点最近约 72 小时的天气观测结果。

我在这里获得了可用气象站的完整列表(ID + 标签 + 坐标):

ftp://ftp.bom.gov.au/anon2/home/ncc/metadata/sitelists/stations.zip http://www.bom.gov.au/climate/cdo/about/site-num.shtml

请求格式为:http://www.bom.gov.au/fwo/ID<STATE>60701/ID<STATE>60701/<STATION_ID>.json

塔斯马尼亚州布鲁尼角的示例查询:http://www.bom.gov.au/fwo/IDT60701/IDT60701.95967.json

我上面例子中的95967是站ID IDT60701 部分适用于塔斯马尼亚州,因此适用于其他州: 昆士兰州:IDQ60701 新南威尔士州:IDN60701 维克:IDV60701 NT:IDD60701(这个约定有点不一致..) 等

这里还有一堆产品代码:http://www.bom.gov.au/catalogue/anon-ftp.shtml 可能会有用..

【讨论】:

我在尝试访问 .json 时收到一个禁止状态码【参考方案3】:

AAC 代码可以与 XML 文件中给出的精确预测链接,如果您想要某个位置的预测,它们还指定 AAC 代码。

我一直在和其他几个人一起开发一个 R 包,bomrang,它可以做到这一点以及其他一些事情,它现在仍在开发中,但如果你可以从 GitHub 安装它使用 R。

当前天气以 json 文件的形式提供,可以在数据框中检索和返回。

可以通过 AAC 代码检索预报并将其链接到位置名称,并以数据框的形式返回。

https://github.com/ToowoombaTrio/bomrang

【讨论】:

以上是关于如何将 BOM Api 用于天气、潮汐和膨胀的主要内容,如果未能解决你的问题,请参考以下文章

如何将 placemark.locality 放入我的天气 API?

如何使用 jquery 和一些 API 创建天气小部件?

Python天气API [关闭]

组态王如何显示实时天气

如何在科尔多瓦实现天气 API

如何使用 openweathermap api 和 http 包获取每小时和 16 天的天气预报