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实现颜色rgb和hex相互转换的函数
Mar 19 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
python编写简单爬虫资料汇总
Mar 22 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
Pandas统计重复的列里面的值方法
Jan 30 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
如何用python开发Zeroc Ice应用
Jan 29 Python
Python对excel的基本操作方法
Feb 18 Python
python通过函数名调用函数的几种方法总结
Jun 07 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合并数组中相同元素的方法
2014/11/13 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
JS中setTimeout()的用法详解
2013/04/14 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
解析js如何获取css样式
2016/12/11 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
python中黄金分割法实现方法
2015/05/06 Python
Python常用库推荐
2016/12/04 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
某公司部分笔试题
2013/11/05 面试题
行政管理专业推荐信
2013/11/02 职场文书
自我评价范文分享
2014/01/04 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
房屋所有权证明
2014/10/20 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android