用folium模块画地理图_使用Folium表示您的地理空间数据

用folium模块画地理图

As a part of the Data Science community, Geospatial data is one of the most crucial kinds of data to work with. The applications are as simple as ‘Where’s my food delivery order right now?’ and as complex as ‘What is the most optimal path for the delivery guy?’

作为数据科学社区的一部分,地理空间数据是最重要的数据类型之一。 申请就像“我现在的外卖订单在哪里?”一样简单。 就像“送货员的最佳路径是什么?”一样复杂。

是什么把我带到了Folium? (What brought me to Folium?)

I was recently working on a data science problem involving a lot of gps coordinates. Obviously the very basic question — how do I represent these coordinates on a map in my jupyter notebook? And while we know that plotly, geopy and basemap get the job done, this is the first time I came across Folium and decided to give it a go!

我最近正在研究一个涉及许多gps坐标的数据科学问题。 显然,这是一个非常基本的问题-如何在jupyter笔记本中的地图上表示这些坐标? 虽然我们知道plotly , geopy和basemap可以完成工作,但这是我第一次遇到Folium并决定尝试一下!

This article is a step by step tutorial on representing your data using folium.

本文是有关使用folium表示数据的分步教程。

介绍 (Introduction)

Folium essentially is used for generating interactive maps for the browser (inside notebooks or on a website). It uses leaflet.js , a javascript library for interactive maps.

Folium本质上用于为浏览器(在笔记本内部或网站上)生成交互式地图。 它使用leaflet.js (用于交互式地图的javascript库)。

To put it in a one-liner: Manipulate your data in Python, then visualize it in on a Leaflet map via folium.

要将其放在一个直线上: 用Python处理数据,然后通过叶片将其可视化在Leaflet地图上。

Step 1: Installing folium on the computer and importing the necessary packages.

步骤1: 在计算机上安装大叶草并导入必要的软件包。

!pip install foliumimport numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import preprocessing
import scipy## for geospatial
import folium
import geopy

We will work with the Fire from Space: Australia dataset.

我们将使用“ 来自太空的火焰:澳大利亚”数据集。

Step 2: Loading and inspecting the dataset.

步骤2: 加载和检查数据集。

df = pd.read_csv("fire_archive_M6_96619.csv")
Image for post

Step 3: Finding the coordinates to begin with.

步骤3: 找到要开始的坐标。

We can either pick a set of coordinates from the dataset itself or we can use geopy for this purpose. Here, we are talking about Australian wildfires so I started with Melbourne for reference.

我们可以从数据集本身中选择一组坐标,也可以为此使用geopy。 在这里,我们谈论的是澳大利亚的山火,所以我从墨尔本开始作为参考。

city = "Melbourne"
# get location
locator = geopy.geocoders.Nominatim(user_agent="My app")
city = locator.geocode(city)
location = [city.latitude, city.longitude]
print(city, "\n[lat, long]:", location)
Image for post

Step 4: Plotting on the map.

步骤4: 在地图上绘制。

Plotting points on a map in Folium is like building a house. You lay the base (that’s your background map) and then you add points on top of it’s surface.

在Folium地图上绘制点就像在盖房子。 放置基础(即背景图),然后在其表面顶部添加点。

We shall first lay the base.

我们首先要打基础。

map_ = folium.Map(location=location, tiles="cartodbpositron",
zoom_start=8)
map_
Image for post

You can also play around with the tileset and zoom by referring here.

您还可以通过参考此处来玩游戏并缩放。

Now we plot the points on the map. We shall color-code according to the attribute ‘type’ and size it as per the ‘brightness’ of the fire. So let’s get those attributes in order first.

现在我们在地图上绘制点。 我们将根据属性“类型”对代码进行颜色编码,并根据火的“亮度”对其进行大小调整。 因此,让我们先按顺序获取这些属性。

# create color column to correspond to type
colors = ["red","yellow","orange", "green"]
indices = sorted(list(df["type"].unique()))
df["color"] = df["type"].apply(lambda x:
colors[indices.index(x)])
## scaling the size
scaler = preprocessing.MinMaxScaler(feature_range=(3,15))
df["size"] = scaler.fit_transform(
df['brightness'].values.reshape(-1,1)).reshape(-1)

We finally add points on top of the map using folium.

最后,我们使用叶片将点添加到地图顶部。

df.apply(lambda row: folium.CircleMarker(
location=[row['latitude'],row['longitude']],
popup=row['type'],
color=row["color"], fill=True,
radius=row["size"]).add_to(map_), axis=1)
Image for post

Finally, we move to adding a legend to the map. I used this reference for adding a legend. There are a variety of other methods but this was what I found the easiest.

最后,我们开始向地图添加图例。 我使用此参考来添加图例。 还有许多其他方法,但这是我发现的最简单的方法。

