[OSGeoJapan-discuss] 【教えてください】大量のライン群の一部にフラグを立てたい

shimada yasu yas.shimada35 @ gmail.com
2020年 7月 25日 (土) 03:08:41 PDT


みなさま

3つのやり方でやりましたが、1時間で終わりました(これまで4時間)。

みっつめは、リレーショナルでやったら速いかも・・・と思ってやって
みましたが、変わらずでした。

結局、空間インデックスを作るところがポイントだったような気がしました。

ありがとうございました。引き続き精進します。

ひとつめ
update lines set flag = 999
where(
select
ST_Contains(p.geom, lines.geom)
from polygon as p) = 1;

ふたつめ
update lines set flag = 999
where(
select
(lines.geom & polygon.geom) and
ST_Contains(p.geom, lines.geom)
from polygon as p) = 1;

みっつめ
create table kekka as
select
*
from
new_lines as m1
left outer join
(select
m2.pk_uid as c
from
lines as m2,
polygon as p
where
ST_contains(p.geom, m2.geom)=1) as kekka
on m1.pk_uid = kekka.c
;

しまだ

2020年7月15日(水) 16:32 shimada yasu <yas.shimada35 @ gmail.com>:
>
> 沖様
>
> アドバイスありがとうございました。
>
> 沖様のメールで、その前にも尾崎様からのメールを頂戴していたことが分かり(汗)
> 現在、試行錯誤で作業しています。
>
> 結果が得られましたら共有いたします。
>
> ありがとうございました。
>
> 2020年7月15日(水) 16:04 OKI Miyuki <oki @ hunes.co.jp>:
> >
> >
> > 沖です。
> > 亀レスすみません。
> >
> > 空間index を有効に活用するには、
> > where 句を
> >   (lines.geom && polygon.geom) and
> >  ST_contains(lines.geom, polygon.geom) = 1;
> >
> > としてあげた方がいいかもしれません。
> >
> > 当該クエリだと、全件を ST_contains にかけてしまうのかも
> > しれません。
> >
> > 追伸:
> >   間違って osgeojapan-discuss-bounces にメールしてた(汗)
> >
> > ------------------------------------------
> > 株式会社 ヒューネス    沖 観行
> >  Tel : 011-746-6665
> > ------------------------------------------
> > > 空間インデックスを作成して走らせてみたら、わずか4秒で終了しました。
> > >
> > > おお、これはすごい・・・と思ってcreate table kekka asをつけてみたら
> > > 再び激遅になりました(いつ終わるか不明)
> > >
> > > create tableなので「書き込み速度」に依存しているのですかね。。。
> > >
> > > create table kekka as
> > > select
> > > *
> > > from
> > > lines, polygon
> > > where
> > > ST_contains(lines.geom, polygon.geom)=1;
> > >
> > > しまだ
> > >
> > > 2020年6月30日(火) 13:26 shimada yasu <yas.shimada35 @ gmail.com>:
> > > >
> > > > 嘉山様
> > > >
> > > > さっそくありがとうございました。
> > > >
> > > > 空間インデックスは作っていませんでした・・・。
> > > >
> > > > 試してみます。
> > > >
> > > > しまだ
> > > >
> > > > 2020年6月30日(火) 13:19 Yoichi Kayama <yoichi.kayama @ gmail.com>:
> > > > >
> > > > > 嘉山です
> > > > >
> > > > > それぞれのレイヤで空間インデックスは作成されていますか?
> > > > > それがあるかないかではえらく処理速度は違いますが。
> > > > >
> > > > > 2020年6月30日(火) 13:12 shimada yasu <yas.shimada35 @ gmail.com>:
> > > > >>
> > > > >> みなさま
> > > > >>
> > > > >> いつも教えてもらってばかりで恐縮ですが、ご存じでしたらご指導ください。
> > > > >>
> > > > >> 約29万のライン群があり、この一部にポリゴン(ひとつ)がかかっています。
> > > > >> ポリゴンに含まれるライン群にフラグ(あるカラムに999を入れる)を
> > > > >> 立てようとしているのですが、時間ばかりかかり困っています。
> > > > >>
> > > > >> DB処理が速いと聞いたので、不慣れなspatialiteでやってみました。
> > > > >>
> > > > >> が、それでも4時間かかりました。
> > > > >>
> > > > >> もう少し効率的な手法があれば、教えて頂けないでしょうか・・?
> > > > >>
> > > > >> select
> > > > >> *
> > > > >> from
> > > > >> lines, polygon
> > > > >> where
> > > > >> ST_contains(lines.geom, polygon.geom)=1;
> > > > >>
> > > > >>
> > > > >> --
> > > > >> 島田泰夫/一般財団法人日本気象協会/環境・エネルギー事業部/環境アセスメント事業課/〒170-6055豊島区東池袋3-1-1サンシャイン60-55F
> > > > >> /TEL:03-5958-8160 FAX:03-5958-8157 /shimada @ jwa.or.jp
> > > > >> /携帯:080-8018-1567
> > > > >> _______________________________________________
> > > > >> OSGeoJapan-discuss mailing list
> > > > >> OSGeoJapan-discuss @ lists.osgeo.org
> > > > >> https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> > > >
> > > >
> > > >
> > > > --
> > > > 島田泰夫/一般財団法人日本気象協会/環境・エネルギー事業部/環境アセスメント事業課/〒170-6055豊島区東池袋3-1-1サンシャイン60-55F
> > > > /TEL:03-5958-8160 FAX:03-5958-8157 /shimada @ jwa.or.jp
> > > > /携帯:080-8018-1567
> > >
> > >
> > >
> > > --
> > > 島田泰夫/一般財団法人日本気象協会/環境・エネルギー事業部/環境アセスメント事業課/〒170-6055豊島区東池袋3-1-1サンシャイン60-55F
> > > /TEL:03-5958-8160 FAX:03-5958-8157 /shimada @ jwa.or.jp
> > > /携帯:080-8018-1567
> > > _______________________________________________
> > > OSGeoJapan-discuss mailing list
> > > OSGeoJapan-discuss @ lists.osgeo.org
> > > https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> >
> > _______________________________________________
> > OSGeoJapan-discuss mailing list
> > OSGeoJapan-discuss @ lists.osgeo.org
> > https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>
>
> --
> 島田泰夫/一般財団法人日本気象協会/環境・エネルギー事業部/環境アセスメント事業課/〒170-6055豊島区東池袋3-1-1サンシャイン60-55F
> /TEL:03-5958-8160 FAX:03-5958-8157 /shimada @ jwa.or.jp
> /携帯:080-8018-1567



-- 
島田泰夫/一般財団法人日本気象協会/環境・エネルギー事業部/環境アセスメント事業課/〒170-6055豊島区東池袋3-1-1サンシャイン60-55F
/TEL:03-5958-8160 FAX:03-5958-8157 /shimada @ jwa.or.jp
/携帯:080-8018-1567


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