Thuật toán để sửa các lỗi tô pô trong các ứng dụng phần mềm GIS


19

Câu hỏi liên quan ở đây.

Tôi nhận thấy rằng việc đảm bảo tính chính xác của cấu trúc liên kết là cần thiết cho các ứng dụng GIS, điều này là do đầu vào từ hoạt động boolean của người dùng hoặc đa giác có thể có các vấn đề tô pô nghiêm trọng (mặc dù đa giác có vẻ chính xác) sẽ ảnh hưởng đến chất lượng của các hoạt động tiếp theo.

Làm sạch đa giác là cách Geo Wizard làm để đảm bảo tính chính xác của cấu trúc liên kết.

Arcgis cũng có một lệnh để dọn sạch các mảnh.

Câu hỏi của tôi không phải là về cách sử dụng các gói phần mềm hiện có để đảm bảo rằng dữ liệu đầu vào đa giác là chính xác về mặt cấu trúc; thay vào đó, câu hỏi của tôi là về cách các gói phần mềm này thực hiện các quy trình làm sạch đó. Nói cách khác, thuật toán tôi có thể sử dụng là gì để đảm bảo rằng tôi có thể sửa tất cả các lỗi tô pô, với một tập hợp các đầu vào đa giác?


2
Còn có một công cụ ArcGIS GP, được gọi là "Tích hợp", mà có một lời giải thích ngắn gọn về các thuật toán trong tài nguyên giúp đỡ: help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//... - Tuy nhiên nó không được chỉ định tốt.
Allan Adair

Liên kết của riêng bạn từ Geo Wizards thực sự thể hiện các thuật toán khá tốt. Bạn mong đợi gì hơn nữa?
johanvdw

@hohanvdw, những gì liên kết hiển thị không phải là thuật toán, mà là các bước về cách sử dụng phần mềm để kích hoạt thuật toán để làm sạch đa giác. Sự khác biệt giữa hai là rất lớn.
Graviton

1
Tìm kiếm các thuật toán phẳng có thể tạo ra thứ gì đó hữu ích.
Kirk Kuykendall

@KirkKuykendall, tôi hoàn toàn không biết làm thế nào để làm phẳng máy bay; Tôi nghĩ rằng nó có thể áp dụng nhiều hơn cho lý thuyết đồ thị hơn là loại công cụ hình học tính toán này?
Graviton

Câu trả lời:


7

Một tìm kiếm Google Scholar nhanh chóng xuất hiện các bài viết được trích dẫn tốt sau đây:


+1 Trông giống như một tờ giấy được nghĩ ra. Tôi muốn các tác giả sẽ xác định những gì họ có nghĩa là "cảnh" mặc dù.
Kirk Kuykendall

Cảm ơn, tôi đã thêm một bài viết thứ hai (của một trong những tác giả tương tự), nhưng thoạt nhìn tôi vẫn không thể biết "cảnh" là gì.
blah238

10

Bạn có thể tìm thấy một mô tả chi tiết về các thói quen làm sạch tôpô trong mã nguồn và hướng dẫn sử dụng của GRASS GIS: http://grass.osgeo.org/programming7

Các thói quen làm sạch được mã hóa ở đây: http://trac.osgeo.org/grass/browser/grass/trunk/vector/v.clean

Ví dụ cho các thói quen cơ bản:

Các khái niệm cơ bản được nêu ra ở đây: http://grass.osgeo.org/programming7/vectorlib.html#vlibTopoExamples


4

Mặc dù không phải là một thuật toán, trang này cung cấp cho bạn một số thông tin về loại lỗi cấu trúc liên kết "kiểm tra hình học" tìm kiếm trong các công cụ ArcGIS Kiểm tra Hình học / Sửa chữa Hình học. 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

Tôi không nghĩ có một cách để tự động hóa hoàn toàn việc sửa các lỗi tô pô trong một tập dữ liệu nhất định. Một số thứ, chẳng hạn như nguy hiểm có thể tự động phân tách và sau đó xóa dangle kết quả. Nhưng sau đó, những gì về độ dốc giữa hai đa giác liền kề, đa giác nào nên được hợp nhất với mảnh nào để loại bỏ nó? Đó là loại câu hỏi dường như cần đầu vào của người dùng. Tuy nhiên, để xác định các lỗi, tôi nghĩ rằng các thuật toán sử dụng một số biến thể của DE-9IM (Mở rộng theo chiều 9 một cái gì đó). Tôi nghĩ rằng đặt cược tốt nhất của bạn sẽ là xem xét Bộ cấu trúc liên kết Java (JTS). Cụ thể là lớp Biểu đồ hình học. Tôi nghĩ rằng điều này có thể được sử dụng để xây dựng các thành phần khác nhau của một hình học cụ thể, và sau đó được sử dụng để kiểm tra các vấn đề cấu trúc liên kết khác nhau. Tôi chưa bao giờ làm điều đó, nhưng nhìn vào nó cách đây không lâu.

Nếu bạn không quen thuộc với Java, GEOS là hương vị C ++ của JTS hoặc NetTopologySuite là hương vị C #.

Mong rằng sẽ giúp.


1

Tài liệu lệnh tích hợp của ArcGIS đã được đề cập, nhưng ESRI cũng đã tạo ra một tài liệu kỹ thuật Hiểu về xử lý hình học trong ArcGIS, ghi lại logic xử lý được sử dụng bởi Integrate (và các hoạt động xử lý địa lý liên quan đến dung sai nói chung). Điều này tập trung vào việc tránh và sửa các lỗi tôpô được tạo ra từ quá trình địa vật lý. Có một vài tài liệu tham khảo được đưa ra cũng có thể hữu ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.