首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python GIS神器shapely 2.0新版本来了

而就在几天前,shapely发布了其颇具里程碑意义的2.0正式版本,为我们带来了更加澎湃的运算性能提升,以及更稳定更丰富的新功能,今天的文章费老师我就来带大家一览shapely 2.0版本中的主要新特性...2 shapely 2.0重要新特性一览 通常我们不会专门去安装shapely,在安装geopandas的过程中它就顺带被安装上了,在我的本地示例虚拟环境中shapely原先的版本为1.8.5,通过执行...目前shapely的所有顶级API,以及shapely.ops等子模块下的顶级API均已支持向量化运算特性,具体见shapely中的API文档是否如下图所示提及ufunc: 2.2 矢量对象不可变 在以前的版本中...,shapely中的矢量要素对象是可变的,譬如对于LineString要素,可以在被创建后,通过为其coords属性赋值新的坐标串信息以改变其矢量信息: 而从2.0.0开始,shapely中所有的矢量要素变为不可变对象...,这意味着它们「可hash」,譬如可以作为字典的键,或pandas分组运算的分组依据等: 2.3 矢量要素类可作为顶级API使用 从上面的几个例子中你也可以发现,新版shapely中我们可以直接从shapely

1.1K10

讲解python多边形裁剪

在本篇文章中,我们将使用shapely库来进行多边形的裁剪操作。shapely是一个Python库,提供了一些用于处理几何图形数据的功能。安装和导入shapely库首先,我们需要安装shapely库。...可以使用pip包管理器来安装它:pythonCopy codepip install shapely导入shapely库和其他需要用到的库:pythonCopy codefrom shapely.geometry...这使得shapely库可以与其它GIS软件和库进行数据转换和集成。可视化支持:shapely库可与matplotlib等绘图库结合使用,方便地将几何对象进行可视化和生成地理图表。...结语通过使用shapely库,我们可以轻松地进行多边形裁剪操作,实现图形处理中的裁剪需求。shapely还提供了其他强大的几何运算和功能,可以方便地处理各种几何图形数据。...大家可以进一步探索shapely库,了解更多其它功能的使用方法。

19910

(数据科学学习手札147)Python GIS利器shapely全新2.0版本一览

而就在几天前,shapely发布了其颇具里程碑意义的2.0正式版本,为我们带来了更加澎湃的运算性能提升,以及更稳定更丰富的新功能,今天的文章费老师我就来带大家一览shapely 2.0版本中的主要新特性...2 shapely 2.0重要新特性一览   通常我们不会专门去安装shapely,在安装geopandas的过程中它就顺带被安装上了,在我的本地示例虚拟环境中shapely原先的版本为1.8.5,通过执行...目前shapely的所有顶级API,以及shapely.ops等子模块下的顶级API均已支持向量化运算特性,具体见shapely中的API文档是否如下图所示提及ufunc: 2.2 矢量对象不可变   ...在以前的版本中,shapely中的矢量要素对象是可变的,譬如对于LineString要素,可以在被创建后,通过为其coords属性赋值新的坐标串信息以改变其矢量信息:   而从2.0.0开始,shapely...中我们可以直接从shapely导入常用的各种矢量要素类,这将作为from shapely.geometry import XXX方式的备选方式: 2.4 多部件要素不再可视作序列型对象   在以前的版本中

82410

Python地信专题 | 基于geopandas的空间数据分析—数据结构篇

中的几何对象,有如下几种类型: Points 对应shapely.geometry中的Point,用于表示单个点,下面我们创建一个由若干Point对象组成的GeoSeries并像Series一样定义索引...: from shapely import geometry import geopandas as gpd # 创建存放Point对象的GeoSeries # 这里shapely.geometry.Point...# 这里shapely.geometry.MultiPoint([(x1, y1), (x2, y2), ...])用于创建多点集合 gpd.GeoSeries([geometry.MultiPoint...下面我们创建一个由若干LineString对象组成的GeoSeries: # 创建存放LineString对象的GeoSeries # 这里shapely.geometry.LineString([(x1...譬如定义多边形时坐标按顺序连线时穿过了之前定义的边就属于非法,因为geopandas对矢量对象的计算依赖于shapely,于是引进了属性用于判断每个几何对象是否合法。

1.7K20

(数据科学学习手札146)geopandas中拓扑非法问题的发现、诊断与修复

