Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >geopandas&geoplot近期重要更新

geopandas&geoplot近期重要更新

作者头像
朱卫军 AI Python
发布于 2022-04-03 02:18:46
发布于 2022-04-03 02:18:46
80500
代码可运行
举报
运行总次数:0
代码可运行

❝本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes ❞

1 简介

最近一段时间(本文写作于2020-07-10)geopandasgeoplot两个常用的GIS类Python库都进行了一系列较为重大的内容更新,新增了一些特性,本文就将针对其中比较实际的新特性进行介绍。

2 geopandas&geoplot近期重要更新内容

2.1 geopandas近期重要更新

2.1.1 新增高性能文件格式

geopandas0.8.0版本开始,在矢量文件读写方面,新增了.feather.parquet两种崭新的数据格式,他们都是Apache Arrow项目下的重要数据格式,提供高性能文件存储服务,使得我们可以既可以快速读写文件,又可以显著减少文件大小,做到了“多快好省”:

图1

在将geopandas更新到0.8.0版本后,便新增了read_feather()to_feather()read_parquet()以及to_parquet()这四个API,但要「注意」,这些新功能依赖于pyarrow,首先请确保pyarrow被正确安装,推荐使用conda install -c conda-forge pyarrow来安装。

安装完成后,我们就来一睹这些新功能的效率如何,首先我们创建一个足够大的虚拟表(200万行11列),并为其新增点要素矢量列:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
from shapely.geometry import Point
import pandas as pd
from tqdm.notebook import tqdm

# 创建虚拟表,其中字段名为了导出shapefile不报错加上非数字的前缀
base = pd.DataFrame(np.column_stack([np.random.randint(1, 100, (2000000, 10)), 
                                     np.random.uniform(-90, 90, (2000000, 2))]),
                    columns=['_'+str(i) for i in range(12)])

tqdm.pandas() # 开启apply进度条
base['geometry'] = base.progress_apply(lambda row: Point(row['_10'], row['_11']), axis=1) # 添加矢量列

base = gpd.GeoDataFrame(base, crs='EPSG:4326') # 转换为GeoDataFrame

最终得到一个较为庞大的GeoDataFrame,接着我们分别测试geopandas读写shapefilefeather以及parquet三种数据格式的耗时及文件占硬盘空间大小:

图2

图3

具体的性能比较结果如下,可以看到与原始的shapefile相比,featherparquet取得了非常卓越的性能提升,且parquet的文件体积非常小:

类型

写出耗时

读入耗时

写出文件大小

shapefile

325秒

96秒

619MB

feather

50秒

25.7秒

128MB

parquet

52.4秒

26秒

81.2MB

所以当你要存储的矢量数据规模较大时,可以尝试使用featherparquet来代替传统的文件格式。

2.2 geoplot近期重要更新

2.2.1 webplot在线底图切换方式升级

在之前我们出品的「基于geopandas的空间数据分析系列文章中的**geoplot篇(上)**中,对可以添加在线底图的webplot()进行过介绍,但在先前的版本中只能使用固定的少数几种内置的在线地图,而在最近的版本中,webplot()的底图叠加方式进行了非常大的调整,使得可以利用参数provider来像folium那样自由切换底图,其传入格式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    'url': 地图源url, 
    'attribution': 自定义字符串,必填
}

譬如我们可以在一个神奇的网站 http://openwhatevermap.xyz/#3/-60.50/167.87 上点击自己感兴趣的地图样式:

图4

将对应的url和自定义的attribution传入webplot()中:

图5

图6

你也可以利用下面的方式查看contextily中所有内置的底图参数,从中选择你心仪的底图:

图7

以上就是本文的全部内容,欢迎在评论区与我们进行讨论~

-END-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
又见dask! 如何使用dask-geopandas处理大型地理数据
读者的问题涉及到地理信息系统(GIS)操作的一系列步骤,具体包括将栅格数据转换为点数据、为这些点数据添加XY坐标、通过空间连接给这些点添加行政区属性、以及计算指定行政区的质心。读者在使用ArcGIS软件完成前两步时未遇到明显问题,但在执行第三步时遇到了性能瓶颈,即使用ArcGIS和GeoPandas进行空间连接操作时系统会卡死。为了解决这个问题,读者尝试使用了dask-geopandas来处理约两百万个点的数据,但似乎遇到了错误。
用户11172986
2024/06/20
2490
又见dask! 如何使用dask-geopandas处理大型地理数据
(数据科学学习手札77)基于geopandas的空间数据分析——文件IO
  在上一篇文章中我们对geopandas中的坐标参考系有了较为深入的学习,而在日常空间数据分析工作中矢量文件的读入和写出,是至关重要的环节。
