在日常生活中,处理的数据通常局限于行和列、条形图、饼图和直方图。然而,随着数据收集资源的增加和计算能力的提高,公司现在可以使用位置和地图数据来满足他们的数据和分析需求。
地图和位置数据使得数据和隐藏模式的可视化变得更加容易,这些模式在电子表格/Excel中可能之前是不可识别的。例如,一个包含城市中食品配送位置、订单成本、订购项目和其他参数的数据集。当这些数据在地图上可视化时,将有助于识别距离、接近度、集群等因素。在地图上绘制的基于位置的数据为提供了展示更多信息的选项,并且具有更易见性。
地理空间分析是一种基于GPS数据、传感器、移动设备、卫星图像和其他来源构建和分析基于地图的可视化的技术。可视化可以是地图、图表、图形等。可识别的地图使得理解和行动变得容易。使用地理空间分析可以轻松理解基于位置的事件。位置方面通常决定各种趋势。例如,城市中的一个住宅区如果拥有更昂贵的房产,那么居住在那里的人很可能拥有更高的收入,并且他们会花费更多的钱。
地理空间分析有多种用途。地理空间分析可以用来绘制自然资源、追踪天气现象,如降雨、雪、湿度、气压等。对于电信数据,地理空间分析可以帮助理解连接强度、用户分布等参数。商业数据,如销售情况,可以绘制在地图上,以分析最有利可图的位置并做出更好的决策。城市规划和城市发展可以借助基于地图的分析技术来理解不断增长的人口对电力和水的需求。通过在地图上绘制数据,可以确定哪些地区需要紧急升级和更多供应,所有城市规划方面都可以轻松地通过适当的地理空间分析来完成。
Folium是一个Python库,可以用来可视化地理空间数据。Folium中的简单命令使其成为在地图上制作图表的最佳选择。Folium有来自Mapbox、OpenStreetMap和Stamen的许多内置图块,并且支持自定义图块。
pip install folium
安装Folium后,现在可以开始了。
import numpy as np
import pandas as pd
导入了NumPy和pandas。
kol = folium.Map(location=[22.57, 88.36], tiles='openstreetmap', zoom_start=12)
kol
在Python中创建了一个基本的加尔各答地图。它可以放大和缩小,并且可以移动。将在文章末尾分享Kaggle活页笔记本链接。现在让绘制一些有趣的位置。在Folium中,如果知道地图坐标,绘制位置非常容易。
# 添加地点标记
tooltip_1 = "这是维多利亚纪念馆"
tooltip_2 = "这是伊甸园"
folium.Marker(
[22.54472, 88.34273], popup="
维多利亚纪念馆
", tooltip=tooltip_1).add_to(kol)
folium.Marker(
[22.56487826917627, 88.34336378854425], popup="
伊甸园
", tooltip=tooltip_2).add_to(kol)
让看看这个图。现在,让在地图上添加不同类型的标记。
folium.Marker(
location=[22.55790780507432, 88.35087264462007],
popup="印度博物馆",
icon=folium.Icon(color="red", icon="info-sign"),
).add_to(kol)
以上代码的结果是,要了解标记的类型,可以查看文档。现在让看看不同类型的地图,Stamen Toner。
kol2 = folium.Map(location=[22.55790780507432, 88.35087264462007], tiles="Stamen Toner", zoom_start=13)
kol2
现在让看看生成的输出。向地图添加标记的目的是标记和识别某物。有了标记,就可以在地图上标记任何感兴趣的点。现在让向地图添加圆圈。
folium.Circle(
location=[22.585728381244373, 88.41462932675563],
radius=1500,
popup="盐湖",
color="blue",
fill=True,
).add_to(kol2)
folium.Circle(
location=[22.56602918189088, 88.36508424354102],
radius=2000,
popup="老加尔各答",
color="red",
fill=True,
).add_to(kol2)
让看看输出。地图是可以移动和交互的。在处理实际数据时,使用圆圈可以用于区域划分和区域标记。现在让来处理印度的地图。
india = folium.Map(location=[20.180862078886562, 78.77642751195584], tiles='openstreetmap', zoom_start=5)
india
要,在地图上选择任何特定的地方,可以更改坐标并编辑zoom_start参数。
# 添加3个地点,孟买、德里和加尔各答
loc= [(19.035698150834815, 72.84981409864244),(28.61271068361265, 77.22359851696532) ,
(22.564213404457185, 88.35872006950966)]
将在印度取三个城市,并在它们之间绘制一条线。
folium.PolyLine(locations = loc,
line_opacity = 0.5).add_to(india)
df_state=pd.read_csv("/kaggle/input/indian-census-data-with-geospatial-indexing/state wise centroids_2011.csv")
df_state.head()
# 为印度创建一个新地图,绘制所有邦的人口中心
# 创建地图
india2 = folium.Map(location=[20.180862078886562, 78.77642751195584], tiles='openstreetmap', zoom_start=4.5)
# 添加标记
for i in range (0,35):
state=df_state["State"][i]
lat=df_state["Latitude"][i]
long=df_state["Longitude"][i]
folium.Marker(
[lat, long], popup=state, tooltip=state).add_to(india2)
india2