跳转到主要内容

GEOS封装在numpy ufunc中

项目描述

Documentation Status Github Actions status Travis CI status PyPI Anaconda Zenodo

PyGEOS是一个具有向量化几何函数的C/Python库。几何操作在开源几何库GEOS中执行。PyGEOS将这些操作封装在NumPy ufunc中,在处理几何数组时提供性能提升。

重要提示:PyGEOS于2021年12月与Shapely(https://shapely.readthedocs.io)合并,并将作为Shapely 2.0的一部分发布。开发将在Shapely存储库中完成。请在那里提出问题或创建拉取请求。PyGEOS本身将接收更新(通过从Shapely存储库回滚),直到Shapely 2.0实际上发布。

什么是ufunc?

通用函数(或简称为ufunc)是一种以元素对元素的方式对n维数组进行操作的函数,支持数组广播。涉及的for循环完全用C语言实现,减少了Python解释器的开销。

多线程

PyGEOS函数支持多线程。更具体地说,在函数执行期间会释放全局解释器锁(GIL)。通常在Python中,GIL阻止多个线程同时进行计算。PyGEOS函数内部释放这个限制,以便GEOS可以并行执行重量级操作,而无需多个Python进程。

示例

比较点网格和多边形

>>> geoms = points(*np.indices((4, 4)))
>>> polygon = box(0, 0, 2, 2)

>>> contains(polygon, geoms)

  array([[False, False, False, False],
         [False,  True, False, False],
         [False, False, False, False],
         [False, False, False, False]])

计算两个多边形列表所有可能交点面积

>>> from pygeos import box, area, intersection

>>> polygons_x = box(range(5), 0, range(10, 15), 10)
>>> polygons_y = box(0, range(5), 10, range(10, 15))

>>> area(intersection(polygons_x[:, np.newaxis], polygons_y[np.newaxis, :]))

array([[100.,  90.,  80.,  70.,  60.],
     [ 90.,  81.,  72.,  63.,  54.],
     [ 80.,  72.,  64.,  56.,  48.],
     [ 70.,  63.,  56.,  49.,  42.],
     [ 60.,  54.,  48.,  42.,  36.]])

更多文档请参阅: https://pygeos.readthedocs.io

参考资料

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码发行版

pygeos-0.14.tar.gz (141.3 kB 查看哈希值)

上传时间 源代码

构建发行版

pygeos-0.14-cp311-cp311-win_amd64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

pygeos-0.14-cp311-cp311-win32.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86

pygeos-0.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

pygeos-0.14-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.4 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ i686

pygeos-0.14-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

pygeos-0.14-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

pygeos-0.14-cp311-cp311-macosx_10_9_universal2.whl (2.2 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

pygeos-0.14-cp310-cp310-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

pygeos-0.14-cp310-cp310-win32.whl (1.3 MB 查看哈希值)

上传于 CPython 3.10 Windows x86

pygeos-0.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pygeos-0.14-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

pygeos-0.14-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

pygeos-0.14-cp310-cp310-macosx_10_9_universal2.whl (2.2 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

pygeos-0.14-cp39-cp39-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pygeos-0.14-cp39-cp39-win32.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 Windows x86

pygeos-0.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

pygeos-0.14-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (2.3 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ i686

pygeos-0.14-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.9 macOS 11.0+ ARM64

pygeos-0.14-cp39-cp39-macosx_10_9_x86_64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.9 macOS 10.9+ x86-64

pygeos-0.14-cp39-cp39-macosx_10_9_universal2.whl (2.2 MB 查看哈希值)

上传时间: CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pygeos-0.14-cp38-cp38-win_amd64.whl (1.5 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86-64

pygeos-0.14-cp38-cp38-win32.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86

pygeos-0.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ x86-64

pygeos-0.14-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (2.4 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ i686

pygeos-0.14-cp38-cp38-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.8 macOS 11.0+ ARM64

pygeos-0.14-cp38-cp38-macosx_10_9_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

pygeos-0.14-cp38-cp38-macosx_10_9_universal2.whl (2.2 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

pygeos-0.14-cp37-cp37m-win_amd64.whl (1.5 MB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

pygeos-0.14-cp37-cp37m-win32.whl (1.3 MB 查看哈希值)

上传于 CPython 3.7m Windows x86

pygeos-0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

pygeos-0.14-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (2.3 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ i686

pygeos-0.14-cp37-cp37m-macosx_10_9_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ x86-64

由以下支持