legend_html = """<div style="position:fixed; 
top:10px; right:10px;
border:2px solid black; z-index:9999;
font-size:14px;">&nbsp;<b>"""+color+""":</b><br>"""
for i in lst_elements:
legend_html = legend_html+"""&nbsp;<i class="fa fa-circle
fa-1x" style="color:"""+lst_colors[lst_elements.index(i)]+"""">
</i>&nbsp;"""+str(i)+"""<br>"""
legend_html = legend_html+"""</div>"""
map_.get_root().html.add_child(folium.Element(legend_html))#plot
map_
Image for post

Here’s the whole piece of code:

这是整个代码段:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import preprocessing
import scipy
## for geospatial
import folium
import geopydf = pd.read_csv("fire_archive_M6_96619.csv")city = "Melbourne"
# get location
locator = geopy.geocoders.Nominatim(user_agent="My app")
city = locator.geocode(city)
location = [city.latitude, city.longitude]
print(city, "\n[lat, long]:", location)map_ = folium.Map(location=location, tiles="cartodbpositron",
zoom_start=8)# create color column to correspond to type
colors = ["red","yellow","orange", "green"]
indices = sorted(list(df["type"].unique()))
df["color"] = df["type"].apply(lambda x:
colors[indices.index(x)])
## scaling the size
scaler = preprocessing.MinMaxScaler(feature_range=(3,15))
df["size"] = scaler.fit_transform(
df['brightness'].values.reshape(-1,1)).reshape(-1)df.apply(lambda row: folium.CircleMarker(
location=[row['latitude'],row['longitude']],
popup=row['type'],
color=row["color"], fill=True,
radius=row["size"]).add_to(map_), axis=1)legend_html = """<div style="position:fixed;
top:10px; right:10px;
border:2px solid black; z-index:9999;
font-size:14px;">&nbsp;<b>"""+color+""":</b> <br>"""
for i in lst_elements:
legend_html = legend_html+"""&nbsp;<i class="fa fa-circle
fa-1x" style="color:"""+lst_colors[lst_elements.index(i)]+"""">
</i>&nbsp;"""+str(i)+"""<br>"""
legend_html = legend_html+"""</div>"""
map_.get_root().html.add_child(folium.Element(legend_html))
#plot
map_

You can also find it on my Github. Hope this article helped.

您也可以在我的Github上找到它。 希望本文对您有所帮助。

翻译自: https://towardsdatascience.com/represent-your-geospatial-data-using-folium-c2a0d8c35c5c

用folium模块画地理图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python创建类统计属性_轻松创建统计数据的Python包

python创建类统计属性介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class. Since you are not using data, you want a quick solution.有时&#xff0c;您的幻灯片或课程可能需要一个分配图。 由于您不使用数据&#xff0c;因此需要快…

浅析STM32之usbh_def.H

