Chuyển đổi lớp điểm thành lưới raster hiển thị tần số điểm trên mỗi ô uisng QGIS


9

Tôi có một lớp điểm cho thấy sự phân bố của một loài.

Có thể trong QGIS chuyển đổi lớp điểm này thành lưới raster trong đó giá trị của mỗi ô tương ứng với số lượng điểm trong ô đó?

Cho đến bây giờ, tôi chỉ quản lý để đính kèm các giá trị thuộc tính vào các ô lưới. Tôi đã thêm một cột trong bảng thuộc tính của mình có giá trị '1' cho mỗi điểm, hy vọng rằng có một cách để sử dụng tổng các thuộc tính cho mỗi ô lưới.


1
Chỉ là một ghi chú nhanh về logic của bạn: Nếu bạn chỉ tổng các giá trị 1 cho mỗi ô lưới thì rất có thể bạn đánh giá quá cao mức độ giàu có (nếu đây là những gì bạn muốn tính toán) vì tính toán này không kiểm tra xem một loài đã được thêm chưa đến một lưới điện.
Curlew

Tôi có một mô hình phân bố loài, một điểm cho mỗi cá nhân được quan sát. Tôi muốn kiểm tra tập hợp và liên kết sự phân bố của các loài với môi trường sống cơ bản trong GIS. Bây giờ nhiều điểm nằm ở trên và rất gần nhau, vì vậy để trực quan hóa, tôi muốn 'đơn giản hóa' mẫu này và sử dụng lưới hiển thị số lượng cá thể đã được quan sát trên mỗi ô. Tôi hy vọng điều này giải thích nó tốt hơn một chút.
Murphy

Câu trả lời:


10

Đây là một loại bùn nhưng nó hoạt động - chưa tìm được cách đi trực tiếp từ điểm đến raster (nhưng tôi hy vọng ai đó đưa ra giải pháp ở đây!).

Bắt đầu với lưới điểm (các điểm ngẫu nhiên trong Serengeti từ Vector|Research tools|Random pointscông cụ):

nhập mô tả hình ảnh ở đây

Tạo một lưới đa giác có cùng phạm vi và kích thước ô như raster mà bạn muốn có (cái này từ Vector|Research tools|Vector grid):

nhập mô tả hình ảnh ở đây

Sử dụng Vector|Analysis tools|Points in polygon, sử dụng lưới đa giác và lớp điểm:

nhập mô tả hình ảnh ở đây

Điều này cung cấp cho bạn một lưới mới (ở đây màu được mã hóa bằng số điểm trong mỗi ô đa giác):

nhập mô tả hình ảnh ở đây

Bây giờ sử dụng Raster|Conversion|Rasterizeđể chuyển đổi cái này thành raster, sử dụng thuộc tính PNTCNT cho các giá trị raster và cùng kích thước ô như đã chọn cho lưới:

nhập mô tả hình ảnh ở đây

... Đưa ra một raster với các giá trị theo điểm trong mỗi ô:

nhập mô tả hình ảnh ở đây


2

Cách dễ nhất và thẳng nhất:

  • Giả sử bạn có một cột với mã định danh điểm duy nhất (tên loài)
  • Tách lớp Điểm của bạn theo Thuộc tính này (QGIS -> Quản lý dữ liệu -> Tách)
  • Rasterize từng lớp điểm riêng lẻ bằng Công cụ Rasterize GDAL hoặc các công cụ SAGA hoặc GRASS có sẵn trong Hộp công cụ xử lý. Hãy chắc chắn rằng bạn sử dụng cùng kích thước ô và mức độ kết quả.
  • Đơn giản chỉ cần tổng hợp tất cả các Rasterlayers được tạo. Chẳng hạn, với hàm SAGA "Grids sum" hoặc trong GRASS "r.sum". Cả hai chức năng đều có sẵn trong Hộp công cụ xử lý.

Để thực hiện điều này một cách tự động, tôi sẽ đề nghị bạn viết cho mình một tập lệnh, mô hình xử lý hoặc nhấp x lần vào xử lý hàng loạt trong Hộp công cụ xử lý QGIS. EDIT: Nếu bạn có khả năng sử dụng R thì chỉ cần bắt đầu trực tiếp từ đây và điều chỉnh mã theo nhu cầu của bạn (lặp qua các điểm bị tách).
Hoặc bạn chờ thêm một thời gian nữa. Trong thời gian rảnh rỗi, tôi hiện đang trong quá trình viết một plugin mới cho QGIS (xử lý các tính toán vĩ mô) và nó có thể có chức năng tương tự như những gì bạn cần.


Tôi nghĩ rằng câu hỏi liên quan đến một lớp loài duy nhất - không thể (và không nên) được phân chia cho một giải pháp. OP cần một 'tổng số điểm trong giải pháp tế bào raster'.
Simbamangu

Vâng, bạn có thể làm điều đó mà không cần tách, nhưng điều này đòi hỏi gần như chắc chắn một vòng lặp, tương ứng là một giải pháp theo kịch bản. Đối với một loài duy nhất, giải pháp của bạn đang hoạt động tất nhiên vì nó chỉ đơn giản cho thấy mật độ xuất hiện tổng hợp.
Curlew

-2

Tôi thấy sự thiếu hỗ trợ này trong QGIS sẽ rất khó chịu vì đây là một bước xử lý địa lý quan trọng mà tôi luôn cần. Rasterizing thông qua fishnet, như được đề xuất ở trên, rất chậm nếu bạn có nhiều điểm dữ liệu (giả sử 100.000) vì nó thực hiện một hoạt động dựa trên vectơ tiêu thụ CPU của bạn. Hơn nữa, fishnet có kích thước khổng lồ so với một lớp raster kiểu dáng đẹp.

GDAL có chức năng thực hiện thao tác này trong một khoảng thời gian xử lý tối thiểu nhưng nó không được triển khai trong QGIS (không may). Vì lợi ích của môi trường và thần kinh của bạn, bạn có thể sử dụng chức năng gdal, tuy nhiên, trên dòng lệnh hoặc trong các môi trường phần mềm khác. Tôi thích sử dụng R có các gói liên quan đến GDAL của máy chủ. Bạn có thể thấy làm thế nào để làm điều đó trong R ở tại Rasterize đa giác với chức năng "gdal_rasterize" trong R .

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.