02.27 Excel网抓:获取实时天气数据

在《Power BI/Query爬虫:抓取多个城市历史天气数据》这篇文章中,我分享了如何抓取历史天气数据,本文讲解如何抓取实时天气以及天气预报数据,

核心方法是:通过Power BI调用高德地图天气API提取数据,使用SVG图片制作各种天气图标,最后地图或者表格进行天气展现。

涉及数据抓取的部分同时适用于Power BI和Excel,动态图表的部分适用于Power BI。最终可以呈现如下效果。

可以鼠标指向地图任意城市悬浮展现天气:

Power BI/Excel网抓:获取实时天气数据


可以直接在地图展现:

Power BI/Excel网抓:获取实时天气数据


也可以表格样式展现:

Power BI/Excel网抓:获取实时天气数据


1.天气数据提取


在高德地图开放平台(https://lbs.amap.com/)免费申请WEB服务API,获取KEY(网络有相应教程)。

不同城市有对应编码,编码作为识别城市的唯一依据,编码列表可在https://lbs.amap.com/api/webservice/download下载。

Power BI/Excel网抓:获取实时天气数据

部分编码


将城市编码表导入Power BI,并添加如下自定义列:


Power BI/Excel网抓:获取实时天气数据

<code>Json.Document(    Web.Contents("https://restapi.amap.com/v3/weather/weatherInfo?&city="&[adcode]&"&output=JSON&key=你申请的KEY")    )/<code>

该公式的含义是,通过adcode列调用实时天气数据,并返回JSON格式。如果需要的不是实时天气,而是未来几天的预报信息,需要在该代码多加一个参数"extensions",如下所示:

<code>Json.Document(    Web.Contents("https://restapi.amap.com/v3/weather/weatherInfo?&city="&[adcode]&"&output=JSON&key=你申请的KEY&extensions=all")    )/<code>

更多参数详情参考https://lbs.amap.com/api/webservice/guide/api/weatherinfo/


将数据展开后即可得到实况天气:

Power BI/Excel网抓:获取实时天气数据


实况天气高德官方每小时更新多次,预报天气每天更新3次,分别在8、11、18点左右更新。由于天气数据的特殊性以及数据更新的持续性,无法确定精确的更新时间,具体更新时间以接口返回数据的reporttime字段为准。


2.SVG天气图标导入


主要的天气状况有雪、雷雨、雨、阴、多云、晴等,Power BI支持SVG图片显示,在网上找到对应天气SVG图片,将SVG代码存入Excel并导入Power BI。

Power BI/Excel网抓:获取实时天气数据

天气SVG表


Power BI/Excel网抓:获取实时天气数据

天气SVG引入城市代码表


SVG代码使用如下字段相连,并将其标记为“图像URL”格式:

<code>"data:image/svg+xml;utf8,"&RELATED('天气SVG'[SVG])/<code>


Power BI/Excel网抓:获取实时天气数据


主要天气状况的SVG代码可在http://www.jq22.com/code2431找到,以下列出“晴天”代码:


<code><path><path><path><path><path><path><path><path><path>/<code>


3.图表制作


对于地图悬浮提示的显示方式,首先新建一个单独的提示页面,使用卡片图、表格等图表样式作以下设计(此处将该页命名为“天气”)。


Power BI/Excel网抓:获取实时天气数据

将该页“工具提示”打开,并将页面大小类型设置为“工具提示”:

Power BI/Excel网抓:获取实时天气数据

Power BI/Excel网抓:获取实时天气数据

最后将地图页打开,选中地图,在“工具提示”设置中选择上面设计好的提示页面。这样悬浮天气提示功能设置完成。

Power BI/Excel网抓:获取实时天气数据


对于直接在地图显示的方式,将需要的字段并列在Location,并下钻到最底层。

Power BI/Excel网抓:获取实时天气数据


如需表格显示,如下图拖拽字段即可。

Power BI/Excel网抓:获取实时天气数据


以上即是全部制作过程。


分享到:


相關文章: