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 GAE、Django导出Excel的方法
Nov 24 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
基于python 字符编码的理解
Sep 02 Python
Python实现基本数据结构中队列的操作方法示例
Dec 04 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
python3实现字符串操作的实例代码
Apr 16 Python
Python numpy数组转置与轴变换
Nov 15 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
解决Python字典查找报Keyerror的问题
May 26 Python
python中super()函数的理解与基本使用
Aug 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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
一步步解析Python斗牛游戏的概率
2016/02/12 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
勤奋学习演讲稿
2014/05/10 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python
Python实现聚类K-means算法详解
2022/07/15 Python