用纽比乌芬奇包裹的地球仪

pygeos的Python项目详细描述


这是一个c/python库,它将geos中的几何函数包装在numpy ufuncs中。 这个项目仍处于模拟阶段:api很可能会改变。

为什么是不明飞行物?

通用函数(简称ufunc)是在 一个元素一个元素的n维数组,支持数组 广播。所涉及的for循环在c中完全实现, 减少python解释器的开销。

pygeos旨在将geos中的几何函数公开到python中,以提供 一种快速灵活的方法,用Python处理大量的几何图形。

GeoGeometry对象

geos几何体对象存储在python扩展的静态属性中 键入pygeos.geosgeometry。这使得python解释器不在ufunc中 内环。geosgeometry对象跟踪基础几何体和 允许python垃圾收集器在几何体不是 再也不用了。

geosometry对象是不可变的。按如下方式构造:

>>>frompygeosimportGEOSGeometry>>>geometry=GEOSGeometry.from_wkt("POINT (5.2 52.1)")

或者简单地说:

>>>frompygeosimportpoints>>>point=points(5.2,52.1)

示例

将点网格与多边形进行比较:

>>>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]])

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

>>>frompygeosimportbox,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.]])

安装

pygeos使用shapely的安装脚本。如果你有一个标准的libgeos 位置,以下选项应起作用:

$ pip install pygeos

为开发人员安装

克隆包:

$ git clone https://github.com/caspervdw/pygeos.git

使用pip安装

$ pip install -e .

运行单元测试:

$ python -m pytest pygeos/test.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ssl证书javax。网ssl。SSLHandshakeException:java。安全cert.CertificateException:没有与IP地址匹配的主题替代名称   基于组件的体系结构的java粒度   java在读取文件中的下一行和上一行时,我得到一个空指针异常   java是什么。StrutConfig。xml。strutsdia文件?   java中如何根据枚举字段对一组对象进行排序   java Firebase setPersistenceEnabled。导致大量内存使用   java奇数编译泛型类和列表错误   java类型org没有可用的源代码。石英克隆表达;您是否忘记继承所需的模块?   java如何使用map计算列表中整数列表的和,并获得一个新列表,其中每个条目对应于每个计算出的和?   java二进制搜索不会结束   java跳过Jackson中的错误JSON数据   在服务层中使用依赖项注入时引发java空指针异常。DAO类bean为空   访问者模式如何解释这两个Java程序运行时间的差异?   用Java扩展日历   java调用通用静态方法