Feffery
2020/02/26
2.1K0
(数据科学学习手札82)基于geopandas的空间数据分析——geoplot篇(上)
  在前面的基于geopandas的空间数据分析系列文章中,我们已经对geopandas的基础知识、基础可视化,以及如何科学绘制分层设色地图展开了深入的学习,而利用geopandas+matplotlib进行地理可视化固然能实现常见的地图可视化,且提供了操纵图像的极高自由度,但对使用者matplotlib的熟悉程度要求较高,制作一幅地图可视化作品往往需要编写较多的代码,而geoplot基于geopandas,提供了众多高度封装的绘图API,很大程度上简化了绘图难度,就像seaborn之于matplotlib。
Feffery
2020/05/07
2.3K0
(数据科学学习手札82)基于geopandas的空间数据分析——geoplot篇(上)
(数据科学学习手札83)基于geopandas的空间数据分析——geoplot篇(下)
在上一篇文章中我们详细学习了geoplot中较为基础的三种绘图API:pointplot()、polyplot()以及webmap(),而本文将会承接上文的内容,对geoplot中较为实用的几种高级绘图API进行介绍。
Feffery
2020/05/21
1.8K0
(数据科学学习手札83)基于geopandas的空间数据分析——geoplot篇(下)
(数据科学学习手札139)geopandas 0.11版本重要新特性一览
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   大家好我是费老师,就在几天前,geopandas发布了其0.11.0正式版本,距离其上一个版本(0.10.2)发布已过去大半年,在这一次的新版本更新中又为我们带来了哪些重要的新特性呢,今天的文章中我就来带大家一探究竟😋。 2 geopandas 0.11版本重要新特性一览   你可以在旧版本geopandas的基础上进行升级,也可以新建虚拟环境直接安装
Feffery
2022/06/27
6000
(数据科学学习手札139)geopandas 0.11版本重要新特性一览
(数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇
geopandas是建立在GEOS、GDAL、PROJ等开源地理空间计算相关框架之上的,类似pandas语法风格的空间数据分析Python库,其目标是尽可能地简化Python中的地理空间数据处理,减少对Arcgis、PostGIS等工具的依赖,使得处理地理空间数据变得更加高效简洁,打造纯Python式的空间数据处理工作流。本系列文章就将围绕geopandas及其使用过程中涉及到的其他包进行系统性的介绍说明,每一篇将尽可能全面具体地介绍geopandas对应方面的知识,计划涵盖geopandas的数据结构、投影坐标系管理、文件IO、基础地图制作、集合操作、空间连接与聚合。   作为基于geopandas的空间数据分析系列文章的第一篇,通过本文你将会学习到geopandas中的数据结构。 geopandas的安装和使用需要若干依赖包,如果不事先妥善安装好这些依赖包而直接使用pip install geopandas或conda install geopandas可能会引发依赖包相关错误导致安装失败,官方文档中的推荐安装方式为:
Feffery
2020/02/15
2.8K0
geopandas:Python绘制数据地图
GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。 GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。 GeoPandas的官方文档地址为:GeoPandas-doc。 本文主要参考GeoPandas Examples Gallery。 GeoPandas的基础使用见Python绘制数据地图1-GeoPandas入门指北。 GeoPandas的可视化入门见Python绘制数据地图2-GeoPandas地图可视化。
luckpunk
2023/09/14
3.6K0
geopandas:Python绘制数据地图
geopandas,用python画地图原来这么简单!
pandas应该是大家非常熟悉的Python第三方库,其主要用于数据整理和分析,这次来介绍pandas的一个近亲-geopandas
朱卫军 AI Python
2022/04/02
3.1K0
geopandas,用python画地图原来这么简单!
(数据科学学习手札129)geopandas 0.10版本重要新特性一览
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   就在前不久,我们非常熟悉的Python地理空间分析库geopandas更新到了0.10.0版本,而伴随最近一段时间其针对新版本的一些潜在bug进行的修复,写作本文时最新的正式版本为0.10.2。此次0.10.x版本为我们带来了诸多令人兴奋的新功能新特性,本文就将带大家一睹其中一些比较重要的内容😋。 2 geopandas 0.10版本重要新
Feffery
2021/10/29
1K0
(数据科学学习手札129)geopandas 0.10版本重要新特性一览
#Python实战#神器Geopandas一行代码算出每个省面积
它继承pandas.Series和pandas.Dataframe,实现了GeoSeries和GeoDataFrame类,使得其操纵和分析平面几何对象非常方便。
查理不是猹
2021/12/23
6080
python可视化 | 地理桑基图的绘制方法
我回答目前常用的库包不能直接绘制这样的桑基图,我错了,应该回答是目前常用的库包不能绘制这样漂亮些的桑基图。
郭好奇同学
2021/05/28
1.7K0
python可视化 | 地理桑基图的绘制方法
基于geopandas的精美地图绘制:geoplot
由于可视化代码过长隐藏,可点击运行Fork查看 若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
用户11172986
2024/10/08
1080
基于geopandas的精美地图绘制:geoplot
(数据科学学习手札130)利用geopandas快捷绘制在线地图
  在上一篇文章中,我为大家介绍了不久前发布的geopandas 0.10版本的诸多新特性,而其中介绍到的地图可视化新方法explore()只是一带而过,没有仔细为大家介绍其功能用法。今天的文章我就将为大家详细介绍新版geopandas中,利用explore()制作在线地图可视化的方法:
Feffery
2021/11/11
1.7K0
(数据科学学习手札130)利用geopandas快捷绘制在线地图
geopandas 0.14版本重要更新内容一览
大家好我是费老师,就在前两天,Python生态中的GIS运算神器geopandas发布了其0.14.0新版本,在这次新版本更新中,不仅是新增了许多矢量计算API,还开始为日后正式发布1.0版本做准备,对一些底层依赖版本进行改动。今天的文章中,我就将为大家一一介绍相关的更新内容:
朱卫军 AI Python
2023/09/18
3470
geopandas 0.14版本重要更新内容一览
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
首先,我们需要安装 geopandas 和 shapely 库。可以通过以下命令来安装:
全栈若城
2024/02/29
2.9K0
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)
GeoJSON是一种编码各种地理数据结构的格式。它是JSON(JavaScript Object Notation)的一个地理空间扩展,用于在网络中交换地理数据。GeoJSON对象可以表示几何(点、线、面)、特征(包含几何和属性的对象)以及特征集合。
watermelo37
2025/01/22
5430
shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)
(数据科学学习手札111)geopandas 0.9.0重要新特性一览
就在几天前,geopandas释放了其最新正式版本0.9.0,作为一次比较大的版本更新,geopandas为我们带来了一系列新特性,今天的文章我们就来一起看看有哪些主要的功能变化吧~
Feffery
2021/03/15
8200
(数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)
  在本系列之前的文章中我们主要讨论了geopandas及其相关库在数据可视化方面的应用,各个案例涉及的数据预处理过程也仅仅涉及到基础的矢量数据处理。在实际的空间数据分析过程中,数据可视化只是对最终分析结果的发布与展示,在此之前,根据实际任务的不同,需要衔接很多较为进阶的空间操作,本文就将对geopandas中的部分空间计算进行介绍。
