Cách xác định đa giác với lỗi cờ rủ


12

Làm việc trong ArcMap, tôi đã gặp các lỗi trong một lớp đa giác mà tôi sẽ gọi là "cờ slivers" (được lấy từ ngôn ngữ tương tự trong bưu kiện gọi là "cờ rất nhiều"). Các đa giác cúi này (xem hình ảnh bên dưới) thường chỉ bao gồm một nút bổ sung mà người dùng đã vô tình thêm vào.

Trong các hình ảnh bên dưới, "cờ" và "cột cờ" là một tính năng một phần trong đó "cột cờ" chỉ chồng lên nhau. Hình ảnh bên trái có tổng cộng 5 nút.

cờ đơn giản nhập mô tả hình ảnh ở đây

Khi nhìn thấy một mình các lỗi rất rõ ràng, nhưng khi nhiều đa giác liền kề nhau, chúng gần như không thể nhìn thấy vì chúng dường như là ranh giới giữa 2 đa giác.

Điều này có thể xảy ra bởi vì họ đang sử dụng trình soạn thảo dựa trên shapefile và do đó tôi không thể thực hiện bất kỳ quy tắc chỉnh sửa dựa trên cấu trúc liên kết nào để ngăn điều này xảy ra trong tương lai.

Có ai có cách xác định và giải quyết các loại lỗi này không? Tôi thích một phương pháp tự động cả nhận dạng và giải quyết vì người dùng trường là những người đã tạo ra lỗi, nhưng tôi bị mắc kẹt trong việc dọn dẹp sau chúng. Cảm ơn.


3
Tôi tự hỏi tại sao Esri cung cấp quy tắc không thể tự giao nhau cho các tính năng dòng, nhưng không phải cho đa giác.
Kirk Kuykendall

Công cụ Kiểm tra Hình học có tìm thấy chúng không?
mkennedy

Cũng tìm kiếm trên dangle và overshoot. Cả hai đã đưa ra một số arcscripts, nhưng không có gì hiện tại và nhiều cho polylines, thay vì đa giác.
mkennedy

Ryan, bạn có thể cung cấp một tập hợp con dữ liệu của bạn không? Ngoài ra, bạn có từng điều tra nhận xét của mkennedy về công cụ "Kiểm tra hình học" không?
Allan Adair

Phiên bản nào của arcmap?
Kirk Kuykendall

Câu trả lời:


5

nếu bạn có quyền truy cập vào các công cụ Safe Fme, bạn sẽ thấy máy biến áp có tên spikeRemover hữu ích, hãy xem thử. Bạn có thể thử phiên bản giới hạn có thể tải xuống của SAFE FME hoặc kiểm tra giấy phép ArcGis của bạn để biết "Tiện ích mở rộng FME cho ArcGIS"

http://docs.safe.com/fme/html/FME_Transformers/Default.htmlm#Transformers/spikeremover.htmlm

http://cdn.safe.com/resource/fme/FME-Transformer-Reference-Guide.pdf


Tôi đã có thể sử dụng thành công SpikeRemover trong tiện ích mở rộng ArcGIS Data Interop để dọn sạch các gai. Nó cũng có các đầu ra cho phép bạn chỉ định các tính năng không thay đổi, thay đổi và được gắn cờ (gai). Tất cả những điều này rất hữu ích trong việc xác định các tính năng có đột biến và tạo một lớp "không có gai" mới rất dễ dàng bằng cách đăng cả hai đầu ra không thay đổi và thay đổi lên cùng một lớp và đầu ra "được gắn cờ" vào lớp QC để kiểm tra thêm. esri.com/software/arcgis/extensions/datainteroperability/
Kẻ

2

Tôi không chắc vấn đề của bạn xảy ra ở đâu, hoặc nơi bạn có khả năng tránh / khắc phục nó. Nhưng tôi đã thấy điều này rất nhiều trong cơ sở dữ liệu SDE của chúng tôi mặc dù hình học trong SDE luôn luôn phải chính xác. Trong trường hợp của chúng tôi, đó là vì chúng tôi đã nhập các shapefile bằng ArcObjects vào SDE. Khi hình học được lưu trữ, chúng được gắn vào lưới của SDE và do đó tạo ra hình học không chính xác với các phần tử bạn mô tả khi hình học có một đỉnh nhọn. Điều này là do các shapefile có độ chính xác gấp đôi cho tọa độ và SDE một lưới thô hơn.

Giải pháp của chúng tôi là sửa hình học khi chúng được nhập bằng cách:
1. Đặt tham chiếu không gian của hình học từ shapefile thành tham chiếu không gian của lớp tính năng SDE tương ứng
2. Đưa hình học vào tham chiếu không gian (IGeometry.SnapToSpatialReference () )
3. Đặt ITopologicalOperator2.IsKnownSimple = false (quan trọng, nếu không thì đơn giản hóa không làm gì cả)
4. Thực hiện một số thao tác đơn giản hóa. Đối với đa giác, chúng tôi đã sử dụng IPolygon.SimplifyPreserveFromTo ()


2

Với arcmap 9.3.1, tôi sẽ thêm một trường có tên Flag (hoặc có thể là FlagFlag?) Và sử dụng mã VBA trong máy tính trường để tính toán trường này.

Mã VBA sẽ làm mờ một biến là ITopologicalOperator3 và đặt nó vào trường Shape.

Sau đó, nó sẽ gọi phương thức IsSimpleEx không đơn giản .

