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简单线程和协程学习心得(分享)
Jun 14 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
浅谈python中requests模块导入的问题
May 18 Python
python绘制直线的方法
Jun 30 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
python获取Pandas列名的几种方法
Aug 07 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
python实现登录与注册系统
Nov 30 Python
python爬虫请求头的使用
Dec 01 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 数据库树的遍历方法
2009/02/06 PHP
fgetcvs在linux的问题
2012/01/15 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
Python Paramiko模块的使用实际案例
2018/02/01 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
python全栈知识点总结
2019/07/01 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
某某同志考察材料
2014/05/28 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
学校政风行风整改方案
2014/10/25 职场文书
民事纠纷协议书
2016/03/23 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书