QGIS에서 토폴로지를 유지하면서 다각형 파일을 일반화합니까?


35

다각형 Shapefile이 있는데 일반화해야합니다. 폴리곤을 일반화하고 "슬라이 버"와 같은 토폴로지 오류가 없는지 어떻게 확인할 수 있습니까?

나는 이미 시도했다 :

  1. 벡터-> 형상 도구-> 다각형을 선으로
  2. Vector-> Geometry Tools-> Geometry를 단순화합니다 ... 여기 화면에서 이미 볼 수 있습니다. 그럼에도 불구하고 지금은 겹침과 틈을 생성하고 있습니다.
  3. 벡터-> 형상 도구-> 선을 다각형으로

여기에 프로그램에 오류가 표시되고 충돌합니다

여기에 이미지 설명을 입력하십시오


이 문제에 대한 뉴스가 있습니까?
Oystein

불행히도 : 아니오
커트

답변:


16

GRASS는 토폴로지를 인식합니다. 처리 도구 상자에서 v.generalize 를 사용 하여 다각형을 단순화하고 입력 데이터가 위상 적으로 올바른 경우 출력도 가능합니다.

여기에 이미지 설명을 입력하십시오


Windows 설치 프로그램을 사용하여 v.generalize를 실행하려고 할 때 오류가 발생합니다 (종종 누락). 특별한 구성이 필요합니까?
Kurt

@ 커트 : 독립형 설치 프로그램? 포함 된 GRASS 버전이 확실하지 않습니다. 처리 설정에서 GRASS 6.x 또는 7.x 및 설치 위치를 지정할 수 있습니다. 이러한 구성을 설정에 맞게 조정하십시오.
underdark

예, stanalone installer를 사용합니다. 귀하의 조언에 따라 처리 옵션을 통해 잔디 7을 비활성화하고 qrass 6의 경로를 올바르게 구성했습니다. 이 경로는 이전 qgi에서 남은 것이 맞지 않습니다. 이제 v.generalize를 실행할 수 있지만 결국 새로운 오류가 발생합니다. 출력 레이어를 열 수 없으며 마지막으로 잔디가 올바르게 설치 및 구성되었다는 메시지가 표시됩니다. 제안이나 힌트를 주시겠습니까?
Kurt

일반적으로이 오류는 지리 처리가 특정 단계에서 실패했음을 의미합니다. 도구가 실행되는 동안 생성 된 로그를 검사하여 오류가 발생하는 위치를 확인해야합니다.
underdark

7

이것은 @Underdark의 대답에 대한 예비로 볼 수 있으므로 일반화 하기 전에 벡터 레이어의 토폴로지를 정리할 수 있습니다 . GRASS에는 다음 과 같은 레이어를 복구하는 여러 도구가 포함 된 v.clean 기능이 있습니다.

  • 스냅 가장 가까운 정점에있는 '스냅'라인
  • 귀찮은 댕글을 제거하는 rmdangle
  • 중복 형상 형상을 제거하는 rmdupl

아래 이미지에 표시된 다양한 다른 것들 :

청소

도구의 실행 민감도에 따라 임계 값을 설정할 수도 있습니다. 개인적으로, 내가 사용하는 경향이 확인 형상 유효 (QGIS의 기능을 벡터 > 형상 도구 > 기하학의 유효성을 확인 , 모든 존재하는 오류를하고 있는지 확인에 적절한 도구를 사용하여) v.clean . 오류가 제거되면 일반화하기에 더 나은 위치에 있어야합니다.

이것이 도움이되기를 바랍니다!


3
그리고 단순한 버텍스 감소가 충분하다면, 자두 도구가 그렇게 할 수 있기 때문에 v.generalize는 필요하지 않습니다.
Gabor Farkas

귀중한 정보가 포함 된 @Underdark의 답변에 예비 감사합니다. 물론 명시 적으로 말하지는 않았지만 물론 일반화하려는 다각형 파일은 위상 적으로 깨끗합니다. garbage-garbage out :-)]
커트

@ 커트, 그건 말이 :)
조셉

2

MapShaper를 사용해 보셨습니까 ? 이것이 다각형을 일반화하는 좋은 방법이라는 것을 알았습니다. 코드를 다운로드하려면 오프라인 버전도 있습니다.

대안은 이것을 GeoJson으로 변환 한 다음 "토폴로지 보존 형상 단순화"를 지원하는 TopoJson https://github.com/mbostock/topojson


Mapshaper를 사용해 보았습니다. 정말 훌륭한 도구입니다
Kurt

1
한 번 더 의견 : 제목에서 알 수 있듯이 : qgis 솔루션을 찾고 있습니다. Mapshaper imho는 토폴로지를 보존하지 않습니다 (매우 강력한 일반화를 통해 자신을 증명하십시오!). Topojson : 이것은 자바 스크립트 소스 코드로 프로그래머에게만 유용합니다
Kurt

죄송합니다. QGIS만의 측면을 놓쳤습니다. QGIS는 geojson을 처리합니다. 프로그래머가 아닌 사용자가 topojson 단순화 기능을 QGIS 플러그인으로 사용하여 액세스 할 수 있는지 궁금합니다.
djq

오프 주제 라인을 계속합니다 : OpenJUMP에는 이러한 목적으로 "Simplify Polygon Coverage"도구가 있습니다.
user30184

0

방금 빠른 테스트를 수행 한 결과 벡터 메뉴 아래의 "Simplify Geometryries"도구가 토폴로지를 고려한 것으로 보입니다. Snapping Options에서 "Topicsological Enable"을 선택하지 않고 시도했습니다.

편집 : 이것은 다각형 파일에서 직접 수행되었습니다. 왜 먼저 선으로 변환합니까?


대런, enablr 위상 편집으로 시도해 볼 힌트에 감사드립니다
Kurt

1
안녕하세요 대런, 그것은 토폴로지를 존중하지 않습니다. "토폴로지 편집 사용"과는 차이가 없습니다. 나는 이것이 일반 계층 이 새로운 계층을 생성하기 때문에 "토폴로지 편집 가능"은 선택된 계층 만 사용할 수 있다고 생각한다. 올바른 토폴로지가 있다면 매우 강력한 gerneralization을 수행하고 다시 확인 하시겠습니까? 감사합니다
Kurt

1
커트; 흥미 롭군 강력한 일반화를 수행하는 것이 옳은 것 같습니다! 죄송합니다!
Darren Cope

1
이 확인란은 누구나 검색 할 수 있도록 QGIS 2.2 (아마도)에서 사라졌습니다.
lynxlynxlynx

0

SAGA가 당신을 위해 일한다는 나의 마지막 대답은 여기에 같은 토론 이 있습니다.


그 토론에서 당신의 대답에 따르면, SAGA는 토폴로지를 보존하지 않는 것 같습니다. 적어도 더 이상은 아닙니다.
Oystein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.