(数据科学学习手札111)geopandas 0.9.0重要新特性一览
本文示例文件已上传至我的
Github
仓库https://github.com/CNFeffery/DataScienceStudyNotes
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属性
在以前版本中,我们可以对点要素构成的GeoSeries
或GeoDataFrame
提取x
与y
坐标属性,而在这次的更新中,额外新增了对高度z
属性的支持:
图4
2.4 dissolve()方法新增无字段依赖模式
我在geopandas
系列教程空间计算篇(上)带大家学习过用于对不同记录行矢量要素,按照某列或多列进行矢量融合的方法dissolve()
,而新版本中的dissolve()
中的by
参数默认值为None,这时会不依赖任何其他字段,直接把所有记录行矢量要素融合为一行,非常的方便:
图5
2.5 新增estimate_utm_crs()方法自动推断投影坐标系
不管你的GeoDataFrame
或GeoSeries
坐标参考系是什么,只要是合法可解析的,通过geopandas
新版中增加的estimate_utm_crs()
方法,都可以自动帮你推断最合适的经度带对应的横轴墨卡托投影坐标系:
图6
2.6 解决了explode()方法与pandas的冲突
我在geopandas
系列教程空间计算篇(上)中还介绍过与dissolve()
方法相反的explode()
方法,它可以将多要素集合类型的GeoDataFrame
或GeoSeries
自动拆分为每行包含单要素的结果,但熟悉pandas
的小伙伴一定知道在pandas
中有同名方法,用于将元素为数组类型如列表的单行记录拆成单元素构成的多行记录。
而以前版本geopandas
中的explode()
方法是不兼容pandas
的,这意味着如果你既需要多部件矢量要素拆分,又需要按照数组型元素拆分,就得在geopandas
与pandas
的数据结构之间转来转去,但新版本中两者得到了完美兼容~
图7
2.7 绘图无需descartes依赖
用过geopandas
绘制面要素的朋友都知道,以前版本的geopandas
是需要第三方依赖库descartes
,但在0.9.0
版本中再也不需要啦!
图8
除此之外,geopandas
还提供了很多小的新特性,这里就不再一一赘述,感兴趣的读者朋友可以在https://github.com/geopandas/geopandas/releases/tag/v0.9.0
详细查看。
以上就是本文的全部内容,欢迎在评论区与我进行讨论~
(数据科学学习手札111)geopandas 0.9.0重要新特性一览的更多相关文章
- (数据科学学习手札129)geopandas 0.10版本重要新特性一览
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在前不久,我们非常熟悉的Python地理 ...
- (数据科学学习手札139)geopandas 0.11版本重要新特性一览
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在几天前,geopandas ...
- (数据科学学习手札75)基于geopandas的空间数据分析——坐标参考系篇
本文对应代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中我们对geopandas中的数据结 ...
- (数据科学学习手札55)利用ggthemr来美化ggplot2图像
一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原 ...
- (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)
一.简介 接着几个月之前的(数据科学学习手札31)基于Python的网络数据采集(初级篇),在那篇文章中,我们介绍了关于网络爬虫的基础知识(基本的请求库,基本的解析库,CSS,正则表达式等),在那篇文 ...
- (数据科学学习手札49)Scala中的模式匹配
一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...
- (数据科学学习手札47)基于Python的网络数据采集实战(2)
一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集 ...
- (数据科学学习手札44)在Keras中训练多层感知机
一.简介 Keras是有着自主的一套前端控制语法,后端基于tensorflow和theano的深度学习框架,因为其搭建神经网络简单快捷明了的语法风格,可以帮助使用者更快捷的搭建自己的神经网络,堪称深度 ...
- (数据科学学习手札42)folium进阶内容介绍
一.简介 在上一篇(数据科学学习手札41)中我们了解了folium的基础内容,实际上folium在地理信息可视化上的真正过人之处在于其绘制图像的高度可定制化上,本文就将基于folium官方文档中的一些 ...
随机推荐
- 蓝桥杯-摔手机问题【dp】
非常详细的题解:戳这里 例题:poj-3783 Balls Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 115 ...
- codeforces 7B
B. Memory Manager time limit per test 1 second memory limit per test 64 megabytes input standard inp ...
- Os-hackNos-1(drupal7+suid提权)
一.信息收集 得到 ip是 192.168.56.101 , 端口开启了22和80,扫目录发现drupal 7 访问一下呢 在exploit-db上面搜索到存在相关的漏洞,而且是用直接上msf 使用第 ...
- hihoCoder Challenge 3
#1065 : 全图传送 时间限制:30000ms 单点时限:3000ms 内存限制:256MB 描述 先知法里奥是 Dota 系列中的一个英雄.机动性强,推塔能力一流,打钱速度快,传送技能使先知可以 ...
- TypeScript TSConfig All In One
TypeScript TSConfig All In One tsconfig.json https://www.typescriptlang.org/tsconfig https://www.typ ...
- 联合登录 & OAuth 2.0 & OpenID
联合登录 & OAuth 2.0 & OpenID 第三方联合登录一般可以降低网站的获客成本,所以一般的网站都会做一些联合登录,常用的就是QQ.微信.微博; https://www.z ...
- js & void & undefined & null
js & void & undefined & null The void operator evaluates the given expression and then r ...
- Async Programming All in One
Async Programming All in One Async & Await Frontend (async () => { const url = "https:// ...
- 伦尼斯酒庄(Chateau Renice)再次赞助亚洲50大餐厅赛事
连续几年来,伦尼斯酒庄(Chateau Renice)一直是亚洲50大最佳餐厅评选赛(Asia's 50 Best Restaurant Awards)的赞助商.2020年伦尼斯酒庄酒庄(Chatea ...
- 金三银四助力面试-手把手轻松读懂HashMap源码
前言 HashMap 对每一个学习 Java 的人来说熟悉的不能再熟悉了,然而就是这么一个熟悉的东西,真正深入到源码层面却有许多值的学习和思考的地方,现在就让我们一起来探索一下 HashMap 的源码 ...