postgis에서 공간 분할 속도를 높이는 방법은 무엇입니까?


9

겹치는 다각형이 많아서 겹치는 다각형을 피하기 위해 공간을 분할하려고합니다. 내 문제는 매우 간단하다고 생각합니다. ESRI 제품과 http://arcscripts.esri.com/details.asp?dbid=16700을 사용하여 동료가 48 초 안에 계산했습니다.

http://s3.opengeo.org/postgis-power.pdf#page=24 ( http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology를 사용하여 세부 정보 추측)를 사용하여 postgis로 시도하고 있습니다. 영감으로)) 너무 느려서 10 개 이상의 폴리로 할 수 없습니다 (800 개를 나눕니다). 느린 부분은 ST_Union이며 다양한 것을 시도했지만 성공한 곳은 없습니다. 현재 상황은 다음과 같습니다.

select geom from
(select st_linemerge(st_union(geom)) as geom from
    (select st_exteriorring((st_dumprings((st_dump(t.geom)).geom)).geom) as geom from
        (SELECT geometry AS geom, id
               FROM tt
              WHERE campaign_id = 204
              ORDER BY id limit 200) t) t2) t3

이것은 26 분 동안 계산되었습니다 (linemerge ()는 실제로 아닙니다). st_dump가 당신을 버그로 삼는 경우 폴리는 MultiPolygon입니다.

팁이 있습니까? 라인 워크의 st_union ()은 매우 느립니다.

감사,

니코

추신 : 여기 몇 가지 숫자가 있습니다 : 852 개의 다중 다각형, 14880 개의 다각형으로 이어지며 총 315513 개의 정점이 21467 개의 선 스트링으로 이어집니다.


아무도 대답하지 않으면 postGIS 메일 링리스트를 사용해보십시오.
— GIS-Jonathan

나는 메일 링리스트를 좋아하지 않는다. 또한 JTS에 대해 불평 할 수도있는 GEOS 문제 일 수도있다. 문제를 공개적으로 유지하는 것을 선호한다.
— nraynaud

라인 워크를 수집하고 빈 지오메트리와의 결합을 수행하면 800 초에 수행 할 수 있습니다 : st_union (st_collect (geom), st_setsrid (geomfromtext ( 'POINT EMPTY'), 900913)) ESRI보다 거의 20 배 느립니다.
— nraynaud

1
도움이된다면 st_linemerge (st_union ...)에서 st_union을 삭제하십시오
— simplexio

답변:


3

이 답변은 @nraynaud에 직접 도움이되지는 않지만 주제에 대해 약간의 도움이 될 것입니다.

GEOS와 관련된 문제로 spatiaLite <4.0에서 비슷한 문제가 있습니다. 문제에 대한 논의는 이 링크 를 참조하십시오 .

해결 방법은 ST_Union () 함수를 ST_UnaryUnion (ST_Collect ())로 바꾸는 것입니다. 불행히도 ST_UnaryUnion은 post gis 2.0까지 사용할 수 없습니다 (알 수있는 한).


1

어떤 PostGIS 버전을 사용하고 있습니까? PostGIS <1.4 또는 GEOS <3.2를 사용하는 경우 통합이 훨씬 느려집니다. 1.4에서 훨씬 빠른 통합이 도입되었지만 GEOS 3.2 이상이 필요합니다. 따라서 1.4보다 낮은 버전을 사용하는 경우 최소 1.5로 업그레이드합니다.

SELECT postgis_full_version();

확인하다.

또한 다각형의 원래 가장자리를 유지하려는 의도도 있습니다. 겹치는 영역 만 녹이려면

SELECT ST_Union(geom) FROM tt WHERE campaign_id = 204;

트릭을 할 것입니다.


안녕하세요, 결과는 다음과 같습니다 : "POSTGIS ="1.5.3 "GEOS ="3.3.2-CAPI-1.7.2 "PROJ ="Rel. 4.8.0, 2012 년 3 월 6 일 "LIBXML ="2.7.3 "USE_STATS". 최근 GEOS에서 노조에 관련된 추가 항목을 찾을 수 없습니다. 다각형 합집합에서 하나의 속도 향상을 발견했지만 다각형을 병합하지 않으며이 속도 향상은 논란의 여지가있는 것으로 보입니다. 겹치는 다각형에 대한 값을 추가해야하기 때문에 다각형을 통합하고 싶지 않습니다.
— nraynaud
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.