@snorfalorpagus 、ここに行きます:
LINESTRING EMPTY
オブジェクトに沿ってポイントを補間しようとすると、トレースバックまたは警告をスローする必要がありますが、代わりにカーネルをクラッシュさせます。
.png
の問題の終わりのレポートを参照)# python shapely_interpolate_segmentation_fault.py
import faulthandler
faulthandler.enable()
from shapely.geometry import Point, LineString
test_line = LineString(((0,0), (1,1), (2,1)))
print(test_line)
empty_line = test_line.parallel_offset(10., side='right')
print(empty_line)
empty_line.interpolate(.5, normalized=True)
$ python shapely_interpolate_segmentation_fault.py
LINESTRING (0 0, 1 1, 2 1)
LINESTRING EMPTY
Fatal Python error: Segmentation fault
Current thread 0x000000010ce7f5c0 (most recent call first):
File "/Users/user/miniconda3/envs/py3_at1866/lib/python3.6/site-packages/shapely/linref.py", line 22 in __call__
File "/Users/user/miniconda3/envs/py3_at1866/lib/python3.6/site-packages/shapely/geometry/base.py", line 777 in interpolate
File "/Users/user/miniconda3/envs/py3_at1866/lib/python3.6/site-packages/shapely/impl.py", line 37 in wrapper
File "shapely_interpolate_segmentation_fault.py", line 9 in <module>
Segmentation fault: 11
conda
からインストールされた1.6b4うーん、exceptNullデコレータがありますが、あまり使われていないようです。 ここで完璧かもしれませんか?
https://github.com/Toblerity/Shapely/blob/master/shapely/geometry/base.py#L160
https://github.com/Toblerity/Shapely/search?q=exceptnull&unscoped_q=exceptnull
@kannes excepNull
デコレータを使用するのが正しいと思います。 PRを提出しますか?
@snorfalorpagus @kannesPRを提出できます。 exceptNull
デコレータをinterpolate
に追加するだけでしょうか?
+簡単な単体テスト
わかった。 今日は提出してもらいたいと思います。
GitHawkで送信
最も参考になるコメント
うーん、exceptNullデコレータがありますが、あまり使われていないようです。 ここで完璧かもしれませんか?
https://github.com/Toblerity/Shapely/blob/master/shapely/geometry/base.py#L160
https://github.com/Toblerity/Shapely/search?q=exceptnull&unscoped_q=exceptnull