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实现从百度API获取天气的方法
Mar 11 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
python实现可视化动态CPU性能监控
Jun 21 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
python实现Virginia无密钥解密
Mar 20 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 Python
python编写扎金花小程序的实例代码
Feb 23 Python
Python编程super应用场景及示例解析
Oct 05 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 clearstatcache()函数详解
2010/03/02 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python list中append()与extend()用法分享
2013/03/24 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
使用K.function()调试keras操作
2020/06/17 Python
vscode调试django项目的方法
2020/08/06 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
自我评价的正确写法
2013/09/19 职场文书
体育教师自荐信范文
2013/12/16 职场文书
军训自我鉴定
2014/01/22 职场文书
求职意向书
2014/04/01 职场文书
房地产广告策划方案
2014/05/15 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书