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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
python实现统计代码行数的方法
May 22 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
详解Golang 与python中的字符串反转
Jul 21 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
python框架flask表单实现详解
Nov 04 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
Python 爬虫的原理
Jul 30 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
网站用php实现paypal整合方法
2010/11/28 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
JS取文本框中最小值的简单实例
2013/11/29 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
详解Vue 全局变量,局部变量
2019/04/17 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python实现顺时针打印矩阵
2019/03/02 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
用python写PDF转换器的实现
2020/10/29 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
导购员的岗位职责
2014/02/08 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
打架检讨书
2015/01/27 职场文书
接待员岗位职责
2015/02/13 职场文书
暑假打工感想
2015/08/07 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL