Chỉ xóa các lỗ donut khỏi đa giác bằng ArcGIS Desktop?


15

Tôi đang sử dụng ArcGIS Desktop 10.0.

Tôi có một mẹo để loại bỏ các lỗ bánh rán, đó là chuyển đổi đa giác thành dòng và sau đó tạo đa giác ra khỏi các dòng và cuối cùng hợp nhất tất cả chúng. Hạn chế của chiến lược này là trong việc loại bỏ các lỗ hổng và các khu vực trống khác trong thực tế là trống rỗng và nên được giữ trống. Xem hình ảnh dưới đây:

nhập mô tả hình ảnh ở đây


3
Tôi đã bỏ phiếu để giữ câu hỏi này mở vì tôi tin rằng OP đang cố gắng loại bỏ một số nhưng không phải tất cả bánh rán. Anh ấy đang tìm cách để giữ một số trong số họ.
Fezter

Cảm ơn! Tôi đã thêm hình ảnh, tôi hy vọng rằng làm rõ mọi thứ. Tôi không thể tiếp tục và xóa các khu vực lớn hơn trước khi hợp nhất mọi thứ lại với nhau vì tôi có thể vô tình xóa các đa giác chính (chính là màu xanh lá cây).
Arash

1
Rất giống với Làm thế nào để loại bỏ các đa giác muối muối & hạt tiêu nhỏ trên một lớp? , nhưng sử dụng quy trình QGIS. Bạn có thể có thể làm việc với các quy trình rất giống nhau trong ArcGIS.
RyanKDalton


Đây chỉ là kích thước ngưỡng bên trên mà các lỗ hổng không nên được lấp đầy để ngăn chặn việc này là một bản sao của Điền vào các Đa giác Donut bằng ArcGIS cho Máy tính để bàn?
PolyGeo

Câu trả lời:


23

Tôi sẽ thử công cụ Union với NO_GAPS:

Tính năng NO_GAPS LỚP sẽ được tạo cho các khu vực trong đầu ra được bao bọc hoàn toàn bởi đa giác. Tính năng này sẽ có các thuộc tính trống.

Sau đó, bạn có thể chọn các tính năng có thuộc tính trống bên dưới kích thước ngưỡng và tính toán các thuộc tính của chúng giống với đa giác ban đầu - hoặc sao chép / dán chúng trong cửa sổ Thuộc tính của Trình chỉnh sửa.

Các tính năng có thuộc tính trống trên kích thước ngưỡng sẽ bị xóa.

Từ đó công cụ Dissolve sẽ hoàn thành công việc.


1
Làm thế nào để bạn "tính toán [poly donut mới] giống với đa giác [chứa] ban đầu"? Chúng không có bất kỳ giá trị thuộc tính nào chung, vì vậy không thể tham gia. Làm thế nào để Island poly C biết rằng nó sẽ có được các giá trị attrib mới từ (chứa) Lake poly A và bỏ qua (ở một nơi khác) Lake poly B?
matt wilkie 16/2/2016

Tôi đã không thực hiện một thử nghiệm gần đây nhưng "poly donut mới" là "đa giác [ban đầu] chứa". Nếu có nhiều đa giác bánh rán như vậy để xử lý hàng loạt thì việc gắn thẻ các lỗ nhỏ với đa giác bánh rán mà chúng rơi vào bên trong là cần thiết.
PolyGeo

7

Giải pháp của PolyGeo là giải pháp tôi đã tự mình làm việc và hoạt động tốt (+1). Một cách khác là đệm đa giác của bạn một lượng nhỏ và sau đó khử đệm kết quả bằng cùng một lượng (giả sử + 1m và sau đó -1m). Điều này cũng hoạt động tốt nhưng có một rủi ro nhỏ khi vô tình tham gia các đa giác mà hàng xóm tương đương với bộ đệm của bạn. Nó cũng có thể tăng số lượng đỉnh của bạn (có thể có hoặc không có vấn đề).

Bạn cũng có thể viết một kịch bản cho một giải pháp mạnh mẽ bằng cách lặp qua từng đa giác, tạo các đa giác tạm thời dựa trên các vòng bên trong và thử nghiệm chúng cho các khu vực của chúng. Nếu chúng ở dưới ngưỡng của bạn, thì bạn hãy loại bỏ vòng bên trong khỏi hình học và cập nhật hàng của bạn. Giải pháp này hiệu quả hơn giải pháp của PolyGeo hoặc bộ đệm của tôi ở trên nhưng có thể là cách tiếp cận "tinh khiết" hơn.


5

Bạn có thể sử dụng công cụ "Loại bỏ phần đa giác" (Công cụ quản lý dữ liệu -> Tổng quát hóa) trong ArcToolbox. Bạn có thể chỉ định diện tích lỗ / phần trăm tối thiểu để loại bỏ.


1
Chức năng này yêu cầu cấp giấy phép Advanced / ArcInfo.
Martin

Tôi đã thử công cụ Eliminating Polygon Part, trong ArcGIS Pro 2.0. Nhưng nó không làm gì với tính năng đa giác mà tôi đang thử nghiệm. Các tính năng có một số vòng nội thất, và tôi muốn tất cả chúng sẽ biến mất. Công cụ này chỉ hoạt động nếu tính năng này bao gồm hình học nhiều phần?
Mike Finch

Không chỉ". Nó hoạt động đa giác đơn với lỗ (s), quá.
Kadir ahbaz 17/03/18

3

Đây là một cách khác để loại bỏ các hồ khỏi đa giác (như lớp bản đồ mã zip từ Navteq). Điều này cũng hữu ích để dọn sạch các lớp bản đồ lãnh thổ đã được tạo bằng cách hòa tan lớp bản đồ mã zip bằng mã lãnh thổ.

  1. Sử dụng "Liên kết" Geoprocessing trên lớp bản đồ đa giác và loại bỏ hộp kiểm cho các Gaps được cho phép (được kiểm tra theo mặc định.) Điều này tạo ra các đa giác cho tất cả các lỗ "bánh rán" trong đa giác.
  2. Trong lớp bản đồ Union kết quả, thêm các trường cho ID, X và Y. ID phải tách biệt với tên / ID của đa giác có các lỗ bánh rán mà bạn muốn xóa.
  3. Trong bảng thuộc tính, sử dụng Máy tính trường để tính ID từ trường ObjectID và sử dụng "Tính toán hình học" để điền vào các giá trị X và Y.
  4. Tách các đa giác donut khỏi các đa giác khác bằng cách chọn (Chọn theo thuộc tính) những đa giác trong đó trường tên là null.
  5. Xuất các bản ghi đã chọn sang một bảng mới. (thả xuống tùy chọn bảng -> Xuất ...)
  6. Sử dụng tùy chọn "Thêm XY" để tạo lớp sự kiện. (lớp nhấp chuột phải -> Hiển thị dữ liệu XY ....
  7. Xuất lớp sự kiện sang một lớp tính năng mới. (nhấp chuột phải vào lớp -> Dữ liệu -> Xuất dữ liệu)
  8. Thực hiện liên kết không gian giữa lớp điểm mới và lớp bản đồ đa giác ORIGINAL không có đa giác bánh rán. Sử dụng tùy chọn gần nhất của LIP để tên của đa giác xung quanh được gắn vào bảng thuộc tính của đa giác bánh rán.
  9. Sử dụng phép nối bảng tiêu chuẩn giữa lớp điểm đã nối và lớp bản đồ kết quả từ Liên minh (dựa trên trường ID). (lớp nhấp chuột phải -> Tham gia và liên quan -> Tham gia -> Tham gia dữ liệu từ một lớp khác dựa trên vị trí không gian)
  10. Sử dụng Máy tính trường trong bảng thuộc tính để tính toán tên đa giác null từ lớp điểm đã nối.
  11. Chạy một "Hòa tan" Geoprocessing dựa trên tên đa giác để hợp nhất các đa giác bánh rán với đa giác có tên lớn hơn.

Lưu ý rằng điều này sẽ không khắc phục vấn đề của các con sông bị cắt thành đường viền của đa giác, nhưng nó cải thiện lớp bản đồ ban đầu bằng cách loại bỏ các lỗ bánh rán bên trong.


2

Nếu đa giác trong lớp đối tượng chứa các đa giác khác trong cùng một lớp đối tượng (ví dụ Les Liber bên trong Nam Phi) và nếu bạn cần loại bỏ chỉnh sửa thủ công có lợi cho ModelBuilder, v.v., sử dụng "Loại bỏ phần đa giác" là giải pháp nhanh nhất. Cài đặt công cụ:

- "Điều kiện (tùy chọn)" = KHU VỰC - "Khu vực (tùy chọn)" = một số lượng rất lớn (giả sử, 1e + 100) - "Chỉ loại bỏ các phần có chứa (tùy chọn)" = [đã chọn]

Điều này sẽ mang lại một Nam Phi có khu vực của Leseria, rất cần thiết cho các quy trình công việc như xuất ra các đỉnh để sử dụng trong hình ảnh đa giác ở Tableau.


0

Vì nó chưa được đề cập cho đến nay và nó dường như là công cụ phù hợp cho chính xác những gì bạn đang cố gắng đạt được: Đa giác tổng hợp

Đặt tối thiểu_hole_size thành kích thước tối thiểu của lỗ đa giác bạn muốn giữ. Những cái nhỏ hơn sẽ bị loại bỏ.

Giá trị minim_area tùy chọn trong cùng một công cụ thực hiện tương tự cho các phần đa giác không phải là lỗ.

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.