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字典基本操作实例分析
Jul 11 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
python 基本数据类型占用内存空间大小的实例
Jun 12 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 Python
python nmap实现端口扫描器教程
May 28 Python
浅析使用Python搭建http服务器
Oct 27 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
微信小程序调用python模型
Apr 21 Python
python实现学员管理系统(面向对象版)
Jun 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入门之连接mysql数据库的一个类
2012/04/21 PHP
php递归json类实例
2014/12/02 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
vue cli升级webapck4总结
2018/04/04 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
Python 流程控制实例代码
2009/09/25 Python
python编写的最短路径算法
2015/03/25 Python
python实现的文件同步服务器实例
2015/06/02 Python
Python实现句子翻译功能
2017/11/14 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
个人作风剖析材料
2014/02/02 职场文书
物流专员岗位职责
2014/02/17 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
2022微信温控新功能上线
2022/05/09 数码科技