热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python:天气预报接口获取json数据并结合温度值与城市经纬度通过folium绘制热力图(C)

在前几篇(https:zhangphil.blog.csdn.netarticledetails110358440)的基础上,通过天气预报

在前几篇(https://zhangphil.blog.csdn.net/article/details/110358440)的基础上,通过天气预报接口读取json天气预报数据,然后取出温度值,结合城市经纬度,最终通过folium绘制热力图。python代码如下:

import json
import webbrowser as wb
import pandas as pd
import urllib
import folium
from folium.plugins import HeatMap
import numpy as npdef get_weather_data(city_code):url = f'http://www.weather.com.cn/data/cityinfo/{city_code}.html'respOnse= urllib.request.urlopen(url)cOntent= response.read().decode('utf-8')return contentdef search_city_code(city_name):city_code = '-1'df = pd.read_json('city_code.json')for row in df.values:row_data = row[0]city_data = row_data['市']for cd in city_data:# print(cd['市名'], cd['编码'])if (city_name == cd['市名'] or cd['市名'] in city_name):city_code = cd['编码']breakreturn city_codeif __name__ == '__main__':city_name_list = ['北京', '上海', '广州', '深圳', '成都'] # 获取以上五个城市天气数据temp2 = []for cn in city_name_list:city_code = search_city_code(cn)weather_data = get_weather_data(city_code)json_data = json.loads(weather_data)t = json_data['weatherinfo']['temp2'].strip('℃') # 清洗数据,保留纯粹的数字temp2.append(float(t))print(temp2)latlngs = [[39.929986, 116.395645], # 北京中心点经纬度[31.249162, 121.487899], # 上海中心点经纬度[23.120049, 113.30765], # 广州中心点经纬度[22.546054, 114.025974], # 深圳中心点经纬度[30.679943, 104.067923]] # 成都中心点经纬度temp1_ = np.expand_dims(np.array(temp2), axis=0)temp1_np = temp1_.reshape((5, 1))data = np.concatenate((latlngs, temp1_np), axis=1)map = folium.Map([33., 113.], # 地图中心tiles='OpenStreetMap', # stamentonerzoom_start=5)HeatMap(data).add_to(map)map.save('m.html')wb.open('m.html')

 

绘制的热力图如下:

 


推荐阅读
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • ASP.NET MVC中Area机制的实现与优化
    本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
  • 本文介绍如何在Linux Mint系统上搭建Rust开发环境,包括安装IntelliJ IDEA、Rust工具链及必要的插件。通过详细步骤,帮助开发者快速上手。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
author-avatar
快乐的kang918_863
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有