GIS 소프트웨어 앱에서 토폴로지 오류를 수정하는 알고리즘


19

관련 질문은 여기에 있습니다.

토폴로지 정확성을 보장하는 것이 GIS 응용 프로그램에 필수적이라는 것을 알았습니다. 이는 사용자 또는 다각형 부울 연산의 입력에 후속 연산의 품질이 저하 될 수있는 심각한 토폴로지 문제 (폴리곤이 올바르게 보이지만)가있을 수 있기 때문입니다.

깨끗한 다각형 은 Geo Wizard가 토폴로지의 정확성을 보장하기 위해 수행하는 방식입니다.

Arcgis는 또한 은색 을 청소 하는 명령가지고 있습니다.

내 질문은 기존 소프트웨어 패키지를 사용하여 다각형 입력 데이터가 위상 적으로 올바른지 확인하는 방법에 관한 것이 아닙니다 . 오히려 내 소프트웨어 질문은 이러한 소프트웨어 패키지가 어떻게 이러한 청소 절차를 구현하는지에 관한 것입니다. 다시 말해, 다각형 입력 세트가 주어지면 모든 위상 오차를 고칠 수 있는지 확인하는 데 사용할 수있는 알고리즘은 무엇입니까?


2
도움말 자원에서 알고리즘에 대한 간략한 설명이 있습니다 "통합"라는 또 다른는 ArcGIS GP 도구는있다 : help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//...는 - 그러나 그것을 제대로 지정되지 않았습니다.
Allan Adair

Geo Wizards의 링크는 실제로 알고리즘을 상당히 잘 나타냅니다. 당신은 무엇을 더 기대합니까?
johanvdw

@hohanvdw, 링크가 보여주는 것은 알고리즘이 아니라 소프트웨어를 사용하여 다각형을 청소하기 위해 알고리즘을 활성화하는 방법에 대한 단계입니다. 둘의 차이는 크다.
Graviton

1
평탄화 알고리즘을 검색하면 유용한 것이 나올 수 있습니다.
Kirk Kuykendall

@ KirkKuykendall, 나는 평탄화 알고리즘이 어떻게 도움이되는지 잘 모르겠습니다. 이런 종류의 계산 기하학보다는 그래프 이론에 더 적합하다고 생각 했습니까?
Graviton

답변:


7

빠른 Google 학술 검색 검색으로 다음과 같은 호평을받는 기사가 나왔습니다.


+1 잘 알려진 종이처럼 보입니다. 저자들이 "장면"의 의미를 정의하기를 바랍니다.
Kirk Kuykendall

고마워, 나는 같은 저자 중 한 사람에 의해 두 번째 기사를 추가했지만 언뜻보기에는 여전히 '장면'이 무엇인지 알 수 없습니다.
blah238

10

GRASS GIS의 소스 코드 및 매뉴얼에서 토폴로지 클리닝 루틴에 대한 자세한 설명을 찾을 수 있습니다. http://grass.osgeo.org/programming7

청소 루틴은 다음과 같습니다. http://trac.osgeo.org/grass/browser/grass/trunk/vector/v.clean

기본 루틴의 예 :

기본 개념은 다음과 같습니다. http://grass.osgeo.org/programming7/vectorlib.html#vlibTopoExamples


4

알고리즘은 아니지만이 페이지에서는 ArcGIS 도구 형상 확인 / 복구 형상에서 "지오메트리 확인"에서 어떤 유형의 토폴로지 오류가 나타나는지에 대한 정보를 제공합니다. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000003v000000

Null geometry: The record will be deleted from the feature class. To keep records with null geometry, uncheck the tool dialog option Delete Features with    Null Geometry, or in scripting set the delete_null parameter to KEEP_NULL.
Short segment: The geometry's short segment will be deleted.
Incorrect ring ordering: The geometry will be updated to have correct ring ordering.
Incorrect segment orientation: The geometry will be updated to have correct segment orientation.
Self intersections: the areas of overlap in a polygon will be dissolved.
Unclosed rings: The unclosed rings will be closed by connecting the ring's end points.
Empty parts: The parts that are null or empty will be deleted.
Duplicate vertex: One of the vertices will be deleted.
Mismatched attributes: The Z or M coordinate will be updated to match.
Discontinuous parts: Multiple parts will be created from the existing discontinuous part.
Empty Z values: The Z value will be set to 0.

3

주어진 데이터 세트에서 토폴로지 오류 수정을 완전히 자동화하는 방법이 없다고 생각합니다. 매달려 같은 일부 항목은 결과 매달려 매달려 삭제 및 자동화 할 수 있습니다. 그러면 인접한 두 다각형 사이의 슬라이 버는 어떤 폴리곤을 제거하기 위해 어떤 폴리머와 병합해야합니까? 해당 유형의 질문에는 사용자 입력이 필요한 것 같습니다. 그러나 오류를 식별하기 위해 알고리즘은 일종의 DE-9IM 변형을 사용한다고 생각합니다 (Dimensionally extended 9 무언가). 최선의 방법은 Java Topology Suite (JTS)를 보는 것입니다. 특히 Geometry Graph 클래스입니다. 이것이 특정 지오메트리의 다른 구성 요소를 빌드하는 데 사용될 수 있고 다른 토폴로지 문제를 확인하는 데 사용될 수 있다고 생각합니다. 나는 그것을 한 적이 없지만 오래 전에 그것을 조사했습니다.

Java에 익숙하지 않은 경우 GEOS는 JTS의 C ++ 버전이거나 NetTopologySuite는 C # 버전입니다.

희망이 도움이됩니다.


1

ArcGIS의 Integrate 명령 문서는 이미 언급되었지만 ESRI는 또한 Integrate에서 사용하는 처리 논리 (보다 일반적으로 공차를 포함하는 지오 프로세싱 작업)를 문서화하는 ArcGIS의 기하학적 처리 이해 기술 문서를 작성했습니다. 이는 지오 프로세싱에서 생성 된 토폴로지 오류를 피하고 수정하는 데 중점을 둡니다. 유용한 참고 자료가 몇 가지 있습니다.

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