【温故而知新】类似文章浅析USB HID ReportDesc (HID报告描述符) 现在将en.stm32cubef1\STM32Cube_FW_F1_V1.4.0\Middlewares\ST\STM32_USB_Host_Library\Core\Inc\usbh_def.H /********************************************************************************* file us…

C# (类型、对象、线程栈和托管堆)在运行时的相互关系

在介绍运行时的关系之前,先从一些计算机基础只是入手,如下图: 该图展示了已加载CLR的一个windows进程,该进程可能有多个线程,线程创建时会分配到1MB的栈空间.栈空间用于向方法传递实参,方法定义的局部变量也在实参上,上图的右侧展示了线程的栈内存,栈从高位内存地址向地位内存地…

2019-08-01 纪中NOIP模拟赛B组

T1 [JZOJ2642] 游戏 题目描述 Alice和Bob在玩一个游戏&#xff0c;游戏是在一个N*N的矩阵上进行的&#xff0c;每个格子上都有一个正整数。当轮到Alice/Bob时&#xff0c;他/她可以选择最后一列或最后一行&#xff0c;并将其删除&#xff0c;但必须保证选择的这一行或这一列所有…

knn分类 knn_关于KNN的快速小课程

knn分类 knnAs the title says, here is a quick little lesson on how to construct a simple KNN model in SciKit-Learn. I will be using this dataset. It contains information on students’ academic performance.就像标题中所说的&#xff0c;这是关于如何在SciKit-Le…

office漏洞利用--获取shell

环境&#xff1a; kali系统&#xff0c; windows系统 流程&#xff1a; 在kali系统生成利用文件&#xff0c; kali系统下监听本地端口&#xff0c; windows系统打开doc文件&#xff0c;即可中招 第一种利用方式&#xff0c; 适合测试用&#xff1a; 从git下载代码&#xff1a; …

pandas之DataFrame合并merge

一、merge merge操作实现两个DataFrame之间的合并&#xff0c;类似于sql两个表之间的关联查询。merge的使用方法及参数解释如下&#xff1a; pd.merge(left, right, onNone, howinner, left_onNone, right_onNone, left_indexFalse, right_indexFalse,    sortFalse, suffi…

python ==字符串

字符串类型(str)&#xff1a; 包含在引号&#xff08;单&#xff0c;双&#xff0c;三&#xff09;里面&#xff0c;由一串字符组成。 用途&#xff1a;姓名&#xff0c;性别&#xff0c;地址&#xff0c;学历&#xff0c;密码 Name ‘zbk’ 取值: 首先要明确&#xff0c;字符…

认证鉴权与API权限控制在微服务架构中的设计与实现(一)

作者&#xff1a; [Aoho’s Blog] 引言&#xff1a; 本文系《认证鉴权与API权限控制在微服务架构中的设计与实现》系列的第一篇&#xff0c;本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现。 1. 背景 最近在做权限相关服务的开发&#xff0c;在系统微服务化后&a…

mac下完全卸载程序的方法

在国外网上看到的&#xff0c;觉得很好&#xff0c;不仅可以长卸载的知识&#xff0c;还对mac系统有更深的认识。比如偏好设置文件&#xff0c;我以前设置一个程序坏了&#xff0c;打不开了&#xff0c;怎么重装都打不开&#xff0c;后来才知道系统还保留着原来的偏好设置文件。…

机器学习集群_机器学习中的多合一集群技术在无监督学习中应该了解

机器学习集群Clustering algorithms are a powerful technique for machine learning on unsupervised data. The most common algorithms in machine learning are hierarchical clustering and K-Means clustering. These two algorithms are incredibly powerful when appli…

自考本科计算机要学什么,计算机自考本科需要考哪些科目

高科技发展时代&#xff0c;怎离得开计算机技术&#xff1f;小学生都要学编程了&#xff0c;未来趋势一目了然&#xff0c;所以如今在考虑提升学历的社会成人&#xff0c;多半也青睐于计算机专业&#xff0c;那么计算机自考本科需要考哪些科目&#xff1f;难不难&#xff1f;自…

非对称加密

2019独角兽企业重金招聘Python工程师标准>>> 概念 非对称加密算法需要两个密钥&#xff1a;公钥&#xff08;publickey&#xff09;和私钥&#xff08;privatekey&#xff09;。公钥与私钥是一对&#xff0c;如果用公钥对数据进行加密&#xff0c;只有用对应的私…

政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化

政府公开数据可视化What do good speeches and good data visualisation have in common? More than you may think.好的演讲和好的数据可视化有什么共同点&#xff1f; 超出您的想象。 Aristotle — the founding father of all things public speaking — believed that th…

C++字符串完全指引之一 —— Win32 字符编码 (转载)

C字符串完全指引之一 —— Win32 字符编码原著&#xff1a;Michael Dunn翻译&#xff1a;Chengjie Sun 原文出处&#xff1a;CodeProject&#xff1a;The Complete Guide to C Strings, Part I 引言  毫无疑问&#xff0c;我们都看到过像 TCHAR, std::string, BSTR 等各种各样…

网络计算机无法访问 请检查,局域网电脑无法访问,请检查来宾访问帐号是否开通...

局域网电脑无法访问&#xff0c;有时候并不是由于网络故障引起的&#xff0c;而是因为自身电脑的一些设置问题&#xff0c;例如之前谈过的网络参数设置不对造成局域网电脑无法访问。今天分析另一个电脑设置的因素&#xff0c;它也会导致局域网电脑无法访问&#xff0c;那就是宾…

雷军的金山云D轮获3亿美元!投后估值达19亿美金

12月12日&#xff0c;雷军旗下金山云宣布D轮完成3亿美元融资&#xff0c;金额为云行业单轮融资最高。至此金山云投后估值达到19亿美元&#xff0c;成为国内估值最高的独立云服务商。金山集团相关公告显示&#xff0c;金山云在本轮融资中总计发行3.535亿股D系列优先股。骊悦投资…

转:利用深度学习方法进行情感分析以及在海航舆情云平台的实践

http://geek.csdn.net/news/detail/139152 本文主要为大家介绍深度学习算法在自然语言处理任务中的应用——包括算法的原理是什么&#xff0c;相比于其他算法它具有什么优势&#xff0c;以及如何使用深度学习算法进行情感分析。 原理解析 在讲算法之前&#xff0c;我们需要先剖…

消费者行为分析_消费者行为分析-是否点击广告?

消费者行为分析什么是消费者行为&#xff1f; (What is Consumer Behavior?) consumer behavior is the study of individuals, groups, or organizations and all the activities associated with the purchase, use, and disposal of goods and services, and how the consu…

魅族mx5游戏模式小熊猫_您不知道的5大熊猫技巧

魅族mx5游戏模式小熊猫重点 (Top highlight)I’ve been using pandas for years and each time I feel I am typing too much, I google it and I usually find a new pandas trick! I learned about these functions recently and I deem them essential because of ease of u…