如何将 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 用于天气、潮汐和膨胀的主要内容,如果未能解决你的问题,请参考以下文章