Shapely¶
笛卡尔平面中几何对象的处理和分析。
shapely是一个BSD许可的python包,用于操作和分析平面几何对象。它是基于广泛部署的 GEOS (发动机) PostGIS ) JTS (从中移植geos)库。shapely与数据格式或坐标系无关,但可以很容易地与包集成。有关详细信息,请参阅:
使用¶
这里是通过缓冲一个点来构建一个近似圆形补丁的典型示例。
>>> from shapely.geometry import Point
>>> patch = Point(0.0, 0.0).buffer(10.0)
>>> patch
<shapely.geometry.polygon.Polygon object at 0x...>
>>> patch.area
313.65484905459385
有关更多示例和指南,请参阅手册。
要求¶
Shapely 1.8要求
PYTHON>=3.6
GEOS>=3.3
安装整齐¶
可以从源分发版或几种内置分发版之一安装Shapely。
已建分布¶
对于那些不知道或不知道如何使用他们平台的编译器和pythonsdk的用户来说,构建发行版是唯一的选择,对于那些不想麻烦的用户来说也是一个不错的选择。
最新版本的Python和带有geospely的Windows版本的pipely可以获得最新版本的Python和pipely
$ pip install shapely
Shapely可以通过apt、yum和Homebrew等系统包管理工具获得,也可以由流行的Python发行版(如Canopy和Anaconda)提供。如果使用Conda包管理器安装Shapely,请确保使用Conda forge通道。
Windows用户还有另一个很好的安装选项:发布在https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely。可以使用pip通过指定整个URL来安装它们。
震源分布¶
如果您希望从源代码构建与依赖geos的其他模块(如cartopy或osgeo.ogr)的兼容性,或者希望使用项目控制盘中包含的不同版本的geos,则应首先在系统上安装geos库、cython和numpy(使用apt、yum、brew或其他方式),然后直接使用piP忽略二进制车轮。
$ pip install shapely --no-binary shapely
如果您已将geos安装到标准位置,geos config程序将用于获取编译器和链接器选项。如果geos config不在可执行文件上,则可以使用geos_config环境变量指定它,例如:
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
整合¶
shapely不读取或写入数据文件,但它可以使用几种已知的格式和协议进行序列化和反序列化。shapely.wkb和shapely.wkt模块提供受Python pickle模块启发的转储程序和加载程序。
>>> from shapely.wkt import dumps, loads
>>> dumps(loads('POINT (0 0)'))
'POINT (0.0000000000000000 0.0000000000000000)'
shapely还可以使用类似dicts的geojson与其他python GIS包集成。
>>> import json
>>> from shapely.geometry import mapping, shape
>>> s = shape(json.loads('{"type": "Point", "coordinates": [0.0, 0.0]}'))
>>> s
<shapely.geometry.point.Point object at 0x...>
>>> print(json.dumps(mapping(s)))
{"type": "Point", "coordinates": [0.0, 0.0]}
开发和测试¶
在requirements-dev.txt中列出了开发形状的依赖项。生产装置不需要Cython和Numpy,仅用于开发。强烈建议使用虚拟环境。
$ virtualenv .
$ source bin/activate
(env)$ pip install -r requirements-dev.txt
(env)$ pip install -e .
该项目使用pytest运行Shapely的单元测试和doctest套件。
(env)$ python -m pytest
支持¶
有关使用shapely的问题,请访问 GIS StackExchange 使用“shapely”标签。
可以在https://github.com/toblerity/shapely/issues上报告错误。
信用¶
shapely由以下人员编写:
阿迪·沙维特<adishavit@gmail.com>
Alberto Rubiales<arubiales11@gmail.com>
阿伦·阿代尔。adair@gmail.com网站>
安德鲁·布莱克<ablakey@gmail.com网站>
andy freeland<andy@andy freeland.net>
Aron Bierbaum<aron bierbaum@gmail.com>
bas couwenberg<sebasic@xs4all.nl>
Ben Beasley<code@musicinmybrain.net>
本杰明·鲁特<ben.v.root@gmail.com>
Bertrandgervais<bertrand.gervais.pro@gmail.com>
Bhavika Tekwani<4955119+bhavika@users.noply y.gihub.com>
Bi0T1N<Bi0T1N@users.noreply.gihub.com>
Brad Hards<bradh@frogmouth.net>
布兰登·伍德<btwood@geometeor.com>
查德·霍金斯<cwh@chadwhawkins.com>
基督教先驱者<cprior@gmail.com>
基督教探索<github@cquest.org>
克里斯托夫·普拉达尔<克里斯托夫·普拉达尔@印度卢比>
丹·巴斯顿<dbason@gmail.com>
Dan Mahr<danmahr23@gmail.com>
丹尼尔埃斯波斯蒂<expobrain@users.noreply.github.com>
Dave Collins<dave@hopest.net>
david baumgold<david@david baumgold.com>
大卫·斯温克尔<davidswinkelss@gmail.com>
Denis Rykov <rykovd@gmail.com>
埃尔文·斯特伦堡。sterrenburg@gmail.com>
Felix Divo<4403130+Felixdivo@users.noreply.gihub.com>
阎菲利克斯<felixonmars@archlinux.org>
Filipe Fernandes <ocefpaf@gmail.com>
fr_d_ric junod<frederic.junod@camptocamp.com>
gabi davar<grizzly.nyo@gmail.com>
格瑞特·霍尔<格瑞特·霍尔@dwd.de.公司>
Hannes <kannes@users.noreply.github.com>
Henry Walshaw<henry.walshaw@gmail.com>
霍华德·巴特勒<hobu.inc@gmail.com>
Jacob Wasserman<jwasserman@gmail.com>
Jaeha Lee<jaehaaheaj@gmail.com>
James Douglass<jamesdouglassusa@gmail.com>
james gaboardi<jgaboardi@gmail.com>
詹姆斯·兰姆<jaylamb20@gmail.com>
詹姆斯·麦克布莱德<jdmcbr@gmail.com>
詹姆斯·斯宾塞<james.s.spencer@gmail.com>
Jamie Hall<jamie212@gmail.com>
jason sanford<jason.sanford@mapmyfitness.com>
jeethu rao<jeethu@jeethu rao.com>
王金坤<mejkunw@gmail.com>
Johan Euphrosine<proppy@aminche.com>
johannes sch_nberger<jschoenberger@demc.de>
乔纳森·肖恩霍温<jschoonhoven@lyft.com>
乔里斯·范登博斯克<jorisvandenbossche@gmail.com>
Joshua Arnott<josh@snofalorpagus.net>
Juan Luis Cano Rodr_Guez<juanlu@satelogic.com>
贾斯汀·申克<shenk.jutin@gmail.com>
凯尔西·乔达尔<kjordhal@enthould.com>
Kevin Wurster<wursterk@gmail.com>
康斯坦丁·维列滕尼科夫<kveretennicov@gmail.com>
科希·托马斯<koshy1123@gmail.com>
克里斯蒂安·埃弗斯<kristianevers@gmail.com>
凯尔·巴伦<kylebarron2@gmail.com邮箱>
leandro lima<leandro@limesilva.com.br>
卢克·李<durdenmisc@gmail.com>
Maarten Vermeyen<maarten.vermeyen@rwo.vlanderen.be>
Marc Jansen<jansen@terrestris.de>
marco de nadai<me@marcodena.it>
马修<马修·尼维尔@gmail.com网站>
马特·阿莫斯<马特·阿莫斯@地图网>
马蒂亚斯·坎茨<mcuntz@users.noreply.githorb.com>
Mejstrik Rudolf<68251685+MejstrikRudolf@users.noreply.github.com>
Michael K<Michael-k@users.noreply.gihub.com>
米歇尔·布兰卡德<米歇尔·布兰卡@数据.gouv.fr>
Mike Taves<mwtoews@gmail.com>
莫里斯·特威德<tweed.morris@gmail.com>
naven michaud agrawal<naven.michaud agrawal@gmail.com>
Oliver Tonnhofer<olt@bogosoft.com>
铺łTyślacki<tbicr@users.noreply.github.com>
Peter Sagerson<psagers.github@ignorare.net>
Phil Elson<pelson.pub@gmail.com>
皮埃尔·帕西<villecult@gmail.com>
Raja Gangopadhya<raja.angopadhya@ridewitvia.com>
里卡多·齐勒鲁埃洛<51384295+zetaatlyft@users.noreply.github.com>
Rémy Phelipot<reemy-phelipot@users.noply y.gihub.com>
sampo syrkenen<sampo.syrkenn@here.com>
钱塞缪尔<samuelchin91@gmail.com>
肖恩·吉利斯<sean.gillies@gmail.com>
索波列夫·尼基塔<邮箱:sobolevn.me>
史蒂芬·H·凝胶< ursRei> gmail
Steve M.Kim<steve@climate.com>
松泽太郎。btm公司<btm@tech.email.ne.jp>
thibault deutsch<thibault.deutsch@gmail.com>
Thomas Gatier<Thomas_gratier@yahoo.fr>
Thomas Kluyver<takoll@gmail.com>
蒂姆·盖茨<tim.Gates@iress.com>
Tobias sauerwein<tobias.sauerwein@camptocamp.com>
汤姆·卡鲁索<carusot42@gmail.com>
王爱勇<gepcelway@gmail.com>
威尔·梅<williamcmay@live.com>
zachary-ware<zachary.ware@gmail.com>
AharFoot<aharFoot@users.noply y.gihub.com>
Bstadlbauer<11799671+bstadlbauer@users.noreply.github.com>
卡劳斯<cclauss@me.com>
达维德ssec<大卫霍斯@ssec.wisc.edu公司>
乔治奥祖<geostrock@gmail.com>
giumas<gmasetti@ccom.unh.edu>
joelostblom<joelostblom@users.noreply.github.com>
ljwolf公司<列维·约翰·沃尔夫@gmail.com网站>
mindw<grizzly.nyo@gmail.com>
rsmb公司<rsmb@users.noreply.github.com>
松格洛洛<garethsimons@me.com>
SShuair<sShuair@gmail.com>
另请参见:https://github.com/toblerity/shapely/graphs/contributors。
其他帮助来自:
Justin Bronn(Geodjango),以C型为灵感
马丁·戴维斯(JTS)
Sandro Santilli、Mateusz Loskot、Paul Ramsey等人(GEOS项目)
这项工作的主要部分是由一笔拨款资助的 Pleiades) 来自美国国家人文基金会(https://www.neh.gov).
变化¶
1.8.0(2021-10-25)¶
这是最终的1.8.0版本。自1.8rc2以来一直没有变化。
1.8rc2(2021-10-19)¶
建造:
添加了一个pyproject t.toml文件,以指定_VECTORIZED和_SPEDUPS模块(#1128)的构建依赖关系。要在没有这些构建依赖项的情况下正确安装,请使用您的构建工具禁用PEP517和518支持的功能。
错误修复:
PR#1042的一部分已被PR#1201还原,其中添加了要搜索的新的主GEOS库名称。
1.8rc1(2021-10-04)¶
不推荐使用:
BaseGeometry的Ally_Exact()方法已弃用。它令人困惑,将在2.0.0中删除。将改用equals_exact()方法。
错误修复:
我们确保始终在_VECTORIZED之前导入_Speedups模块,以避免在装有Python3.8和3.9(#1184)的Windows上出现无法解释的情况。
1.8a3(2021-08-24)¶
不推荐使用:
已删除STRtree类弃用警告。2.0.0中的类将向后兼容1.8.0中的类。
错误修复:
这个 __array_interface__ 只引发AttributeError,从Numpy 1.21(#1173)开始,所有其他异常都被弃用。
STRtree类现在在内部使用一对Item,Geom序列,而不是DICT(#1177)。
1.8a2(2021-07-15)¶
Python版本支持:
Shapely 1.8将只支持大于或等于3.6的版本。
新功能:
STRtree NEAREST*()方法现在接受一个可选参数,该参数指定从结果中排除输入几何图形(#1115)。
GeometryTypeError已添加到shapely.Error中,并一致引发,而不是版本1.7中的TypeError或ValueError。为了向后兼容,新异常将从版本2.0(#1099)之前的TypeError和Value Error派生。
STRtree类构造函数现在接受可选的第二个参数,即要存储在树中的对象序列。如果没有提供,几何图形的序列索引将被存储,如前所述(#1112)。
STRtree类有新的QUERY_GEOMS()、QUERY_ITEMS()、NEAREST_GEOM()和NEAREST_ITEM()方法(#1112)。QUERY()和NEAREST()方法仍然是QUERY_GEOMS()和NEAREST_GEOM()的别名。
错误修复:
我们不再尝试加载libc来获取Linux上的免费函数,而是从全局符号表获取它。
在传递空几何体geos_getCoordSeq()时打印的GEOS错误消息通过从不传递空几何体(#1134)来避免。
现在只能按照PEP 3135(#1109)中描述的方式使用Python的内置Super()。
仅在存在的情况下加载Conda GEOS DLL(在Windows上)(#1108)。
将/opt/home brew/lib添加到要搜索GEOS共享库的目录列表中。
添加了新的库搜索路径,以帮助使用CX_FREAK创建应用程序。
1.8a1(2021-03-03)¶
Shapely 1.8.0将是一个过渡版本。有一些错误修复和新功能,但主要是关于2.0.0中即将发生的更改的警告。预计还会有几个1.8.0之前的预发行版。有关如何更新代码(https://shapely.readthedocs.io/en/latest/migration.html).的更多详细信息,请参阅Shapely 1.8/2.0的迁移指南
Python版本支持:
Shapely 1.8将只支持大于等于3.5的版本(#884)。
不推荐使用:
版本2.0.0中将删除以下函数以及几何属性和方法。
ops.cascaded_union
几何图形.Empty()
几何图形.ctype和 .__array_interface__
多零件几何图形 .__len__
设置几何对象的自定义属性
几何图形对象在2.0.0版中将变得不可变。
STRtree类将在2.0.0中完全更改。确切的未来API还没有确定,但将在1.8.0发布之前决定。
当使用这些功能中的任何一个时,将在1.8a1中发出弃用警告。
几何体对象上的.to_wkb()和.to_wkt()方法已被删除。
新功能:
将Normize()方法添加到几何体类,公开GEOSNormal算法(#1090)。
使用每个节点10个项目的容量初始化STRtree(#1070)。
使用AuditWare版本<3.1重新定位到shapely/.libs的加载库,或使用>=3.1的AuditWare版本重新定位到Shapely.libs的加载库。
shapely.ops.沃罗诺图()计算几何或几何集合的Voronoi图(#833,#851)。
shapely.validation.make_有效()修复了无效的几何图形(#883)
错误修复:
对于pyinstaller,我们现在处理环境中多个GEOS库的情况,例如Fiona和rasterio轮子与Shapely(#1071)共同安装时。
Ops.Split功能现在按触摸拆分,以消除使用多部分拆分器和单部分拆分器(#1034)的结果之间令人困惑的差异。
有关ops.substring中顶点的重复和顺序的几个问题已修复(#1008)。
包:
上传到PyPI的车轮将包括GEOS 3.9.1。
1.7.1(2020-08-20)¶
STRtree
现在安全地实现pickle协议(#915)。已为添加文档
minimum_clearance
(875,874)。在
STRtree.__del__()
我们不打电话GEOSSTRtree_destroy
当lgeos模块在出口处被拆除时(#897,#830)。文件
overlaps()
方法已更正(#920)。在中更正测试
shapely.geometry.base.BaseGeometry.empty()
以消除内存泄漏,如ţ745中报告的那样。Get free()不是来自libc,而是来自进程全局符号(#891),修复了OS X 10.15和10.16上出现的一个错误。
从复杂行中提取子串变得更加正确(#848,#849)。
通过准备输入几何体(#871),可以加快复杂几何体的拆分。
修复函数argtypes(#866)连接中的错误。
改进了STRtree用法的文档(#857)。
改进了对GeoJSON坐标中的空列表或列表列表的处理(#852)。
polylabel算法现在可以处理多边形孔(#851,#817)。
1.7.0(2020-01-28)¶
这是最后的1.7.0版本。自17亿1年以来没有任何变化。
17亿欧元(2020年1月13日)¶
第一个beta版。
1.7a3(2019年12月31日)¶
新功能:
缓冲区操作现在可以是单侧(#806,#727)。
错误修复:
将/usr/local/lib添加到要搜索GEOS共享库(#795)的目录列表中。
操作子字符串现在,当给定的起始位置大于结束位置(#628)时,返回一条坐标线,其坐标为从端到前的顺序。
实施
__bool__()
对于几何体基类,以便bool(geom)
返回的逻辑补码geom.is_empty
(754页)。删除在GEOS版本字符串中找到的类似于版本的字符串数的断言。可能是2到3个。
1.7A2(2019年6月21日)¶
最近的邻居搜索已添加到strtree(668)。
不允许将多多边形序列作为多多边形构造函数的参数,解析为588。
已删除的自动售货机 functools 以前用于支持python 2.5的函数。
错误修复:
在OS X(735)上使用已安装的二进制滚轮时,避免重新加载geos共享库,从而解决问题553。
shapely.ops.orient函数现在可以定位多个多边形和几何集合以及多边形(733)。
现在可以从点对象序列以及X、Y序列序列(732)构建多边形。
空多边形的外部现在等于空线性环(731)。
空点对象的bounds属性现在返回一个空元组,与其他几何类型(723)一致。
当非字符串值传递给WKT加载器时,分段错误被700避免。
当子行字符串与行字符串的开头重合时,ops.substring失败已被修复(658)。
通过655防止在空的行字符串上插入分段错误。
在PolyLabel算法(644)中添加了矩形多边形的一个缺少的特殊情况。
可以从linestring(638)创建linearring。
准备好的大地测量验证条件已在632年收紧,以修复631年报告的缺陷。
尝试插入空几何体不再导致分段错误,引发 ValueError 取而代之的是(α653)。
1.7A1(2018年7月29日)¶
新功能:
python版本检查由包安装脚本进行。shapely 1.7只支持python版本2.7和3.4+(610)。
增加了一个新的 EmptyGeometry 支持geopandas的类(514)。
新增 shapely.ops.substring 功能(459)。
新增 shapely.ops.clip_by_rect 功能(583)。
使用系统“Meipass”中指示的DLL来支持pyinstaller冻结的应用程序(523)。
shapely.wkb.dumps 现在接受一个 srid 整型关键字参数,用于在输出数据(593)中写入包含空间引用ID的WKB数据。
错误修复:
shapely.geometry.shape 现在可以封送空的geojson表示(573)。
尝试执行以下操作时引发异常 prepare 一 PreparedGeometry (α577,α595)。
关键字参数已从几何图形对象的 wkt getter属性(581,594)。
1.6.4.post1(2018-01-24)¶
修复这个更改日志中损坏的标记,这将恢复pypi上格式良好的自述文件。
1.6.4(2018-01-24)¶
处理A
TypeError
当几何结构被拆掉时(473,528)。
1.6.3(2017年12月9日)¶
当访问空多边形(450)的地理界面时,不再引发attributeError。
asShape
现在处理映射中的空坐标为shape
(542)。请注意asShape
可能会在以后的shapely版本中被弃用。在速度模式下检查LineString坐标的长度,防止仅使用一个坐标(546)的LineString时发生崩溃。
1.6.2(2017年10月30日)¶
已经发布了1.6.2.post1版本来修复上传到pypi的macosx轮子的问题。
1.6.2(2017年10月26日)¶
现在,通过一个端点拆分一个linestring将成功,而不是失败
ValueError
(524,533)。缺少几何图形的文档
overlaps
已添加谓词(522)。
1.6.1(2017年9月1日)¶
避免
STRTree
通过维护对添加几何图形的引用,由于悬空引用(505)导致崩溃。在报告对CTypes的调用时降低要调试的日志级别
CDLL()
这不会成功,会被重新尝试(515)。澄清:需要空几何对象的应用程序,如geopandas,应该使用
BaseGeometry()
而不是Point()
或Polygon()
. 安EmptyGeometry
类已添加到主开发分支中,并将在下一个非bugfix版本中可用。
1.6.0(2017年8月21日)¶
shapely 1.6.0向现有几何类和新函数添加新属性( split()
和 polylabel()
)到shapely.ops模块。异常被整合到一个形状良好的模块中。错误模块和日志记录实践得到了改进。根据numpy,shapely的可选功能现在被收集到一个名为“矢量化”的需求集中,这些功能可以像 pip install shapely[vectorized]
.
在1.6.0上的大部分工作都是为了改进项目的构建和打包脚本,并最小化运行时依赖性。现在,shapely将打包仅在构建期间使用,并且不再在运行时调用geos-config实用程序。
除了下面的alpha和beta预发行版中列出的更改外,项目还进行了以下更改:
项目文档现在托管在https://shapely.readthedocs.io/en/latest/上。
感谢大家使用、推广和为这个完美的项目做出贡献。
1.6B5(2017年8月18日)¶
错误修复:
将单个坐标传递给
LineString()
如果禁用加速,则会像启用加速一样引发ValueError。这解决了509。
1.6B4(2017年2月15日)¶
错误修复:
隔离供应商目录中的供应商化包装,删除过时的dist信息,并从项目需求中删除包装(解决468)。
16立方(2016-12-31)¶
错误修复:
源自geos通知处理程序的日志消息级别从警告降低到信息(447)。
允许在没有numpy(444)的情况下再次导入加速。
1.6B2(2016-12-12)¶
新功能:
添加对形状和关联函数的几何集合的支持(422)。
1.6B1(2016-12-12)¶
错误修复:
为空点和线串(403)实现uu array_u interface_uuu。
1.6A3(2016-12-01)¶
错误修复:
删除numpy(431)的意外硬要求。
包:
将numpy放入名为“矢量化”(431)的可选需求集中。
1.6A2(2016-11-09)¶
错误修复:
形状不再配置登录
geos.py
(α415)。
重构:
合并例外情况
shapely.errors
.UnsupportedGEOSVersionError
当geos<3.3.0(407)时升高。
包:
增加了新的类库搜索路径以帮助 Python (413)。
当没有设置GEOS配置env var时,现在将绕过GEOS配置。这允许在Linux系统上配置形状良好的构建,无论出于何种原因,这些系统都不包括geos-config程序(322)。
1.6A1(2016年9月14日)¶
新功能:
当geos后端不支持调用的方法(216)时,将引发从notimplementederror派生的新错误,并显示一条更有用的消息。
这个
project()
LineString方法已扩展到线性化几何体(286)。一个新的
minimum_rotated_rectangle
属性已添加到基本几何体类()。一个新的
shapely.ops.polylabel()
已添加函数。它计算一个适合标记凹多边形的点(395)。一个新的
shapely.ops.split()
已添加函数。它通过另一个较小尺寸的几何体来分割一个几何体:一条线一条线,一点一条线(293,371)。Polygon.from_bounds()
从边界坐标(392)构造多边形。增加了对numpy 1.4.1测试的支持(301)。
支持从python对象的空列表(397,404)创建各种空几何图形。
重构:
从开关
SingleSidedBuffer()
到OffsetCurve()
对于GEOS>=3.3(270)。Cython加速现在默认启用(252)。
包:
包装16.7是一种安装依赖项,由供应商提供(314)。
增加了制造Manylinux1车轮的基础设施(391)。
系统的
geos-config
程序现在只有在setup.py
不会在模块的正常使用过程中执行(244)。添加新的库搜索路径以帮助pyinstaller(382)和windows(343)。
1.5.17(2016年8月31日)¶
错误修复:消除gemo_factory()(408)中的内存泄漏。
修正错误:去掉平行偏移中的负距离,注意右手偏移线的顶点是相反的(284)。
1.5.16(2016-05-26)¶
错误修复:取消拾取几何对象时消除内存泄漏(384,385)。
错误修复:在尝试酸洗准备好的几何图形时防止崩溃,提高
PicklingError
取而代之的是(α386)。打包:OS X轮子中的扩展模块现在只上载到pypi link libgeos_c.dylib(您可以使用
otool -L shapely/vectorized/_vectorized.so
)
1.5.15(2016年3月29日)¶
错误修复:使用uintptr_t来存储指针,而不是在geos.pxi中使用long,以防止溢出错误(372,373)。请注意,此错误修复被错误地报告为在1.5.14中进行,但没有。
1.5.14(2016年3月27日)¶
错误修复:使用
type()
而不是isinstance()
在评估几何相等性时,防止基类和派生类的实例被误认为等于(317)。错误修复:确保在构造函数没有参数(332,333)时创建空几何图形。
错误修复:通过不依赖
__file__
属性(342,377)。错误修复:确保空多边形的计算结果为
==
(α355)。错误修复:过滤掉在创建和加载strtrees(345,348)时可能导致segfaults的空几何体。
错误修复:不再尝试重用已经由Rasterio或Fiona在OS X上加载的geos dll(374,375)。
1.5.13(2015年10月9日)¶
将geos共享库的安装和运行时发现和加载恢复到版本1.5.9(326)时的状态。
在OS X上,我们尝试重用可能通过导入fiona或rasterio加载的任何geos共享库,以避免涉及geos abstractstrtree(324,327)的错误。
1.5.12(2015年8月27日)¶
从libgeos.py(312)中删除根记录器的配置。
跳过Windows上的测试回退(308)。
在删除区域设置测试(308)时,在Windows上调用setLocale(locale.lc ou all,“”),而不是resetlcale()。
修复Sphinx警告(309)。
将.cache,.idea,.pyd,.pdb添加到.gitignore(310)。
1.5.11(2015年8月23日)¶
删除1.5.10(305)中增加的包装模块要求。distutils无法使用“rc”解析版本,但是如果我们坚持使用“a”和“b”,就可以了。
1.5.10(2015年8月22日)¶
猴补丁亲合模块绝对参考(299)。
提升relate()中的拓扑错误,而不是崩溃(294、295、303)。
1.5.9(2015年5月27日)¶
修复64位加速兼容性(274)。
1.5.8(2015年4月29日)¶
安装文件编码错误修复(254)。
支持pyinstaller(261)。
主要准备几何操作修复窗口(268,269)。
OS X二进制车轮的主要修复程序(262)。
1.5.7(2015年3月16日)¶
测试并修复错误和通知处理程序(249)。
1.5.6(2015年2月2日)¶
修正设置回归(232,234)。
SVG表示改进(233,237)。
1.5.5(2015年1月20日)¶
要还原的清单更改geox.pxi(231)。
1.5.4(2015年1月19日)¶
固定的OS X二进制车轮库加载路径(224)。
1.5.3(2015年1月12日)¶
多边形(223)中的固定所有权和潜在内存泄漏。
更广泛的释放双轮操作系统X。
1.5.2(2015年1月4日)¶
如果不满足geos依赖项,安装失败,防止更新中断(218,219)。
1.5.1(2014年12月4日)¶
恢复几何散列(209)。
1.5.0(2014年12月2日)¶
仿射变换加速(197)。
new`=`丰富的比较(195)。
几何集合构造函数(200)。
ops.snap()由geossnap(201)支持。
拓扑无效情况下更清晰的例外(203)。
1.4.4(2014-11-02)¶
将numpy float32 vals正确转换为coords(186)。
1.4.3(2014年10月1日)¶
修正wkb writer中的endianness错误(174)。
1.4.2(2014年9月29日)¶
固定栓1.4.1释放(176)。
1.4.1(2014年9月23日)¶
返回对GEOS 3.2的支持(176,178)。
1.4.0(2014年9月8日)¶
IPython的内联图像协议的SVG表示。
高效快速的矢量化contains()。
将mitre_limit默认值更改为5.0;用0.0(139)提高valueerror。
允许在加速的linestring ctor(152)中混合元组和点。
新strtree类(73)。
添加ops.nearest_points()(147)。
更快地从其他对象(克隆)创建几何对象(165)。
从包装中移除测试。
1.3.3(2014年7月23日)¶
允许单个零件几何作为ops.cacacadded_union()(135)的参数。
支持线性化(112)的仿射变换。
1.3.2(2014-05-13)¶
让lineString()获取一系列点(130)。
1.3.1(2014年4月22日)¶
退出时更可靠的代理清理(106)。
在所有平台上加载更强大的DLL(114)。
1.3.0(2013年12月31日)¶
包括对python 3.2和3.3(56)的支持,最低版本现在是2.6。
切换到geos wkt/wkb reader/writer api,更改默认值以启用三维输出尺寸,并切换到“trim”wkt output for geos>=3.3.0。
使用geos版本而不是geos c api版本来确定库功能(65)。
1.2.19(2013年12月30日)¶
添加缓冲样式选项(55)。
1.2.18(2013年7月23日)¶
添加shapely.ops.transform。
允许集合构造函数中的空序列(49,50)。
多多边形中的单个多边形。u geo_u interface_uuu更改为元组以匹配多边形。u geo_u interface_uuu(51)。
添加shapely.ops.polygonize_full(57)。
1.2.17(2013-01-27)¶
通过将对geos序列化程序的调用移动到后一个模块,避免在wkt/wkb和geometry.base之间进行循环导入。
拆线时设置“NDIM”(问题6)。
不要将DLL安装到python的dll目录(37)。
添加仿射变换的亲和模块(31)。
修复用pypy(40,41)阻止安装的名称错误。
1.2.16(2012年9月18日)¶
添加ops.unary_union函数。
当geos capi>=(1,7,0)时,别名ops.cascaded_union to ops.unary_union。
将geos_version_string属性添加到shapely.geos。
确保在访问子几何图形时设置父几何图形。
当从repo构建时,如果缺少、过时或构建目标为“sdist”,则使用cython生成u speedups.c。
无效的自相交线性环的is_简单谓词现在返回
False
.从repo中删除version.txt,它现在由distutils安装脚本编写,值为shapely.uuuuversionuuuuuuuuuu。
1.2.15(2012年6月27日)¶
在方法链接测试中消除数值敏感性(Debian Bug 663210)。
说明随机缓冲测试点的级联联合是多边形或多多边形(Debian Bug_666655)。
如果安装了Cython,可以使用它来加速。
避免在geos c api版本字符串中绊倒SVN版本号。
1.2.14(2012年1月23日)¶
几何图形的coords属性现在是可切片的,生成坐标值列表。
同构集合现在是可切片的,生成一个相同类型的新集合。
1.2.13(2011年9月16日)¶
修正了GEOS引用2GB以上内存时32位系统加速时的错误。
添加形状。uu version_uuu属性。
更新手册。
1.2.12(2011年8月15日)¶
根据需要使用VC7或VC9构建Windows发行版。
关于加速失败的详细报告。
修复1.2.11中断裂的准备好的几何结构。
不要安装1.2.11
1.2.11(2011年8月4日)¶
退出时忽略attributeError。
PYPY 1.5支持。
防止在准备好的几何破碎机上操作(12)。
可选的Cython窗口加速。
Linux 3平台支持。
1.2.10(2011年5月9日)¶
增加可选的赛马加速。
add is_cww谓词到linearing。
添加强制多边形方向的函数。
禁用在等待打包工作的Windows上生成加速。
1.2.9(2011年3月31日)¶
删除额外的全局导入。
将示例移动到shapely.examples。
为矩形多边形添加box()构造函数。
修复外来进口。
1.2.8(2011年12月3日)¶
新的平行偏移法(6)。
支持python 2.4。
1.2.7(2010-11-05)¶
支持Windows鸡蛋。
1.2.6(2010年10月21日)¶
空集合的gems属性生成[]而不是valueerror(3)。
坐标和几何类型的属性具有与上面相同的行为。
确保Z值贯彻到操作产品中(4)。
1.2.5(2010年9月19日)¶
停止分发文档/构建。
在Linux平台的test_dlls.py中包括库回退。
1.2.4(2010-09-09)¶
当没有方法的后端支持时引发attributeError。
如果无法找到并加载libgeos.so(或变体),则引发oserrror。
在find_库不起作用的Linux平台上添加geos_c dll加载支持。
1.2.3(2010-08-17)¶
添加映射函数。
修复geos<3.1的geosvalidreason符号的问题。
1.2.2(2010年7月23日)¶
添加代表性点法。
1.2.1(2010-06-23)¶
奇异多边形的固定边界。
添加了shapely.validation.explain validity函数(226)。
1.2(2010-05-27)¶
最终版本。
1.2RC2(2010-05-26)¶
将示例和测试添加到manifest.in。
发布候选2。
1.2RC1(2010-05-25)¶
发布候选。
1.2B7(2010年4月22日)¶
与新的空几何体状态相关联的内存泄漏已修复。
1.2B6(2010年4月13日)¶
已修复损坏的几何集合。
1.2B5(2010年4月9日)¶
对象可以由同一类型的其他对象构造,从而进行复制。可以从对象序列构建集合,也可以进行复制。
集合现在是其组件对象的迭代器。
使用笛卡尔软件包的手动图形的新代码。
1.2B4(2010年3月19日)¶
添加对“Sunos5”平台的支持。
1.2b3(2010年2月28日)¶
仅提供GEOS C API>=1.5的简化实现。
1.2B2(2010年2月19日)¶
修复1.2b1(212)中引入的级联_联合错误。
1.2b1(2010年2月18日)¶
更新自述文件。从setup.py中删除cruft。添加一些1.2版本的元数据,这些元数据与所需的python版本(>=2.5,<3)和外部依赖关系(libgeos_c>=3.1)有关。
1.2A6(2010年2月9日)¶
为x和y值的单独数组添加访问器(210)。
托多:在这里填补空白
1.2A1(2010年1月20日)¶
WKB编写器的正确原型设计,避免64位系统上的错误(191)。
原型libgeos_c的功能可以让py2exe应用程序以适当的方式导入(189)。
1.2分支机构(2009-09-19)
1.0.12(2009年4月9日)¶
修复拓扑和谓词描述符持有的引用。
1.0.11(2008年11月20日)¶
在geos 2.2.3中解决bug,geoscoordseq getodinate未正确导出(178)。
1.0.10(2008年11月17日)¶
修复了在1.0.8版本(176)中与geos 2.2.3的兼容性。
1.0.9(2008年11月16日)¶
查找并加载MacPorts libgeos。
1.0.8(2008年11月1日)¶
填写geos函数结果和参数类型,以防止64位拱门出现故障。
1.0.7(2008年8月22日)¶
多边形环现在与父环的尺寸相同(168)。
消除了多边形中的参考循环(169)。
1.0.6(2008年7月10日)¶
固定多多边形数据的适应。
在前面从二进制谓词引发异常。
开始分发新的Windows DLL(166)。
1.0.5(2008年5月20日)¶
增加了对地理多边形器功能的访问。
将不足的坐标元组传递给Linearing构造函数(164)时引发异常。
1.0.4(2008-05-01)¶
解开python和拓扑平等(163)。
add shape(),一个从地理接口提供程序复制坐标的工厂。除非您确实需要在外部形状存储坐标以便在其他代码中有效使用,否则将使用而不是asshape()。
在适配器(163)中缓存地理几何图形。
1.0.3(2008年4月9日)¶
调用geos函数时不要释放gil(158)。
在链接多个GEO操作员时防止故障(159)。
1.0.2(2008年2月26日)¶
修复多边形环的尺寸损失(155)。
1.0.1(2008年2月8日)¶
允许链接涉及坐标序列和几何部分的表达式(151)。
防止坐标访问器的异常使用(152)。
坐标序列现在实现numpy数组协议(153)。
1.0(2008年1月18日)¶
最终版本。
1.0 RC2(2008-01-16)¶
为149添加临时解决方案。
1.0 RC1(2008-01-14)¶
第一个候选版本
常见问题解答¶
我使用pip在conda环境中安装了Shapely。为什么不动呢?¶
小于2.0的Shapely版本使用ctype加载一个GEOS共享库。用户在其系统上拥有多个GEOS库副本的情况并不少见。加载正确的代码很复杂,而且有许多与平台相关的GEOS库加载错误。该项目在为从PyPI安装的Shape包查找正确的GEOS库方面的支持尤其不足 into 一个康达环境。我们建议Conda用户总是从Conda-Forge获得健康的身体。
shapely使用的算法有参考资料吗?¶
一般来说,shapely的谓词和操作都是从 GEOS 以及 JTS Topology Suite . 见 JTS FAQ 用于描述JTS算法的参考。
我在一个有Z坐标的几何体上使用了.buffer()。Z坐标到哪里去了?¶
中的缓冲区算法 GEOS 是纯二维的,并丢弃任何Z坐标。GEOS算法通常就是这样。