geopandas 0.9.0重要新特性一览

简介: geopandas 0.9.0重要新特性一览

1 简介

就在几天前,geopandas释放了其最新正式版本0.9.0,作为一次比较大的版本更新,geopandas为我们带来了一系列新特性,今天的文章我们就来一起看看有哪些主要的功能变化吧~

图1

2 geopandas 0.9.0重要新特性一览

出于对稳定性的考虑,我选择新建虚拟环境来探索新版本geopandas,完整命令如下(顺便一提,0.9.0版本最低支持的Python版本为3.5):

conda create -n geopandas-env python=3.7 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y
conda activate geopandas-env
conda install geopandas=0.9.0 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y

2.1 read_file可直接读取存放单个矢量文件的zip压缩包

在以前的版本中,当我们的矢量文件存放在zip压缩包内时,使用gpd.read_file()直接读取时需要传入特殊格式的zip路径表达式(详见我以前撰写的geopandas系列教程「文件IO篇」),但在0.9.0版本中,当你的zip压缩包内只有单一图层的文件时,直接就可读取:

图2

2.2 新增对wkt与wkb格式的直接支持

在以前版本的geopandas中,是没有直接的API来与wkt/wkb格式进行交互的,往往需要配合shapely中的相关功能。

而在这次的更新中针对GeoSeries对象新增了from_wkt()from_wkb()to_wkt()以及to_wkb()四种方法,使得我们直接就可以轻松完成格式转换:

图3

2.3 新增高度z属性

在以前版本中,我们可以对点要素构成的GeoSeriesGeoDataFrame提取xy坐标属性,而在这次的更新中,额外新增了对高度z属性的支持:

图4

2.4 dissolve()方法新增无字段依赖模式

我在geopandas系列教程空间计算篇(上)带大家学习过用于对不同记录行矢量要素,按照某列或多列进行矢量融合的方法dissolve(),而新版本中的dissolve()中的by参数默认值为None,这时会不依赖任何其他字段,直接把所有记录行矢量要素融合为一行,非常的方便:

图5

2.5 新增estimate_utm_crs()方法自动推断投影坐标系

不管你的GeoDataFrameGeoSeries坐标参考系是什么,只要是合法可解析的,通过geopandas新版中增加的estimate_utm_crs()方法,都可以自动帮你推断最「合适」的经度带对应的横轴墨卡托投影坐标系:

图6

2.6 解决了explode()方法与pandas的冲突

我在geopandas系列教程空间计算篇(上)中还介绍过与dissolve()方法相反的explode()方法,它可以将多要素集合类型的GeoDataFrameGeoSeries自动拆分为每行包含单要素的结果,但熟悉pandas的小伙伴一定知道在pandas中存在着同名方法,用于将元素为数组类型如列表的单行记录拆成单元素构成的多行记录。

而以前版本geopandas中的explode()方法是不兼容pandas的,这意味着如果你既需要多部件矢量要素拆分,又需要按照数组型元素拆分,就得在geopandaspandas的数据结构之间转来转去,但新版本中两者得到了完美兼容~

图7

2.7 绘图无需descartes依赖

用过geopandas绘制面要素的朋友都知道,以前版本的geopandas是需要第三方依赖库descartes,但在0.9.0版本中再也不需要啦!

图8

目录
相关文章
|
算法 网络架构
router和route的区别?
router和route的区别?
958 0
|
前端开发 Java
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
868 0
|
编解码
STM32:ADC单通道(内含:1.实物图/接线图+2.代码部分如下+3.AD用到的库函数总结)
STM32:ADC单通道(内含:1.实物图/接线图+2.代码部分如下+3.AD用到的库函数总结)
955 0
STM32:ADC单通道(内含:1.实物图/接线图+2.代码部分如下+3.AD用到的库函数总结)
|
Rust 数据挖掘 数据处理
Polars库:数据分析的新星,性能与易用性的完美结合
Polars库:数据分析的新星,性能与易用性的完美结合
697 1
|
数据挖掘 定位技术 API
Python GIS神器geopandas 1.0版本来了
Python GIS神器geopandas 1.0版本来了
351 4
|
Python
利用Python判断一个数是否在列表中
利用Python判断一个数是否在列表中
1277 0
|
人工智能 API Python
|
机器学习/深度学习 自然语言处理 算法
【Transformer系列(1)】encoder(编码器)和decoder(解码器)
【Transformer系列(1)】encoder(编码器)和decoder(解码器)
6685 0
【Transformer系列(1)】encoder(编码器)和decoder(解码器)
|
前端开发
CSS中如何实现鼠标悬停效果?
CSS中如何实现鼠标悬停效果?
183 0
|
Docker 容器
docker --cpus 详解
docker --cpus 详解