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

 

绘制的热力图如下:

 


推荐阅读
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
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社区 版权所有