Tìm cụm N điểm trong X Khoảng cách bằng ArcGIS Desktop?


12

Chúng tôi đã thử hai phương pháp phân tích cụm:

... nhưng không đáp ứng đặc điểm kỹ thuật của chúng tôi có 3 tham số này:

  • một bộ tính năng điểm
  • N điểm trong một cụm
  • X khoảng cách để nhìn vào

Ví dụ: "tìm cho tôi các điểm trong đó mỗi cụm có 10 điểm trong vòng 50 mét" hoặc một cái gì đó cho hiệu ứng đó.

ArcGIS 10 có hai công cụ tôi đã liên kết ở trên nhưng dường như không giải quyết được các điểm N trong một phần cụm.

Yêu cầu của chúng tôi có thể được đáp ứng với các công cụ khác trong ArcGIS không? Là những gì tôi đang gọi phân tích cụm được gọi là một loại phân cụm cụ thể?

Chúng tôi đã có một phiên bản này trong một ứng dụng khác nhưng tôi thực sự muốn sử dụng các công cụ trong ArcGIS.


"Đã hứa với khách hàng mà tôi không biết" ... Tôi cảm thấy nỗi đau của bạn. Một giải pháp arcobjects sẽ được chấp nhận?
Kirk Kuykendall

Sẽ không thể tạo các cụm và sau đó xử lý những cụm không đáp ứng tiêu chí của bạn? Điều đó có nghĩa là (và tôi hỏi do thiếu kinh nghiệm trong phân tích này), liệu các cụm có thay đổi nếu chúng được đưa ra tiêu chí thứ ba này trước khi phân tích không?
Nathanus

@Kirk Kuykendall. ArcObjects có thể không khả thi vì nó cần được hiển thị dưới dạng dịch vụ xử lý địa lý thông qua máy chủ arcgis 10.
Hath

Liệu cụm cần phải dựa trên một vòng tròn, hoặc nó có thể là hình chữ nhật. Tạo một hàm băm từ tọa độ sao cho mã băm cho tất cả các điểm trong cùng một hộp 50x50 là như nhau rất dễ dàng.
Kirk Kuykendall

@ Kirk - tôi phải là một vòng tròn tôi nghĩ.
Hath

Câu trả lời:


10

Hãy thử sử dụng công cụ Bộ đệm để đệm các điểm đến dung sai, hòa tan để tạo các đa giác đơn cho mỗi cụm và sau đó sử dụng phép nối để đếm số điểm trong cụm.

Sau đó sử dụng tỷ lệ giữa diện tích của cụm và số điểm để áp dụng các tham số của bạn.


+1 Cách tiếp cận này sẽ hiệu quả, nhưng tôi không thấy khu vực nào đi vào giải pháp.
whuber

diện tích / số đếm cho phép đo mật độ trong một cụm. Điều này sẽ giúp loại bỏ các chuỗi điểm tuyến tính không nên được coi là cụm.
Matthew Snape

2
OK, nhưng báo cáo vấn đề không yêu cầu điều đó. Nó chỉ yêu cầu "10 điểm trong vòng 50 mét", vd. Nếu bạn đệm điểm 50/2 = 25 mét, thì bất kỳ nơi nào có 10 hoặc nhiều chồng lấp đều đủ điều kiện là trung tâm của cụm đó. Làm xong!
whuber

Khi bạn có nghĩa là 'tham gia', bạn có nghĩa là tham gia không gian.
Hath

2

Điều này có thể được thực hiện bằng ArcObjects mà không gặp nhiều khó khăn.

Tạo một bản đồ và thêm điểm featureclass vào nó. Đặt mức phân cụm dựa trên khoảng cách cụm của bạn (50) và tạo bộ đệm .

Lặp lại qua từng nút trong maptopology.cache.nodes . Nếu ITopologyNode.Parents.Count> 10 thì hãy làm bất cứ điều gì bạn cần làm.

Tôi đã làm một cái gì đó tương tự cho một lớp tùy chỉnh vẽ mỗi điểm cụm bằng một biểu tượng có màu dựa trên số lượng các tính năng điểm trong cụm. Hiệu suất có thể chấp nhận được do các tính năng được lưu trong bộ nhớ - xây dựng lại bộ đệm là phần đắt tiền.

Tương tự như mã được đăng ở đây .


Nó sẽ có thể trong python?
Ðức

Tôi đang nghĩ là không. Không quen thuộc với sdk arcobject và không hoàn toàn chắc chắn về các yêu cầu cấp phép để sử dụng nó.
Hath

2

Hãy thử đi đến điểm đầu tiên, sau đó tạo một hàm đệ quy, kiểm tra các điểm trong khoảng cách và thực hiện thao tác tương tự trên đó, tìm kiếm các điểm trong khoảng cách và thực hiện cùng một thao tác trên đó, v.v.

Tôi vừa giải quyết một vấn đề tương tự, trong đó tôi phải tìm một tập hợp các điểm phù hợp với một mệnh đề nhất định; Tôi đã xây dựng một hàm đệ quy để tìm xem có điểm nào được kết nối trong 8 ô (N, NW, W, SW, S, SE, E, NE) không và gọi hàm tương tự cho điểm đó. Nếu danh sách trả về chứa x điểm, tôi tổng hợp một đa giác xung quanh nó.


1

Tôi không có bất kỳ thông tin sử dụng nào trên ArcGIS vì tôi chỉ sử dụng Phần mềm OpenSource. Nhưng tôi nghĩ rằng điều này sẽ được thực hiện, với Openlayers. Có một ví dụ về chiến lược cụm, mà bạn có thể tìm thấy ở đây: http://openlayers.org/dev/examples/strargety-cluster.html


-1 OP đang yêu cầu một cách làm arcgis để làm điều này. Đưa ra một cách OpenLayers sẽ không thực sự có ích.
Nathan W

2
Nhưng cách tiếp cận openlayers không thể giúp anh ta tìm ra cách nó được thực hiện để thực hiện nó trong arcgis ??
1amtoo1337

1
Tôi đồng ý với nhận xét và thích cách tiếp cận của bạn: thường chúng ta phải nhìn ra ngoài vùng thoải mái để tìm ý tưởng và cảm hứng. Nhưng tôi sẽ thấy câu trả lời của bạn hữu ích hơn nếu bạn có thể giải thích cách ví dụ này được kết nối với câu hỏi cụ thể được hỏi ở đây. Mặc dù câu hỏi và ví dụ chia sẻ từ "cụm", nhưng không rõ ràng là họ sử dụng nó theo cùng một nghĩa hoặc giải quyết đủ các vấn đề tương tự.
whuber

Tôi đã ủng hộ điều này khi tôi đang tìm kiếm một cách mở nguồn để thực hiện điều này và mặc dù bài đăng mong muốn, tôi thường thấy rằng một giải pháp trong các hệ thống GIS khác có thể giúp bạn tìm ra giải pháp trong phần mềm của mình bằng cách sử dụng các công cụ của nó theo cách điều đó không phổ biến
GeorgeC
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.