Xác định số lượng đa giác tối thiểu từ shapefile để bao phủ một khu vực quan tâm


10

Tôi có một số lượng lớn shapefiles đại diện cho các lĩnh vực quan tâm để phân tích sẽ được thực hiện bằng nhiều nguồn hình ảnh vệ tinh khác nhau (IKONOS, RapidEye, v.v.). Thật không may, hình ảnh không sử dụng hệ thống pathrow như Landsat chẳng hạn, vì vậy mức độ khác nhau rất lớn.

Tôi có các shapefiles được cắt theo từng AOI đại diện cho mức độ thu nhận hình ảnh khác nhau, tất cả đều được coi là chấp nhận được. Một số trong số các shapefile này có từ 500 đa giác trở lên.

Tôi cần tìm một cách tiếp cận, tốt nhất là một phương pháp có thể được tự động hóa (tốt nhất là Python và ArcInfo 10, FOSS cũng có thể được chấp nhận) để xác định số lượng đa giác ít nhất để đáp ứng cho từng lĩnh vực mà tôi quan tâm.


3
Nói chung, đây là một vấn đề khó khăn của NP nên có thể cần một số phần mềm mạnh mẽ. Một cách tiếp cận là đóng khung nó như một chương trình tuyến tính nguyên: các đa giác phân chia AOI thành đa giác "nguyên tử" và mỗi đa giác ban đầu đều bao phủ hoàn toàn hoặc không bao gồm từng đa giác nguyên tử. Thông tin này có thể được mã hóa trong các vectơ nhị phân. Bạn tìm cách giảm thiểu số lượng các vectơ như vậy có tổng bằng 1 hoặc lớn hơn trong mỗi thành phần. Ví dụ làm việc như thế nào để giải quyết vấn đề tương tự đang ở mathematica.stackexchange.com/a/6888gis.stackexchange.com/a/27678 .
whuber

Câu trả lời:


3

Như đã lưu ý bằng cách tổng quát hóa loại vấn đề này để tìm ra giải pháp chất lượng cao sẽ rất khó khăn nhưng cách tiếp cận này có thể giúp bạn đủ gần mà không cần nhiều công việc. Dưới đây là một số mã giả dựa trên các giả định sau:

  1. Khu vực quan tâm A
  2. Tập hợp đa giác Y bao phủ hoàn toàn A

    Start loop
     Iterate through Y
       Select the polygon x from Y that has greatest area of intersection with A
    
     Clip A with polygon x
     Remove x from Y 
     If A is null then end program

Ý tưởng là bạn đang lặp đi lặp lại việc giảm Vùng quan tâm của mình với phạm vi vệ tinh có vùng chồng lấp lớn nhất với Vùng quan tâm còn lại. AOI trở nên nhỏ hơn trên mỗi lần lặp cho đến khi không còn gì. Đây có thể sẽ không phải là một giải pháp tối ưu nhưng nó phải hợp lý và nên chạy khá nhanh.


0

Ok, vậy là bạn có khu vực A đại diện cho một số khu vực và một loạt các phạm vi hình ảnh có thể được xác định là bộ Y.

Nếu tôi có điều này đúng, bạn có thể thực hiện một loạt các chức năng khác nhau:

  1. cắt các khu vực hình ảnh của khu vực A
  2. Thực hiện lựa chọn theo vị trí bằng cách sử dụng đa giác Extent và tùy chọn chứa hoàn toàn

Sau đó, bạn có thể kiểm tra các khu vực của từng khu vực và xác định xem bạn có tự chọn đa giác hay không bằng cách thực hiện một số sắp xếp hình học không gian bằng ArcPy và con trỏ.

Hy vọng điều này giúp đỡ.


1
Bạn có thể giải thích thêm về cách bạn sẽ sử dụng các con trỏ không? Đi vào tôi cho rằng nó sẽ đi xuống bằng cách nào đó nhưng tôi đã không thể nghĩ ra một phương pháp. Tôi đã xem xét bắt đầu với n đa giác hàng đầu trong khu vực, loại bỏ khỏi các đa giác còn lại hoàn toàn chứa và tiếp tục lặp lại theo cách này. Đây có thể là một sự khởi đầu, nhưng tất nhiên những đa giác với diện tích lớn nhất có thể không có phạm vi rất khác nhau.
Chad Hawkins
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.