Feffery
2020/05/25
4K0
(数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)
是技术也是艺术 使用geopandas玩转地图可视化
通过前面的文章,我们已经对geopandas中的数据结构、坐标参考系以及文件IO有了较为深入的学习。
朱卫军 AI Python
2022/04/03
2.4K0
是技术也是艺术 使用geopandas玩转地图可视化
(数据科学学习手札162)Python GIS神器geopandas 1.0版本发布
  大家好我是费老师,就在昨天,Python生态中著名的GIS分析库geopandas发布了其1.0.0正式版本。
Feffery
2024/06/26
2040
(数据科学学习手札162)Python GIS神器geopandas 1.0版本发布
推荐阅读
又见dask! 如何使用dask-geopandas处理大型地理数据
2490
(数据科学学习手札77)基于geopandas的空间数据分析——文件IO
2.1K0
(数据科学学习手札82)基于geopandas的空间数据分析——geoplot篇(上)
2.3K0
(数据科学学习手札83)基于geopandas的空间数据分析——geoplot篇(下)
1.8K0
(数据科学学习手札139)geopandas 0.11版本重要新特性一览
6000
(数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇
2.8K0
geopandas:Python绘制数据地图
3.6K0
geopandas,用python画地图原来这么简单!
3.1K0
(数据科学学习手札129)geopandas 0.10版本重要新特性一览
1K0
#Python实战#神器Geopandas一行代码算出每个省面积
6080
python可视化 | 地理桑基图的绘制方法
1.7K0
基于geopandas的精美地图绘制:geoplot
1080
(数据科学学习手札130)利用geopandas快捷绘制在线地图
1.7K0
geopandas 0.14版本重要更新内容一览
3470
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
2.9K0
shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)
5430
(数据科学学习手札111)geopandas 0.9.0重要新特性一览
8200
(数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)
4K0
是技术也是艺术 使用geopandas玩转地图可视化
2.4K0
(数据科学学习手札162)Python GIS神器geopandas 1.0版本发布
2040
相关推荐
又见dask! 如何使用dask-geopandas处理大型地理数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验