Đặt giá trị trường Flag thành esriNonSimpleEnum . Có lẽ lỗi bạn quan tâm sẽ trở lại esriNonSimpleSelfIntersections.

Với 10.0 có thể có một cách để làm điều này với python trong máy tính (?) ... Tôi không chắc chắn. Tôi sẽ sử dụng một lệnh bổ trợ. IMO Esri sẽ cung cấp hỗ trợ cho c # trong máy tính trường. Rốt cuộc, trình biên dịch c # được cài đặt như một phần của khung .NET.

Cập nhật

Mã tôi đã đăng ở đây có thể tìm thấy các cột cờ nếu bạn áp dụng biểu thức Định nghĩa "Left_OID" = "Right_OID"cho trình tạo đa tuyến kết quả.


1

Đây Python Script là một công cụ hữu ích

Loại bỏ đa giác cúi từ shapefiles

"EliminatingSlivers.py quay vòng qua tất cả các tính năng trong một shapefile đa giác và loại bỏ các tính năng khỏi shapefile đầu ra nằm dưới ngưỡng khu vực nhất định.

Các hoạt động xử lý địa lý và dung sai cụm có thể dẫn đến việc xây dựng các đa giác mảnh nhỏ hơn. Đây có thể là vô nghĩa và có thể làm sai lệch độ tin cậy của dữ liệu không gian. "

Lưu ý: bạn sẽ phải kiểm tra dung sai khác nhau với dữ liệu của mình (trước tiên hãy sao chép dữ liệu của bạn)

http://arcscripts.esri.com/details.asp?dbid=14672


1
Thật dễ dàng với các trang bìa ArcInfo> Arcs sạch> Xây dựng đa giác ....
Mapperz

Tôi không chắc chắn rằng công cụ này thực sự sẽ loại bỏ các lỗi tôi đang mô tả. Bạn thấy đấy, mảnh (cột cờ) và thân chính của đa giác (cờ) thực sự là một tính năng. Do đó, tập lệnh này sẽ KHÔNG CHỈ loại bỏ phần "cột cờ" của đa giác mà không xóa toàn bộ tính năng "cờ" cùng một lúc.
RyanKDalton

1

Ryan,

Tôi đã làm việc với văn phòng Khảo sát đất, và tôi định kỳ kiểm tra các đa giác đất của họ. Những gì tôi làm được kiểm tra cho các mảnh. Tôi sẽ gửi featureclass để bảo hiểm và sau đó xây dựng chúng để dán nhãn để xác định các lỗi. Nếu bạn thấy 2 nhãn trong một đa giác thì đó là một lỗi. Nếu nó là một nhãn trên mỗi đa giác, bạn biết đó là chính xác. Tôi sẽ tạo ra một featureclass như một điểm để đánh dấu một lỗi. Hoặc bạn có thể chọn một hoặc nhiều nhãn vào một featureclass mới. Bằng cách này bạn có thể quay lại và sửa lỗi. Nó hoạt động với tôi rất tốt với các đa giác đất. Tôi sử dụng điều đó để thông báo cho các nhà khoa học đất để khắc phục vấn đề.

Đó chỉ là cách của tôi để xác định vấn đề. Chỉ cần chia sẻ điều đó với bạn.


1

Nếu nhận dạng không phải là điểm chính và chỉ cần sửa lỗi tự động, hãy thử điều này. Thêm dữ liệu vào Tài liệu Bản đồ trống mới, sau đó;

  • Tạo cấu trúc liên kết bản đồ
  • chọn tất cả các tính năng
  • sử dụng các tính năng xây dựng để phân chia các tính năng hiện có

Tôi đã thử nghiệm điều này và nó có vẻ hoạt động nhưng tôi không chắc liệu tôi có sao chép chính xác nguồn dữ liệu của bạn không

Chúc vui vẻ, CDB


1

Ở đây chúng tôi có một vài cách để làm việc này và theo tôi, thanh lịch nhất là sử dụng một Tiện ích mở rộng có tên là Trình đánh giá dữ liệu GIS . Trình đánh giá dữ liệu GIS cho phép bạn tạo các kiểm tra tùy chỉnh và đơn giản hóa về độ chính xác của không gian và thuộc tính bên cạnh Cấu trúc liên kết cốt lõi. Trong cấu trúc liên kết có những thứ không khả dụng là một phần của kiểm tra tiêu chuẩn cho Người đánh giá dữ liệu như

  • Đóng cửa 3D
  • Lỗ không hợp lệ
  • Biểu thức SQL
  • Diện tích nhỏ hơn không gian tham chiếu
  • Tính năng trên tính năng
  • và nhiều thứ khác nữa

Tôi sẽ sử dụng điều này để thẩm vấn dữ liệu của bạn. Một cách khác để đi là tạo một lớp đối tượng mới dựa trên lớp đối tượng đa giác hiện có của bạn. và sau đó tạo một lớp tính năng Đa giác mới và điền vào đó các dòng bằng công cụ tính năng xây dựng trong Thanh công cụ cấu trúc liên kết. Điều này sau đó có nghĩa là các phần tử sau đó sẽ hiển thị như vậy và bất kỳ công cụ cấu trúc liên kết nào khác sẽ nhận lỗi. Sau đó, vấn đề là chọn, xóa và thay thế các tính năng trong lớp tính năng hiện có.

Hy vọng điều này sẽ giúp, CDB

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.