Đo diện tích các lớp raster?


9

Có bất kỳ công cụ hoặc phương thức nào trong ArcMap có thể đo diện tích của từng cấp của đầu ra mật độ hạt nhân không?

Lưu ý đây chỉ là một biểu đồ mật độ hạt nhân (không phải là tệp hình dạng hoặc đa giác). Phân tích mật độ hạt nhân (xanh đậm (10%) đến đỏ (90%) (1)

Tôi đã thử một vài thứ nhưng tôi cần nó phải chính xác.

Phân tích mật độ Kerenel (xanh đậm (10%) đến đỏ (90%)

Câu trả lời:


7

Tôi sẽ sử dụng quy trình làm việc sau đây để tính diện tích trong các lớp:

  1. Phân loại lại (Phân tích không gian) đầu ra mật độ hạt nhân cho bất kỳ lớp nào bạn đang sử dụng. Theo mặc định, ArcGIS tạo ra bề mặt raster liên tục cho đầu ra mật độ hạt nhân, nhưng phân loại lại chú giải (tạm thời). Sử dụng công cụ phân loại lại sẽ làm cho điều này vĩnh viễn.
  2. Mở bảng thuộc tính mật độ hạt nhân được phân loại lại và quan sát trường "COUNT" ( Hình 1 ). Đây là số lượng của tất cả các pixel trong mỗi lớp. Ví dụ: Lớp 1 (Giá trị = 1) có số lượng 620.063 pixel. Vì hệ tọa độ của tôi là UTM, các đơn vị tính bằng mét và các pixel ở độ phân giải không gian 1m. Do đó, Lớp 1 là 620.063 m ^ 2.
  3. Để chuyển đổi số đếm sang các đơn vị khác như ha, hãy thêm một trường mới vào bảng thuộc tính.
  4. Trường tính toán ( Hình 2 )
  5. Logic kiểm tra kết quả bằng cách tô sáng một lớp ( Hình 3 )

Hình 1

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

Hình 2

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

Hình 3

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


2

Nếu bạn muốn một giải pháp Arcpy:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

cách khác, bạn có thể ghi các giá trị vào tệp csv / text.


1

Giả sử rằng biểu đồ mật độ hạt nhân của bạn là một raster được tạo bằng công cụ mật độ kernel hoặc tương tự, đây chỉ là vấn đề sử dụng công cụ Raster to Polygon .

Hãy chắc chắn rằng bạn chỉ định trường xác định phân loại của raster và nó sẽ chuyển đổi nó thành đa giác. Sau đó, bạn có thể sử dụng công cụ Tính toán Hình học để tính diện tích.


Tôi đã thử điều đó. Khi tôi kéo tập tin raster vào thì nó báo "một hoặc nhiều mục bị bỏ là không hợp lệ". Lỗi cho thấy có văn bản trong tệp đang "can thiệp", bạn có biết tại sao điều này có thể xảy ra không?
Ông Angus

1
@MrAngus Vấn đề là Mật độ hạt nhân luôn tạo ra đầu ra raster dấu phẩy động, trong khi Raster to Polygon yêu cầu đầu vào raster nguyên (xem các tệp trợ giúp được liên kết). Bạn sẽ cần phân loại lại raster KD trước.
Chris W

Lưu ý rằng Tính toán hình học là trên mỗi tính năng và sẽ không cung cấp tổng diện tích của tất cả các đa giác chia sẻ một lớp nhất định.
matt wilkie

0

Một giải pháp nhanh chóng cho vấn đề này là giải quyết thủ công:

  1. Mở các thuộc tính của raster và chuyển đến tab symbology.
  2. Có lẽ hệ thống ký hiệu đã được đặt thành Phân loại và số lượng lớp học là những gì bạn muốn. Nhấp vào nút Phân loại.
  3. Ở bên phải của hộp thoại là hộp Break Values. Nhấp vào từng giá trị ngắt và ở dưới cùng của hộp thoại, bạn sẽ thấy # Elements trong Class. Đây là số lượng pixel trong lớp đó. Viết số xuống cho mỗi lớp hoặc nhập nó vào bảng tính.
  4. Hủy bỏ trở lại các thuộc tính raster và chuyển sang tab Nguồn. Kích thước ô được đưa ra ở đó trong x, y. Nhân hai số này với nhau và bạn có diện tích một pixel.
  5. Bây giờ lấy diện tích đó nhân với số pixel trong mỗi lớp. Điều này sẽ cung cấp cho bạn tổng diện tích của lớp đó.

Chính xác là một thuật ngữ tương đối. Theo như khu vực raster của bạn đi, nó sẽ chính xác chính xác. Nếu bạn sử dụng phương pháp của Fezter, khu vực có thể khác nhau tùy thuộc vào việc bạn có sử dụng Smooth hay không khi chuyển đổi các vùng dựa trên pixel thành đa giác.

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.