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.