Thuật toán Heatmap để trực quan hóa đa dạng điểm


18

Bất cứ ai cũng có thể đề xuất một thuật toán để tạo ra một bản đồ nhiệt để trực quan hóa sự đa dạng điểm? Một ứng dụng ví dụ sẽ là để lập bản đồ các khu vực có độ đa dạng loài cao. Đối với một số loài, mỗi loài thực vật đã được lập bản đồ, dẫn đến số điểm cao, nhưng với rất ít ý nghĩa về sự đa dạng của khu vực. Các khu vực khác thực sự có sự đa dạng cao.

Xem xét các dữ liệu đầu vào sau:

x    y      cat
0.8  8.1    B
1.1  8.9    A
1.6  7.7    C
2.2  8.2    D
7.5  0.9    A
7.5  1.2    A
8.1  1.5    A
8.7  0.3    A
1.9  2.1    B
4.5  7.0    C
3.8  4.0    D
6.6  4.8    A
6.2  2.4    B
2.2  9.1    B
1.7  4.7    C
7.5  7.3    D
9.2  1.2    A

và bản đồ kết quả:

ô lưới

Ở góc phần tư phía trên bên trái, có một mảng rất đa dạng, trong khi ở góc phần tư phía dưới bên phải, có một khu vực có nồng độ điểm cao, nhưng độ đa dạng thấp. Hai cách để hình dung sự đa dạng có thể là sử dụng bản đồ nhiệt truyền thống hoặc đếm số lượng danh mục được thể hiện trong mỗi đa giác. Như các hình ảnh sau đây cho thấy, các phương pháp này đã được sử dụng hạn chế, vì bản đồ nhiệt cho thấy cường độ lớn nhất ở phía dưới bên phải, trong khi phương pháp tạo thùng sẽ trông giống hệt nhau nếu chỉ có một loại (điều này có thể được giải quyết bằng cách tăng kích thước của thùng đa giác, nhưng sau đó kết quả trở thành dạng hạt không cần thiết).

bản đồ nhiệt nhập mô tả hình ảnh ở đây

Một cách tiếp cận tôi nghĩ để làm điều này sẽ là sử dụng thuật toán bản đồ nhiệt truyền thống theo số điểm của các loại khác nhau trong bán kính xác định và sau đó sử dụng số đó làm trọng số cho điểm khi tạo bản đồ nhiệt. Tuy nhiên, tôi nghĩ rằng điều này có thể dễ bị tạo tác không mong muốn, như củng cố lẫn nhau dẫn đến kết quả rất sắc nét. Ngoài ra, các điểm được ánh xạ chặt chẽ cùng loại sẽ tiếp tục hiển thị dưới dạng nồng độ cao, chỉ ở mức độ không giống nhau.

Một cách tiếp cận khác (có thể tốt hơn nhưng đắt hơn về mặt tính toán) sẽ là:

  1. Tính tổng số danh mục trong bộ dữ liệu
  2. Đối với mỗi pixel trong hình ảnh đầu ra:
    • Đối với mỗi loại:
      • tính khoảng cách đến điểm đại diện gần nhất (r) [có thể giới hạn bởi một số bán kính vượt quá tầm ảnh hưởng không đáng kể]
      • thêm trọng số tỷ lệ với 1 / r 2

Đã có các thuật toán mà tôi không biết để làm điều này, hoặc các cách khác để hình dung sự đa dạng?

Biên tập

Theo đề nghị của Tomislav Muic, tôi đã tính toán các bản đồ nhiệt cho từng danh mục và chuẩn hóa chúng bằng công thức sau (máy tính raster của QGIS):

((heatmap_A@1 >= 1) + (heatmap_A@1 < 1) * heatmap_A@1) +
((heatmap_B@1 >= 1) + (heatmap_B@1 < 1) * heatmap_B@1) +
((heatmap_C@1 >= 1) + (heatmap_C@1 < 1) * heatmap_C@1) +
((heatmap_D@1 >= 1) + (heatmap_D@1 < 1) * heatmap_D@1)

với kết quả sau (bình luận dưới câu trả lời của anh ấy): tổng bình thường


1
Cách tiếp cận thứ hai của bạn có vẻ ổn, đây chủ yếu là một vấn đề thống kê, vì vậy tôi bắt đầu xem xét các thói quen R tương ứng tại CRAN . Tuy nhiên, sẽ thử nghiệm với các kích thước lưới khác nhau và tìm kiếm các biện pháp đa dạng sinh học 'chính thức' để tránh phát minh lại bánh xe.
Deer Hunter

Câu trả lời:


4

Hãy thử làm một bản đồ nhiệt cho từng loại riêng biệt.

Sau đó tổng hợp các bản đồ nhiệt và chuẩn hóa chúng bằng cách sử dụng số lượng danh mục.

Điều này có thể đáng để khám phá.


Tôi đã thêm một hình ảnh vào câu hỏi của tôi dựa trên đề xuất này, và kết quả có vẻ tốt! Nhược điểm là nếu bạn đang xử lý hàng trăm hoặc hàng ngàn danh mục, việc lưu trữ tất cả các trình quét đó sẽ là một vấn đề.
rudivonstaden

Hãy nghĩ về nó, điều đó sẽ không thành vấn đề nếu bạn thêm từng bản đồ nhiệt mới vào bản đồ nhiệt tổng hợp sau mỗi loại. Câu hỏi đặt ra là cách tiếp cận nào sẽ được tính toán nhanh hơn để thực hiện - tính tổng raster hoặc tính toán theo pixel.
rudivonstaden

Tôi sợ câu trả lời này không liên quan gì đến sự đa dạng. Trong tổng kết quả (và chuẩn hóa), một khu vực rất dày đặc với nhiều nhóm sẽ trông giống như một khu vực không dày đặc nhưng với một nhóm.
Andy W
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.