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中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Swift 3.0在集合类数据结构上的一些新变化总结
Jul 11 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Tensorflow简单验证码识别应用
May 25 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
Python实现的knn算法示例
Jun 14 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
django 中QuerySet特性功能详解
Jul 25 Python
Django ORM 查询管理器源码解析
Aug 05 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 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判断变量类型常用方法
2012/04/24 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
jsTree使用记录实例
2016/12/01 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python项目跨域问题解决方案
2020/06/22 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
社区工作者先进事迹
2014/01/18 职场文书
中学家长会邀请函
2014/02/03 职场文书
代理协议书范本
2014/04/22 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers
Java的Object类的九种方法
2022/04/13 Java/Android