Python使用folium excel绘制point


Posted in Python onJanuary 03, 2019

使用folium excel 绘制point

制作内容

  • 根据气象台资料获得的点进行绘制
  • 对一个特殊的点做特别的标注
  • 数据来源
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : map03.py
# @Author: huifer
# @Date : 2018/6/28
import pandas as pd
import math
import folium
def degree_conversion_decimal(x):
  """
  度分转换成十进制
  :param x: float
  :return: integer float
  """
  integer = int(x)
  integer = integer + (x - integer) * 1.66666667
  return integer
def distance(origin, destination):
  """
  经纬度计算两点距离
  :param origin:
  :param destination:
  :return:
  """
  lat1, lon1 = origin
  lat2, lon2 = destination
  radius = 6371 # km
  dlat = math.radians(lat2 - lat1)
  dlon = math.radians(lon2 - lon1)
  a = math.sin(dlat / 2) * math.sin(dlat / 2) + math.cos(math.radians(lat1)) \
    * math.cos(math.radians(lat2)) * math.sin(dlon / 2) * math.sin(dlon / 2)
  c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
  d = radius * c
  return d
# 数据准备
data = pd.read_excel('SURF_CHN_MUL_HOR_STATION.xlsx')
# 修改成十进制 以及保留1一位小数
data['经度'] = data['经度'].apply(degree_conversion_decimal)
data['纬度'] = data['纬度'].apply(degree_conversion_decimal)
data['观测场拔海高度(米)'] = data['观测场拔海高度(米)'].apply(lambda x: round(x, 1))
data['气压传感器拔海高度(米)'] = data['气压传感器拔海高度(米)'].apply(lambda x: round(x, 1))
# 保存新的文件
# data.to_csv('气象站信息十进制.csv')
data["距离杭州(km)"] = data.apply(lambda r: distance((r['纬度'], r['经度']), (30.14, 120.1)), axis=1)
# print(data[data['距离杭州(km)']<100].sort_values('距离杭州(km)'))
# 选择除了杭州以外的内容
selected_st = data[data['距离杭州(km)'] < 100].sort_values('距离杭州(km)').iloc[1::]
# 展示地图
# 提取数据
hzdata = data.ix[data['站名'] == '杭州', ['站名', '纬度', '经度']]
myMap = folium.Map(location=[hzdata.iloc[0]['纬度'], hzdata.iloc[0]['经度']])
icon_hz = dict(
  prefix='fa', color='red', icon_color='darkred', icon='cny'
)
icon = folium.Icon(**icon_hz)
folium.Marker(
  location=[hzdata.iloc[0]['纬度'], hzdata.iloc[0]['经度']],
  popup="杭州",
  icon=icon
).add_to(myMap)
for i in range(len(selected_st)):
  name = selected_st.iloc[i]['站名']
  x = selected_st.iloc[i]['纬度']
  y = selected_st.iloc[i]['经度']
  test = folium.Html(
    '<b>name:{}</b></br> <b>x:{}</b></br> <b>y:{}</b></br>'.format(name, x, y),
    script=True)
  popup = folium.Popup(test, max_width=2650)
  folium.Marker(
    location=[x, y],
    popup=popup,
  ).add_to(myMap)
myMap.save("test.html")

成果展示

Python使用folium excel绘制point

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python中的ConfigParser模块使用详解
May 04 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
Python 多线程实例详解
Mar 25 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
python networkx 根据图的权重画图实现
Jul 10 Python
Django drf请求模块源码解析
Jun 08 Python
通过Python把学姐照片做成拼图游戏
Feb 15 Python
Python获取航线信息并且制作成图的讲解
Jan 03 #Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 #Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 #Python
python 调用有道api接口的方法
Jan 03 #Python
对python调用RPC接口的实例详解
Jan 03 #Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 #Python
Python多图片合并PDF的方法
Jan 03 #Python
You might like
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
JavaScript自定义事件介绍
2013/08/29 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
ant design实现圈选功能
2019/12/17 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
使用python实现ANN
2017/12/20 Python
Python中的默认参数实例分析
2018/01/29 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
2014年学前班工作总结
2014/12/08 职场文书
社区服务活动报告
2015/02/05 职场文书
5.12护士节活动总结
2015/02/10 职场文书
欠款起诉书范文
2015/05/19 职场文书
基层工作经历证明
2015/06/19 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP