热门标签 | 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')

 

绘制的热力图如下:

 


推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
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社区 版权所有