Thực hiện chủ yếu trong phạm vi lựa chọn của người dùng sử dụng ArcMap?


8

Tôi đang tìm cách để xác định xem một đa giác có "chủ yếu nằm trong" một đa giác hay không. Vì phần lớn bên trong là tùy ý, tôi sẽ cần có thể nhập tỷ lệ phần trăm khi thực hiện.

Tôi nghĩ rằng có thể đã có một tùy chọn trong ArcMap bằng cách sử dụng Chọn theo vị trí, nhưng dường như không có. Có các phương pháp tương tự, chẳng hạn như "hoàn toàn bên trong" nhưng tôi không thấy làm thế nào tôi có thể sử dụng bất kỳ phương pháp nào để đạt được những gì tôi đang tìm kiếm.

Liệu chức năng này hoặc một phương pháp tồn tại để đạt được điều này?


định nghĩa 'chủ yếu trong' ... 75% trong?
DPSSpatial

Đây là một trọng tâm trong tùy chọn, do đó thường chủ yếu nằm trong
HeikkiVesanto

@mapBaker Điểm hay về tỷ lệ phần trăm. Có lẽ nếu sử dụng ArcPy, đây có thể là một biến có thể được điều chỉnh để tạo ra kết quả mong muốn.
amasephy

1
@Vesanto Centroid sẽ không hoạt động, nếu đa tuyến xảy ra để cắt góc của đa giác thì centroid có thể nằm trong đa giác nhưng một phần đáng kể của nó có thể không.
amasephy

2
Tôi sẽ thực hiện một giao điểm giữa đa giác và dòng FC và sau đó là một số liệu thống kê để xác định% của mỗi dòng trong một đa giác nhất định (hoặc bất kỳ đa giác nào). Từ đây, sau đó tôi sẽ làm lựa chọn của tôi.
dklassen

Câu trả lời:


8

sau đó, bạn chỉ cần thực hiện một bảng để nối bảng trên hai tệp dòng (gốc và đầu ra của công cụ GP) và sau đó tính toán phần trăm chênh lệch giữa hai trường Shape.Len (nếu một phân đoạn dòng trong tệp gốc dài 100 ft và cùng một đoạn đường, được cắt theo đa giác, dài 75ft, thì 75% dòng đó sẽ nằm trong đa giác). Sau đó, bạn có thể chỉ cần chọn theo thuộc tính dựa trên phần trăm này.

Một lần nữa, tôi biết điều này khá liên quan, nó tạo ra một bộ dữ liệu trung gian và có lẽ có một cách dễ dàng hơn để làm điều này mà tôi không biết; nhưng, nếu bạn viết một mô hình hoặc tập lệnh để làm như vậy và xóa dòng đầu ra FC khi bạn hoàn thành nó, nó sẽ không xuất hiện quá khó khăn với người dùng cuối ... ngay cả khi nó hơi đau để xây dựng ban đầu.

Chỉ cần một vài suy nghĩ và cho tôi biết nếu điều đó không có ý nghĩa và tôi sẽ cố gắng giải thích rõ hơn.


+1 Những âm thanh đó có vẻ như là những suy nghĩ khá tốt đối với tôi bởi vì chúng sử dụng tốt các khả năng của ArcGIS và, dù nó được thực hiện như thế nào, thực sự không có cách nào để tránh một số hình thức hoạt động lớp phủ đa giác-vs.polyline. (BTW, tôi nghĩ rằng bạn là nạn nhân của một downvoter lái xe và tôi xin lỗi vì điều đó.)
whuber

@ John đó cũng là những gì tôi đã nghĩ ... NHƯNG - để tham gia vào các dòng đầu vào sẽ cần một trường UNIQUEID (không phải trường ArcGIS OBjectID cho bạn) rằng bạn có thể tham gia vào ...
DPSSpatial

1
@mapBaker Cảm ơn bạn, đó là một điểm tốt (Tôi đã quên nếu clip bảo toàn đầu vào OID trong đầu ra như một số công cụ làm). Bạn có thể tính toán OID ra một trường khác trước khi bạn chạy clip để cung cấp cho bạn một UniqueID nếu chưa có sẵn.
Giăng

@ John ohhhh K ...
DPSSpatial

Giải pháp này sẽ hiệu quả với tôi, nhưng tôi nghĩ việc sử dụng Intersect thay vì Clip của dklassen làm cho việc này đơn giản hơn. Tôi đã kết thúc bằng cách sử dụng kết hợp các phản hồi tôi nhận được. Tôi không chắc ai sẽ nhận được tín dụng để trả lời câu hỏi.
amasephy

3

Dựa trên những phản hồi tôi nhận được ở đây, tôi đã sử dụng kết hợp các ý tưởng được cung cấp.

Đầu tiên những gì tôi đã làm là thêm trường Độ dài và Phần trăm vào tập dữ liệu ban đầu của tôi. Tôi đã sao chép các giá trị Shape.Lipse vào trường Độ dài.

Thứ hai, thay vì sử dụng Clip, công việc đáng kể hơn trong trường hợp này, tôi đã sử dụng công cụ Intersect. "Clip" các polylines giao nhau với đa giác và thêm vào một số thuộc tính có giá trị. Mặc dù có trường ID thực sự độc đáo, tôi không nghĩ nó thực sự cần thiết khi sử dụng trường độ dài tĩnh.

Cuối cùng, tôi chỉ đơn giản là tính phần trăm chênh lệch giữa trường Shape.Lipse mới và trường Độ dài tĩnh cho trường Phần trăm. Bất kỳ polylines nào giao với ranh giới đa giác sẽ có tỷ lệ phần trăm nhỏ hơn 100.


2
  1. Tách polyline ở mỗi đỉnh,
  2. cho mỗi phân đoạn gọi hoàn toàn trong các điểm cuối,
  3. bất kỳ phân đoạn nào hoàn toàn nằm trong phạm vi 100% chiều dài của nó trong đa giác, (giả sử không có đa giác tái nhập) và chiều dài của nó có thể được thêm vào tổng,
  4. bất kỳ dòng một phần nào cũng có thể được chia thành 10 phân đoạn và tính toán tương tự được áp dụng.
  5. So sánh tổng số với độ dài được tính toán để có độ phân giải 10%, (nếu bạn cần kết quả chính xác hơn thì bạn có thể chia nhỏ hơn cho các dòng một phần).
  6. Bạn thậm chí có thể giữ tổng số độ dài của các dòng hoàn toàn bên ngoài và chỉ thực hiện tính toán một phần dòng nếu bạn không trả lời vượt quá ngưỡng của mình.
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.