Câu trả lời:
Các raster được lưu trữ ở định dạng dấu phẩy động dưới dạng các giá trị riêng lẻ trong mỗi ô; do đó, nó không có bảng thuộc tính. Một giải pháp hiệu quả là phân biệt các giá trị và chuyển đổi chúng sang định dạng số nguyên. Điều này tạo ra một bảng thuộc tính, khi được vẽ, sẽ mang lại một biểu đồ. Tổng số tích lũy của nó là đường cong hypsometric.
Sự xuất hiện của đường cong đo độ cao (ở dạng CDF) cho DEM mẫu này (một phần của Illinois có tại http://examplingata.wolfram.com/ArcGRID.zip ) thay đổi theo độ mịn của sự rời rạc giá trị. Các hình ảnh sau đây sử dụng các thùng tương ứng là 5, 1 và 1/5 mét. Như bạn có thể thấy, người ta có thể có được một đường cong chính xác bằng cách sử dụng các thùng thô vừa phải.
Việc phân tách lưới bao gồm hai thao tác có thể được thực hiện trong một bước: chia cho chiều rộng thùng và cắt ngắn (hoặc tròn, nếu bạn thích). Ví dụ: độ cao tính bằng mét có thể được phân tách thành các bước tăng 0,1 mét thông qua phép chia cho 0,1 sau đó là cắt ngắn, như trong
Int( [elevation] / 0.1 )
Cú pháp này, hoặc một cái gì đó khá gần với nó, sẽ được sử dụng trong hầu hết mọi phiên bản ArcGIS (và trong nhiều hệ thống GIS raster khác).
Tôi thường sử dụng R cho việc này. Bạn có thể đọc các bộ dữ liệu raster GDAL bằng cách sử dụng rgdal
(từ CRAN), sau đó xây dựng phân phối tích lũy theo kinh nghiệm cho các giá trị độ cao bằng cách sử dụng ecdf
(tích hợp).
Ví dụ: tôi có DEM của mình trong tệp GeoTIFF, trong R sử dụng:
library(rgdal)
topo <- readGDAL("mytoporaster.tif")
plot(ecdf(topo$band1), main="Hypsometric curve", xlab="Elevation (m)")
Cũng xem hướng dẫn tại Carleton .
Tôi đã xem qua bài viết này nói về phần mở rộng ArcGIS 9.x.
Phần mở rộng với dữ liệu mẫu được cung cấp tại vị trí tải xuống này .
Đối với bản ghi, phần mở rộng hoạt động trong ArcGIS 10.4.1.
Floor
chức năng hay không, bởi vì một sốInt
triển khai cắt ngắn về 0 thay vì hướng xuống, sẽ tăng gấp đôi chiều rộng của thùng chứa 0 (kết quả không mong muốn).