在geopandas解决拓扑错误问题 2.1 geopandas中常见的要素拓扑错误情况   在geopandas中,要素的合法性(validity)是针对面要素、多部件面要素而言的,同其底层依赖的shapely...库一样,遵守着OGC(开放地理空间联盟)标准,在shapely高度完备的功能封装下,我们在日常创建面要素矢量时只需要注意别出现下面几种常见的情况就行: 错误情况1:坐标串自交叉 错误情况2:边界线存在重叠...错误情况3:内部孔洞之间存在共边 错误情况4:内部孔洞与外边界共边 错误情况5:多部件面要素之间存在重叠   值得一提的是,除了查看要素的is_valid属性是否为True外,在jupyter中非法的shapely...对拓扑错误要素进行诊断   上面列举的是我们自行构建面要素、多部件面要素时常见的拓扑错误,但若我们的数据来自从外部读取的矢量文件:   查看is_valid属性仅能知晓各个矢量是否合法:   而配合shapely...2.3 对拓扑问题进行修复   既然发现了拓扑非法问题,通常情况下我们肯定是希望可以尽可能地修复数据,而不是粗暴地予以删除,geopandas从0.12.0版本开始提供了基于shapely.validation.make_valid

1.1K20

(数据科学学习手札154)geopandas 0.14版本新特性一览

直接在终端中执行上述命令即可一步到位完成虚拟环境的创建,以及新版geopandas、jupyterlab的安装: 2.2 geopandas 0.14版本底层依赖变动   在0.14版本中,geopandas底层将默认使用shapely...(>=2.0版本)进行高性能矢量运算,因此geopandas仅会在shapely缺失但pygeos已安装时,才会调用pygeos。...且geopandas将会在未来要发布的1.0正式版本中,直接移除对pygeos,以及旧版shapely(<2.0版本)的支持: 2.3 新增一系列矢量计算方法   在这次新版本中,基于shapely为...有别于先前已有的convex_hull方法,新增的concave_hull()方法用于为矢量列中的每个要素计算最小凹多边形,与convex_hull计算结果的对比示例如下: import random from shapely.geometry

28320

(数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)

buffer() geopandas中的buffer()方法源于shapely,用于缓冲区的创建,这里给非GIS专业的读者朋友解释一下什么是空间意义上的缓冲区,缓冲区用于表示点、线、面等矢量数据的影响范围或服务范围...图1   而创建缓冲区时也需要遵循一定的参数,从而决定怎样向几何对象外进行缓冲,geopandas中buffer()和shapely中的buffer()方法参数一致,主要参数如下: distance:...([0, 0]), shapely.geometry.Point([0, 1]), shapely.geometry.Polygon...shapely矢量对象,从而方便我们进行一些其他的操作: ?...图8   并且如果原始数据中存在互相存在重叠的矢量对象,通过unary_union之后,返回的shapely对象会自动对存在重叠的矢量对象进行融合,这一点可以方便我们的很多日常操作: ?

3.8K31

(数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇

中的几何对象,有如下几种类型: Points   对应shapely.geometry中的Point,用于表示单个点,下面我们创建一个由若干Point对象组成的GeoSeries并像Series一样定义索引...: from shapely import geometry import geopandas as gpd # 创建存放Point对象的GeoSeries # 这里shapely.geometry.Point...对象的GeoSeries # 这里shapely.geometry.LineString([(x1, y1), (x2, y2), ...])用于创建多点按顺序连接而成的线段 gpd.GeoSeries...图7 Polygon(无孔) geopandas中的Polygon对应shapely中的Polygon,用于表示面,根据内部有无孔洞可继续细分。...图21   下面我们尝试用shapely中的intersection方法来取得这两个几何对象的相交部分,出现了拓扑逻辑错误: ?

2.7K20

geopandas 0.14版本重要更新内容一览

直接在终端中执行上述命令即可一步到位完成虚拟环境的创建,以及新版geopandas、jupyterlab的安装: 2.2 geopandas 0.14版本底层依赖变动 在0.14版本中,geopandas底层将默认使用shapely...(>=2.0版本)进行高性能矢量运算,因此geopandas仅会在shapely缺失但pygeos已安装时,才会调用pygeos。...且geopandas将会在未来要发布的1.0正式版本中,直接移除对pygeos,以及旧版shapely(<2.0版本)的支持: 2.3 新增一系列矢量计算方法 在这次新版本中,基于shapely为GeoSeries...convex_hull方法,新增的concave_hull()方法用于为矢量列中的每个要素计算「最小凹多边形」,与convex_hull计算结果的对比示例如下: import random from shapely.geometry

24830
领券
http://www.vxiaotou.com