Chia đa giác thành các kích thước cụ thể bằng ArcGIS Desktop?


26

Tôi có vài ngàn đa giác có hình dạng bất thường trong một shapefile. Tôi muốn có thể chia mỗi đa giác thành ba khu vực và chỉ định kích thước của các khu vực đó (chúng tổng hợp với tổng diện tích trước đó). Không quan trọng hình dạng đa giác phụ là gì, vì đây là cho mục đích trực quan hóa.

Làm thế nào tôi có thể đi về làm điều này? Có một thuật toán tiêu chuẩn tồn tại mà tôi có thể sử dụng?


Một cách tiếp cận tôi đã xem xét là lấy tất cả các điểm tạo nên đa giác. Sau đó, tôi sẽ nối hai ngẫu nhiên lại với nhau bằng cách sử dụng một đường thẳng, chia đa giác, sau đó kiểm tra xem khu vực đó có nằm trong dung sai thỏa đáng hay không. Nếu nó quá nhỏ, tôi sẽ thay đổi điểm theo một hướng; nếu nó quá lớn, tôi sẽ đổi sang một điểm theo hướng ngược lại.

Câu trả lời:


34

Vấn đề này có nhiều giải pháp hợp lệ. Một trong số chúng hoạt động giống như mô tả của bạn, nhưng thay vì cắt các đa giác tại các vị trí "ngẫu nhiên", bạn có thể thực hiện nó một cách có chủ đích theo cách được thiết kế để giảm thiểu số lượng tính toán.

Đây là thuật toán cơ bản. Đầu vào của nó bao gồm bất kỳ hướng mặt phẳng quét, một đa giác P của khu vực khác không, một khu vực mục tiêu một giữa zero và diện tích của đa giác, và một ngưỡng âm t (theo đơn vị diện tích). Mục đích của nó là chia P với đường thẳng vuông góc với hướng quét thành hai phần, một bên phải của dòng và phần còn lại ở bên trái của dòng, sao cho sự khác biệt giữa khu vực bên phải và khu vực mục tiêu a là không lớn hơn t .

Đặt L là đường thẳng bất kỳ vuông góc với hướng quét. Xác định f (L) là diện tích của P được tìm thấy ở bên phải L, trừ a . Trong các điều khoản này, nhiệm vụ là tìm một số 0 của f . Bởi vì f không có khả năng khác biệt, nhưng là liên tục, nên sử dụng phương pháp chia đôi, phương thức bảo mật hoặc - phương thức ưa thích của tôi - -Brent ' . Tất cả đều đơn giản và đảm bảo để hội tụ. Sử dụng t cho dung sai hội tụ cho đối số.

Đó là nó. Hãy xem xét những gì đi vào mã hóa này. Việc tìm kiếm gốc là thông lệ - bạn có thể sử dụng một đoạn mã chung cho nó - vì vậy công việc của GIS chuyển sang mã hóa f . Làm như vậy đòi hỏi

1.  Splitting the polygon by a line.
2.  Computing the area of the piece(s) to the right of the line.

Cả hai hoạt động được thực hiện trong hầu hết các hệ thống GIS dựa trên vector. Nếu không, bạn có thể thay thế dòng bằng một hình chữ nhật rất lớn đại diện cho nửa mặt phẳng bên phải của dòng. Bước 1 trở thành

1'. Clip the polygon to the rectangle.

Đó là một hoạt động thực sự cơ bản.

Để bắt đầu với việc tìm kiếm root, bạn cần tìm một khoảng trong đó số 0 của f được đảm bảo để nói dối. Điều này thật dễ dàng: chiếu đường bao của đa giác ("hộp giới hạn") vào hướng quét đường. Hình chiếu là khoảng thời gian bạn muốn.

Câu hỏi này có một lịch sử lâu dài. Tôi đã triển khai thuật toán này cho ArcView 3.x từ lâu và đã mô tả nó nhiều lần trong các diễn đàn người dùng ESRI cũ. Google

trang web đa giác chia huber: forum.esri.com

để thảo luận, liên kết đến mã, cải tiến và biến thể (chẳng hạn như chia đa giác thành các phần có kích thước mong muốn nhỏ gọn nhất có thể) và thuật toán cho dữ liệu raster.

Đây là những gì các quốc gia Hoa Kỳ lục địa trông giống như (trong một hình chiếu diện tích bằng nhau) với một phần ba dưới cùng của mỗi tiểu bang được tô bóng. Rõ ràng là hướng quét là thẳng đứng.

văn bản thay thế


6

Có một công cụ làm sẵn có tên là "GeoTools" của ET Spatial. Trường hợp có một công cụ gọi là "ET Linh tinh". Trong công cụ này có hai loại cách chia đa giác viz. Theo tỷ lệ phần trăm và theo khu vực (một số đơn vị, ví dụ như mét vuông, ha, vv). Công cụ này phân chia đa giác từ bất kỳ trong bốn phía, tức là NESW như hình ảnh hiển thị. Tôi đã sử dụng "lên xuống" tức là phương pháp Bắc vào Nam.

Tách


0

Có một công cụ mới trong ArcGIS Pro 2.3 được gọi là Subdivide Polygon .

Nó cho phép một người chia / chia nhỏ một đa giác cho một số phần hoặc diện tích phần mong muốn.

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.