本文示例代码及数据已上传至我的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列),并为其新增点要素矢量列:

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那样自由切换底图,其传入花样为:

{
    'url': 舆图源url, 
    'attribution': 自定义字符串,必填
}

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

图4

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

图5 图6

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

图7

  以上就是本文的全部内容,迎接在谈论区与我们举行讨论~

,

欧博亚洲官方注册

欢迎进入欧博亚洲官方注册(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

Allbet Gaming声明:该文看法仅代表作者自己,与阳光在线无关。转载请注明:allbetgmaing电脑版下载:(数据科学学习手札89)geopandas&geoplot近期主要更新
发布评论

分享到:

云博:5月28日最新疫情转达︱ 杭州[无新增!专家提醒:保持优越生活习惯,预防手足口病
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。