前言 这篇文章依旧是基于上一篇文章(使用Python实现子区域数据分类统计)而写,此文章中介绍了使用 geopandas 的 overlay 函数对两个 GeoDataFrame 对象取相交或相异的部分...GeoDataframe 对象,假定为 data1 和 data2,两个对象均包含一个 Polygon 的 GeoSeries 列,对这两个对象执行 overlay 函数,如下: intersection_data = geopandas.overlay...(data1, data2, how='intersection') 首先需要在 Ubuntu 系统上安装 geopandas 类库,可以使用 pip 直接安装,不明所以的请自行搜索。...装完 geopandas 后需要安装 Rtree 类库,执行如下命令: pip install Rtree 安装完毕后执行上面的 overlay 语句,Windows 下能够正常运行,在 Ubuntu...attribute 'intersection' 难道 data1 或者 data2 为空了,反复检查不存在这个问题,那应该是 overlay 函数里面出问题了吧,再详细的跟踪、查看日志发现另一个错误: TypeError
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在前两天,Python...python版本提升至3.9: 因此,推荐大家以3.9版本作为建立GIS运算Python环境的基础,这里我们以conda为例,直接建立新的虚拟环境来做演示(下面的命令中为了加速下载过程使用到相关国内...conda资源镜像): conda create -n geopandas-demo python=3.9 -c https://mirrors.sustech.edu.cn/anaconda/pkgs...用于直接从任意类型目标矢量中提取全部折点要素: 2.3.4 新增frechet_distance()方法 新增frechet_distance()方法,用于计算弗雷歇距离(fréchet distance),是一种用来度量路径之间相似度的经典数学方法...: 举个例子,我们构造如下的四条路径线要素,肉眼上很容易看出a与b,c与d各自相似度最高: 而通过frechet_distance()计算两两之间的弗雷歇距离,也可以从数值计算角度准确计算得到彼此最相似的路径
1 简介 大家好我是费老师,就在前两天,Python生态中的GIS运算神器geopandas发布了其0.14.0新版本,在这次新版本更新中,不仅是新增了许多矢量计算API,还开始为日后正式发布1.0...python版本提升至3.9: 因此,推荐大家以3.9版本作为建立GIS运算Python环境的基础,这里我们以conda为例,直接建立新的虚拟环境来做演示(下面的命令中为了加速下载过程使用到相关国内conda...资源镜像): conda create -n geopandas-demo python=3.9 -c https://mirrors.sustech.edu.cn/anaconda/pkgs/main...用于直接从任意类型目标矢量中提取全部折点要素: 2.3.4 新增frechet_distance()方法 新增frechet_distance()方法,用于计算弗雷歇距离(fréchet distance),是一种用来度量路径之间相似度的经典数学方法...: 举个例子,我们构造如下的四条路径线要素,肉眼上很容易看出a与b,c与d各自相似度最高: 而通过frechet_distance()计算两两之间的弗雷歇距离,也可以从数值计算角度准确计算得到彼此最相似的路径
转换为 Dask-GeoPandas DataFrame 首先,使用 GeoPandas 读取地理数据文件: python import geopandas df = geopandas.read_file...('...') # 使用你的文件路径替换 '...'...然后,将其转换为 Dask-GeoPandas DataFrame: python import dask_geopandas 将 GeoPandas DataFrame 分区为 Dask-GeoPandas...python 执行空间重分区 ddf = ddf.spatial_shuffle() GeoPandas 的熟悉的空间属性和方法也可用,并且将并行计算: python 计算几何对象的面积 ddf.geometry.area.compute...python import dask.dataframe as dd import dask_geopandas 从 CSV 文件读取数据 ddf = dd.read_csv('...') # 使用你的文件路径替换
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,前不久我在一篇文章中给大家分享过geopandas...图片 2 详解geopandas中的pyogrio读写引擎 geopandas0.11版本之后新增的pyogrio引擎,基于geopandas团队开发的同名Python库,其基于OGR,而OGR则是著名的开源栅格空间数据转换框架...2.1 基于pyogrio的矢量文件读取 对于0.11及以后版本的geopandas,向read_file()中传入engine='pyogrio'后,即可切换至底层基于pyogrio.read_dataframe...shapefile文件时,不能正常的解析内容,而针对GeoJSON、gpkg等其他格式矢量文件时则一切正常: GeoJSON文件正常 gpkg文件正常 shapefile文件乱码,亲测即使指定encoding也无效...#geopandas-integration阅读了解更多。 ---- 以上就是本文的全部内容,欢迎在评论区与我进行讨论~
图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 2.1 read_file可直接读取存放单个矢量文件的zip压缩包 在以前的版本中,当我们的矢量文件存放在zip压缩包内时,使用gpd.read_file()直接读取时需要传入特殊格式的zip路径表达式...图7 2.7 绘图无需descartes依赖 用过geopandas绘制面要素的朋友都知道,以前版本的geopandas是需要第三方依赖库descartes,但在0.9.0版本中再也不需要啦!...图8 除此之外,geopandas还提供了很多小的新特性,这里就不再一一赘述,感兴趣的读者朋友可以在https://github.com/geopandas/geopandas/releases/tag
0.9.0,作为一次比较大的版本更新,geopandas为我们带来了一系列新特性,今天的文章我们就来一起看看有哪些主要的功能变化吧~ 图1 2 geopandas 0.9.0重要新特性一览 出于对稳定性的考虑...,我选择新建虚拟环境来探索新版本geopandas,完整命令如下(顺便一提,0.9.0版本最低支持的Python版本为3.5): conda create -n geopandas-env python...read_file可直接读取存放单个矢量文件的zip压缩包 在以前的版本中,当我们的矢量文件存放在zip压缩包内时,使用gpd.read_file()直接读取时需要传入特殊格式的zip路径表达式(详见我以前撰写的...geopandas系列教程「文件IO篇」),但在0.9.0版本中,当你的zip压缩包内只有单一图层的文件时,直接就可读取: 图2 2.2 新增对wkt与wkb格式的直接支持 在以前版本的geopandas...图8 除此之外,geopandas还提供了很多小的新特性,这里就不再一一赘述,感兴趣的读者朋友可以在https://github.com/geopandas/geopandas/releases/tag
geopandas。...在控制台中直接进入python,检查geopandas是否正确安装: (python_spatial) C:\Users\hp>python Python 3.7.7 (default, Mar 23...譬如我们导出前面创建好的python_spatial到所需路径下: (python_spatial) C:\Users\hp>conda env export > C:\Users\hp\Desktop...-f 路径\文件名.yml。...而如果想要修改某个kernel的显示名称,可以同样在对应的虚拟环境下使用jupyter kernelspec list查看每个kernel以及其对应的路径,前往路径下把kernel.json中display_name
图1 最重要的是,QGIS面向Python的接口PyQgis不仅可以用来开发QGIS插件,还可以配合Conda完美地避开路径配置的过程,直接与Conda虚拟环境集成在一起,从而随心所欲地在jupyter...notebook之类的编辑器中书写Python代码调用各种QGIS中的地理计算功能,进而弥补geopandas在某些功能上的尚未完善之处。...在已经正确安装和配置anaconda或miniconda的机器上,在终端执行conda create -n QGIS python=3.7 -y来建立一个Python虚拟环境,这里选择3.7版本的Python...图6 如果你可以成功执行上述代码,那么恭喜你已经完成了所有环境配置工作,因为是集成在conda虚拟环境中的,所以我们免去了所有配置QGIS相关路径的工作(爽翻了是不是~)。 ...为了方便下面的功能演示我们顺便把geopandas也安装了: conda install -c conda-forge geopandas -y 接下来我们先来查看所有可用的QGIS中的算法功能:
图1 最重要的是,QGIS面向Python的接口PyQgis不仅可以用来开发QGIS插件,还可以配合Conda完美地避开路径配置的过程,直接与Conda虚拟环境集成在一起,从而随心所欲地在jupyter...notebook之类的编辑器中书写Python代码调用各种QGIS中的地理计算功能,进而弥补geopandas在某些功能上的尚未完善之处。...在已经正确安装和配置anaconda或miniconda的机器上,在终端执行conda create -n QGIS python=3.7 -y来建立一个Python虚拟环境,这里选择3.7版本的Python...接着我们创建新的notebook,测试一下QGIS是否可以正确导入: 图6 如果你可以成功执行上述代码,那么恭喜你已经完成了所有环境配置工作,因为是集成在conda虚拟环境中的,所以我们免去了所有配置QGIS相关路径的工作...为了方便下面的功能演示我们顺便把geopandas也安装了: conda install -c conda-forge geopandas -y 接下来我们先来查看所有可用的QGIS中的算法功能: #
(这种网络类型忽略单向方向性) 'bike' - 获取骑自行车者可以使用的所有街道和路径 'all' - 下载所有(非私有)OSM 街道和路径 'all_private' - 下载所有 OSM 街道和路径...preserve_topology (bool, 默认值为 True): 如果为False,则使用更快的算法,但可能会产生自相交或其他无效的几何体。...注意: 如果不保留拓扑结构,简化可能会导致无效的几何对象,而且简化可能对坐标的顺序敏感:仅在坐标顺序上不同的两个几何体可能会被不同地简化....3.1 使用geopandas找到街景点(方法1) 建议用方法一,因为速度更快。如果你想学如果使用ArcGIS Python也就是Arcpy如何处理空间数据,也推荐看看第二种方法。...的基本知识: https://www.runoob.com/python3/python3-tutorial.html [5] isinstance: https://www.runoob.com/python
),这代表我们已经进入激活的python_spatial环境中,接着我们就可以使用conda命令在当前环境中安装geopandas,按照官网的推荐方式从conda-forge对应的channel进行安装...python,检查geopandas是否正确安装: (python_spatial) C:\Users\hp>python Python 3.7.7 (default, Mar 23 2020, 23:...图7 2.3 虚拟环境的备份和恢复 conda提供了将虚拟环境导出为yaml文件的功能,使得我们可以保留好不容易创建好的虚拟环境中的配置信息,格式如conda env export > 导出路径\文件名....yml,譬如我们导出前面创建好的python_spatial到所需路径下: (python_spatial) C:\Users\hp>conda env export > C:\Users\hp\Desktop...-f=路径\文件名.yml,譬如我们就在本机上用已经导出的python_spatial.yml复制为新的虚拟环境,耐心等待之后conda会自动完成前面所有我们手动实现的步骤: conda create
而Python中的 geopandas 和 shapely 是两个非常强大的库,提供了便捷的功能来处理和可视化地理空间数据。...安装所需库 首先,我们需要安装 geopandas 和 shapely 库。可以通过以下命令来安装: pip install geopandas pip install shapely 2....通过下面代码,我们可以使用 geopandas 库中的 read_file 函数来读取 Shapefile 文件,并将其保存为一个 GeoDataFrame 对象: import geopandas...定义一个变量 shp_file,指定 Shapefile 文件的路径。...定义一个变量 new_shp_file,指定保存新 Shapefile 文件的路径。 使用 gdf.to_file() 函数将更新后的地理数据保存为新的 Shapefile 文件。
我通过geopandas库实现了这一需求,在这里简单记录之,供需要的人借鉴。 二、geopandas简介 想必大家对pandas都不陌生,它是一个开源的强大的Python数据分析工具。...pandas确实做到了灵活、快速、高效的进行数据处理,而geopandas是在pandas的基础上添加了对空间数据的支持,实现了读取空间数据以及对空间数据进行处理。...3.1 引入geopandas 为了使用geopandas库,首先需要将其引入。...provincedata = GeoDataFrame.from_file(provinceshpfile) 代码很简单,只要给GeoDataFrame.from_file函数传入shp文件路径即可...geopandas进行投影转换很简单。
前言 将近两年前,我写过一篇同名文章(见使用Python实现子区域数据分类统计)。 当时是为了统计县域内的植被覆盖量,折腾了一段时间,解决了这个问题。...想到这,就开始翻看 geopandas 的用户手册,果然让我找到了。 解决路径 1....包引用 from geopandas import * from shapely.geometry import * 2....创建两个 GeoDataFrame 对象 geopandas 可以直接将 shp 文件读为 GeoDataFrame 对象,如下: shpdata = GeoDataFrame.from_file(path...参考http://geopandas.org/set_operations.html 大意是说当执行两个空间对象的相交、合并、取异操作的时候就可以使用此函数。
可以加快访问速度•.dbf 数据库文件,包括几何要素的属性信息•其他 .prj 以WKT格式存储的地图投影信息 Shapefile文件是一个整体,重命名文件和编辑文件时,需要相关文件保持一致,否则很容易导致数据错误无效...文件头基本包含行列数,起始坐标,单位,无效值的定义等信息 全球文件 世界文件由一些简单的文本构成,能够以外部文件的形式提供地理空间参考信息,世界文件结构非常简单,常包含的信息包括:•x方向单位大小•y轴偏转角的...此外python中也提供了元素树(ElementTree)解析XML的工具,允许使用路径样式的语法对XML文档进行查询。...GeoPandas GeoPandas是由Shapely,Fiona,PyProj,matplotlib以及其他必需的库一同构建的Pandas的地理空间扩展。...plt gdf=geopandas.GeoDataFrame census=gdf.from_file("GIS_CENSUS_poly.shp") census.plot() plot.show()
了解了上述步骤之后,我们利用requests、geopandas等库仅用不到100行代码就可以参考上述过程,提取所需的shapefile或GeoJSON文件保存到本地,具体的代码部分本文不做详细说明,我将这部分功能封装到文章开头对应...编写小工具下载OSM路网数据/OsmDownloader.py )中,可以自行去下载并使用,下面我们来学习如何在Python中使用它。...2.2 使用方式 按照上文所述的地址下载对应脚本之后(请提前安装完成requests、geopandas、pandas以及tqdm这几个三方库),记住其所在路径,接着在其他脚本开头导入模块部分添加:...import sys sys.path.append(r'所在路径') from OsmDownloader import OsmDownloader 这样才能成功导入没有在Python中注册过的独立模块...') # path参数控制文件保存的路径 程序运行后稍等片刻即可完成下载(具体的耗时取决于你的网络状况),譬如这里我花了不到20秒就完成成都市路网数据的下载: ?
作为基于geopandas的空间数据分析系列文章的第五篇,通过本文你将会学习到基于geopandas和机器学习的分层设色。...,又因为箱线图可以看作无监督问题,故分层数量k在这里无效,删去: fig, ax = plt.subplots(figsize=(10, 10)) ax = data_with_geometry.to_crs...具体的代码较多,请在文章开头的Github仓库中对应本文路径下查看: 图14 其中颜色区分对应迭代轮次的数据分层归属,虚线代表对应迭代轮次的间断点,仔细可以看出在迭代过程中数据分层的变化情况。...2.2.1 基于palettable的配色 下面我要给大家介绍的Python第三方库palettable在我之前关于词云图的一篇文章中介绍stylecloud时介绍过,是专门帮助我们为可视化作品配色的。...palettable不依赖其他三方库,纯Python实现,其强大之处在于内置了数量惊人的经典配色方案[5]。
图5 Step3: 渲染路网: 图6 了解了上述步骤之后,我们利用requests、geopandas等库仅用不到100行代码就可以参考上述过程,提取所需的shapefile或GeoJSON文件保存到本地...下面我们来学习如何在Python中使用它。 2.2 使用方式 提示:请提前安装完成requests、geopandas、pandas以及tqdm这几个三方库。...按照上文所述的地址下载对应脚本之后,记住其所在路径,接着在其他脚本开头导入模块部分添加: import sys sys.path.append(r'所在路径') from OsmDownloader import...OsmDownloader 这样才能成功导入没有在Python中注册过的独立模块。...') # path参数控制文件保存的路径 程序运行后稍等片刻即可完成下载(具体的耗时取决于你的网络状况)。
本文介绍了如何使用 Python 对大规模地理空间数据进行可视化。...导入库 第一步导入一些库(例如 datashader、geopandas 和 colorcet)开始本教程。...Geopandas 用于在 Python 中处理空间数据,基本上它用于输入/输出空间数据、空间处理和分析。 最后,colorcet 库用于颜色映射。...export_path="export")export(tf.shade(agg, cmap=colormap),"philippines roads") 总之,该代码设置了一个需要指定背景颜色和导出路径的函数...这就是使用 Python 进行地理空间大数据可视化的全部教程。在本教程中,我们学习了如何使用 Python 中的 Datashader 读取大数据、数据聚合以及创建可视化。希望本教程有用
领取专属 10元无门槛券
手把手带您无忧上云