国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python使用folium excel繪制point

2020-02-16 00:29:24
字體:
來源:轉載
供稿:網友

使用folium excel 繪制point

制作內容

根據氣象臺資料獲得的點進行繪制 對一個特殊的點做特別的標注 數據來源
#!/usr/bin/env python# -*- coding: utf-8 -*-# @File : map03.py# @Author: huifer# @Date : 2018/6/28import pandas as pdimport mathimport foliumdef degree_conversion_decimal(x):  """  度分轉換成十進制  :param x: float  :return: integer float  """  integer = int(x)  integer = integer + (x - integer) * 1.66666667  return integerdef 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")

成果展示

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林站長站的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南木林县| 新安县| 浪卡子县| 云林县| 淮安市| 炎陵县| 乌拉特后旗| 顺义区| 财经| 临沭县| 原平市| 亳州市| 横山县| 大关县| 通渭县| 江达县| 西和县| 龙井市| 阳高县| 盐山县| 嘉定区| 千阳县| 中方县| 承德县| 阳新县| 宜川县| 沧州市| 伊宁市| 任丘市| 姚安县| 涿州市| 辽阳市| 古浪县| 南丹县| 浏阳市| 玉田县| 灵宝市| 措美县| 临沧市| 博湖县| 阿克|