当前位置: 首页 > 知识库问答 >
问题:

识别GeoDataFrame的缓冲边界

端木弘方
2023-03-14

给定一个Geopandas GeoDataFrame,我想提取GeoDataFrame的总边界,由n单元缓冲。

通过gdf.geometry.total_bounds,我可以访问整个DataFrame中组合几何的非缓冲边界。我想到的一种方法是取这些边界,将它们转换为Shapely多边形,然后缓冲它。

共有1个答案

长孙瑞
2023-03-14

我认为你提到的方法(从总边界创建多边形,然后缓冲)确实是最好的方法。要进行转换,可以使用shapely。几何学方框方便功能:

In [21]: s = geopandas.GeoSeries([Point(0,0), Point(0,5), Point(3,3)])

In [22]: s
Out[22]: 
0    POINT (0 0)
1    POINT (0 5)
2    POINT (3 3)
dtype: object

In [23]: s.total_bounds
Out[23]: (0.0, 0.0, 3.0, 5.0)

In [24]: import shapely.geometry

In [25]: shapely.geometry.box(*s.total_bounds)
Out[25]: <shapely.geometry.polygon.Polygon at 0x7fac100d25f8>

In [26]: print(shapely.geometry.box(*s.total_bounds))
POLYGON ((3 0, 3 5, 0 5, 0 0, 3 0))

In [27]: shapely.geometry.box(*s.total_bounds).buffer(3)
Out[27]: <shapely.geometry.polygon.Polygon at 0x7fac10041a90>

In [28]: shapely.geometry.box(*s.total_bounds).buffer(3).bounds
Out[28]: (-3.0, -3.0, 6.0, 8.0)

或者(但不确定这是否总是给出完全相同的结果),您也可以首先使用级联_union将对象合并为一个对象,缓冲该对象,然后获取边界:

In [33]: s.cascaded_union
Out[33]: <shapely.geometry.multipoint.MultiPoint at 0x7fac100cd278>

In [34]: s.cascaded_union.buffer(3)
Out[34]: <shapely.geometry.polygon.Polygon at 0x7fac100cd048>

In [35]: s.cascaded_union.buffer(3).bounds
Out[35]: (-3.0, -3.0, 6.0, 8.0)
 类似资料:
  • 问题内容: 简单的说,我总是对PHP / MySQL缓冲查询和非缓冲查询之间的区别是,缓冲(默认)将所有数据加载到结果集变量中, 然后 您可以开始使用它们,而无缓冲则在以下位置加载行:一个时间。 假设您先运行然后进行了,它将包含所有行和补充信息,例如行数。因此,如果您在100MB的数据库上执行此操作,那么如果那里没有索引,则可能会占用约100MB的空间)。 但是,我遇到了这样的SO溢出问题,其中一

  • 我的geodataframe如下所示: 我可以在“几何体”列中看到点列表,但我想将这些点拉出并放入列表中。例如,在pandas中,您可以执行类似df['column']的操作。到列表()。但是,在尝试此操作时,我得到一个错误: 你知道我如何去掉“多边形”名称,直接得到组成该多边形的点的列表吗?说清楚,我不想要多边形的外部或边界,我想要边界内的所有点。

  • 两者都是序列化库,由谷歌开发人员开发。他们之间有什么大的区别吗?将使用协议缓冲区的代码转换为使用FlatBuffers需要大量工作吗?

  • 出于性能的考虑,servlet 容器允许(但不要求)缓存输出到客户端的内容。一般的,服务器是默认执行缓存,但应该允许 servlet 来指定缓存参数。 下面是 ServletResponse 接口允许 servlet 来访问和设置缓存信息的方法: getBufferSize setBufferSize isCommitted reset resetBuffer flushBuffer 不管 ser

  • 本文向大家介绍假脱机和缓冲之间的区别,包括了假脱机和缓冲之间的区别的使用技巧和注意事项,需要的朋友参考一下 在计算机性能方面,主要因素是多任务处理,即CPU如何在不同的输入输出子系统之间划分和执行进程。为了最有效地处理任务,计算机系统使用各种方法来计划任务,加快计算速度并改善Web浏览,其中假脱机和缓冲是主要方法。 以下是假脱机和缓冲之间的重要区别。 序号 键 假脱机 正在缓冲 1 定义 后台打印

  • 本文向大家介绍操作系统中缓冲与缓存之间的区别,包括了操作系统中缓冲与缓存之间的区别的使用技巧和注意事项,需要的朋友参考一下 在这篇文章中,我们将了解操作系统中缓冲和缓存之间的区别- 正在缓冲 它是主内存中的一个区域。 这意味着它与RAM(随机存取存储器)相关联。 缓冲区将数据的原始副本存储在内存中。 缓冲与发送方和接收方之间的数据流速度匹配。 快取 缓存将数据的原始副本存储在内存中。 缓存可以提高