QGIS에서 지오메트리 유효성 오류를 수정 하시겠습니까?


31

미국 카운티 수준에서 소유권 데이터를 작업하고 있습니다. 카운티 당 수천 개의 세금 소포가 포함 된 하나의 shapefile이 있습니다. 같은 개인이 소유 한 소포를 나타내는 다각형을 분해해야합니다. 쉐이프 파일이 깨끗하지 않으면 QGIS의 "디졸브"도구가 작동하지 않는 것 같습니다. 먼저 "지오메트리 유효성 검사"도구를 사용하여 지오메트리 유효성 문제를 해결해야합니다. 그러나 때로는 수백 개의 오류가 있습니다. 수동으로 수정하는 데 많은 시간이 걸립니다. 시간을 절약 할 수있는 다른 전략이 있습니까?

QGIS 2.4.0을 사용하고 있습니다.


2
풀에서 파일을 가져오고 v.clean을 사용하려고 했습니까? 아마 많은 오류를 해결할 것입니다.
세르지오

답변:


20

다각형에서 미묘한 버퍼를 실행하십시오. CRS가 UTM 인 경우 -0.001로 설정하면 시도해 볼 가치가 있습니다. 벡터 | 버퍼


4
BillW에서 처음 제안한 "버퍼"솔루션을 사용해 보았습니다. 그것은 내 문제의 97 %를 해결했으며 지금은 충분합니다. 작업을 수동으로 완료 할 수 있습니다. 다각형에 작은 버퍼를 실행해도 내가 믿는 길에서 아무런 문제가 발생하지 않습니다. 그러나 ST_MakeValid를 사용하거나 v.clean을 사용하는 것이 더 정확하고 더 나은 경우를 볼 수 있습니다.
Bap

18

오류가있는 레이어가 있으면 일반적으로 Processing Toolbox 의 GRASS 기능 v.clean 을 통해 레이어를 실행합니다 . 어떤 경우에 어떤 도구가 가장 적합한 지 실제로 알지 못했지만 일반적으로 bpol 기능을 선택합니다 .

더 중요한 것은 스냅 공차최소 영역에 대한 고급 매개 변수 를 설정하는 것 입니다 . 층에 따라, 나는 보통 스냅을 위해 0.1에서 2 미터를 선택하고 최소 면적을 위해 10 평방 미터를 선택합니다.

스냅은 예를 들어 경계를 공유하지만 작은 오프셋을 갖는 경계를 정렬하며 최소 영역은 교차로 등에서 작은 슬라이 버를 제거합니다.

bpol과 함께 이것은 일반적으로 토폴로지를 크게 변경하지 않고 모든 오류를 해결합니다.


11

처리 도구 상자에 lwgeom 공급자를 추가하는 lwgeom 플러그인을 추가하여 QGIS에서 ST_MakeValid를 직접 사용할 수 있습니다. Postgis / patialite는 동일한 liblwgeom을 사용하여 ST_MakeValid를 수행합니다.

liblwgeom을 설치하고이를 가리 키도록 처리 제공자를 구성해야합니다.

lwgeom 제공자는 실험적으로 찾을 수 있습니다 : https://plugins.qgis.org/plugins/processinglwgeomprovider/


3
방금 최신 마스터 버전의 qgis 처리에 사용할 수 있도록 새로운 버전의 processinglwgeom 공급자를 출시했습니다. (프로세스가 리팩토링 중입니다)
Luigi Pirelli

2
안녕하세요 @LuigiPirelli Lwgeom 플러그인을 사용하여 비슷한 문제를 해결하려고 시도했지만 실행 중에 항상 충돌하므로 QGis를 다시 시작해야합니다. 이 문제를 해결할 수있는 방법이 있습니까? 감사.
Alex Fernández Poulussen

1
더 많은 실행 컨텍스트가 없으면 말하기가 어렵습니다. 2014 년부터 Btw는 qgis에서 더 많은 수리 지오메트리 도구를 사용할 수 있습니다. 일반적으로 lwgeom에서의 충돌은로드되거나 공유 된 객체에서 정렬 오류 (더러운 설치) 문제입니다. 다른 도구를 테스트 했습니까?
루이지 피렐리

1
QGIS 2.18과 함께 작동합니까? 내 QGIS 버전에서 작동, 보이지 않는 github.com/faunalia/processinglwgeomprovider
RutgerH

1
QGIS3.x는 GEOS lwgeom MakeValid 알고리즘에 대한 래퍼 인 처리 고유 fixgeometry 알고리즘을 가지고 있습니다. db가 필요하지 않습니다.
루이지 피렐리


2

qgis에서 비슷한 문제가 발생했습니다. 폴리가 잘못 투영되기 시작했습니다. Bernd가 제안한대로 처리 도구 상자에서 Grass fuction v.clean을 사용했습니다. bpol은 작동하지 않지만 break 기능으로 수정 된 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.