[OSGeoJapan-discuss] <教えて下さい>spatialiteのcrosses、intersectionで時間がかかる

SGW00412 @ nifty.com SGW00412 @ nifty.com
2011年 12月 5日 (月) 07:33:22 EST


先日のQgisのプラグイン管理では大変お世話になりました。

(python系を外したり試行錯誤したのですが解決せず
 それでもプラグインメニューが消えることはないので
 当面、このまま行こうと思っています...)

素人質問ばかりで恐縮ですが、よろしければご教授下さい。

現在、船舶レーダで、洋上の鳥類の飛翔軌跡を記録しています。
ただし、波浪が高い時、波浪の動きも鳥と誤判定されてしまい
膨大な軌跡データが取れます。

たとえば、一日あたり、20万ラインとか...

このようなラインデータ群(シェープ)を扱うのに、通常の
GiSソフトでは処理に時間がかかるので、spatialiteを
使ってみようと思いました。

ラインデータをspatialieにインポートし、さらに1カ所の
対象区域(ポリゴン)をインポートして、両者をオーバレイして
対象区域を通過するライン群を得ようとしました。

(誤判定処理はとりあえず考えないことにします)

そこで見よう見まねで、SQLを

select
*
from
ライン群 as A,
対象区域 as B
where
Crosses(A.geometry, B.geometry);

としたところ、処理は進むのですが(row=100,200,300...と進む)
相当時間がかかります。

とりわけ、処理結果を新たなDBに取り込みたいので先頭行に
create table output as
と入れると、さらに時間がかかってしまいます。

お伺いしたいことは:
・処理時間を短縮するには、何か工夫が必要でしょうか?
(SQL文の書き方がおかしいとか...)
あるいは:
・PostGISを導入すれば、もっと処理時間が早くなるのでしょうか?

当方、この分野は素人なので、相当な勘違いをしているかも知れず
恥ずかしいのですが、これを機会にいろいろ勉強できればと思って
おります。よろしくお願い致します。

-----
島田泰夫/一般財団法人 日本気象協会 地球環境課/豊島区東池袋3-1-1サンシャイン60-
55F/TEL:03-5958-8152/FAX:03-5958-8157/shimada @ jwa.or.jp


OSGeoJapan-discuss メーリングリストの案内