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实现八大排序算法
Aug 13 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
Python中的Numpy矩阵操作
Aug 12 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
python是否适合网页编程详解
Oct 04 Python
python字符串格式化方式解析
Oct 19 Python
Django视图扩展类知识点详解
Oct 25 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
python线程里哪种模块比较适合
Aug 02 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基于单例模式编写PDO类的方法
2016/09/13 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
《童年的发现》教学反思
2014/02/14 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
销售经理岗位职责
2015/01/31 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