gpt4 book ai didi

python - 使用 qgis 和 shaply 错误 : GEOSGeom_createLinearRing_r returned a NULL pointer

转载 作者:行者123 更新时间:2023-12-03 13:50:23 24 4
gpt4 key购买 nike

我试图在 QGIS 中创建一个多边形 shapefile,并通过 shapely 在 python 中读取它。示例代码如下所示:

import fiona
from shapely.geometry import shape
multipolys = fiona.open(somepath)
multi = multipolys[0]
coord = shape(multi['geometry'])

EOSGeom_createLinearRing_r 返回一个 NULL 指针
我检查了多边形在 QGIS 中是否有效并且没有报告错误。实际上,它甚至不适用于 QGIS 中生成的简单三角形。任何人都知道如何解决它?

谢谢

最佳答案

像 J.P. 一样,我在创建 LineStrings 时也遇到了这个问题。有an old issue (2016)在似乎相关的 Shapely github 存储库中。更改导入的顺序为我解决了这个问题:

from shapely.geometry import LineString
import fiona

LineString([[0, 0], [1, 1]]).to_wkt()
# 'LINESTRING (0.0000000000000000 0.0000000000000000, 1.0000000000000000 1.0000000000000000)'
然而
import fiona
from shapely.geometry import LineString

LineString([[0, 0], [1, 1]]).to_wkt()
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# File "C:\Users\xxxxxxx\AppData\Roaming\Python\Python37\site-packages\shapely\geometry\linestring.py", line 48, in __init__
# self._set_coords(coordinates)
# File "C:\Users\xxxxxxx\AppData\Roaming\Python\Python37\site-packages\shapely\geometry\linestring.py", line 97, in _set_coords
# ret = geos_linestring_from_py(coordinates)
# File "shapely\speedups\_speedups.pyx", line 208, in shapely.speedups._speedups.geos_linestring_from_py
# ValueError: GEOSGeom_createLineString_r returned a NULL pointer
Shapely 存储库中的其他一些问题要查看
  • 553用于 Mac 上的导入订单问题
  • 887 (与 osgeoshapely 相同的反向导入顺序技巧)
  • 919
  • 关于python - 使用 qgis 和 shaply 错误 : GEOSGeom_createLinearRing_r returned a NULL pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62075847/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com