Shapely: 無効なジオメトリでshapely.geometry.asShapeを呼び出すとクラッシュする

作成日 2017年11月20日  ·  4コメント  ·  ソース: Toblerity/Shapely

期待される動作と実際の動作。

このコード:

import shapely.geometry
x = shapely.geometry.asShape({'coordinates': [[1130.0, 1110.0]], 'type': 'LineString'})
assert x.is_valid
x.wkb

まず、 is_validはFalseではなくTrueを返し、呼び出すと次のログが表示されます。

IllegalArgumentException: point array must contain 0 or >1 elements

次に、wkbを要求すると、Pythonプロセスがクラッシュします。これはさらに悪いことです。

python3.5: geos_ts_c.cpp:5240: unsigned char* GEOSWKBWriter_write_r(GEOSContextHandle_t, geos::io::WKBWriter*, const geos::geom::Geometry*, std::size_t*): Assertion `0 != geom' failed.
Aborted (core dumped)

問題を再現する手順。

import shapely.geometry
x = shapely.geometry.asShape({'coordinates': ((1130.0, 1110.0),), 'type': 'LineString'})
assert not x.is_valid
x.wkb

オペレーティング・システム

UbuntuXenial。 Python3.5.2。

形の良いバージョンと出所

1.6.2pypiから

bug

最も参考になるコメント

こんにちは、私は1.7.0で何も試していません。 その後、1.6.3に戻り、その修正.....その悲しい

全てのコメント4件

レポート@pvalseccをありがとう。 https://github.com/Toblerity/Shapely/issues/509に関連しているよう

うん、確かに。 しかし、私はそれがどれほど長く続いているかに少し驚いています。

解決しました。 修正は1.6.3にあります。

こんにちは、私は1.7.0で何も試していません。 その後、1.6.3に戻り、その修正.....その悲しい

このページは役に立ちましたか?
0 / 5 - 0 評価