Đây là một cách tiếp cận có thể hữu ích. Công cụ GRASS r.report
có khả năng tính toán một thống kê cơ bản cho từng giá trị duy nhất trong lớp raster:
Đầu ra có thể được viết là một tệp txt đơn giản trông như thế này (bên trái: các giá trị duy nhất, bên phải: khu vực được bao phủ bởi mỗi giá trị):
+-----------------------------------------------------------------------------+
| Category Information | square|
| #|description | miles|
|-----------------------------------------------------------------------------|
|1111| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 1.249845|
|1113| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 0.062666|
[...]
|3412| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 0.013926|
|4111| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 4.713902|
|4211| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 0.083555|
|4212| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 0.135777|
|-----------------------------------------------------------------------------|
|TOTAL | 17.048727|
+-----------------------------------------------------------------------------+
Tập lệnh xử lý địa lý sau đây lấy tệp văn bản này làm đầu vào và thiết lập trình kết xuất phù hợp (với màu sắc ngẫu nhiên để thuận tiện) cho lớp raster (Lấy cảm hứng từ LAWHEAD, J.: Sách hướng dẫn lập trình Python của Python, trang 135):
##giswg=group
##thexml=file
##theraster=raster
from random import randint
from PyQt4.QtGui import QColor
from qgis.core import *
myraster = processing.getObject(theraster)
infile = open(thexml, 'r')
univalues = [l.split('|')[1] for l in [f for f in infile.readlines()][4:-4]]
s = QgsRasterShader()
c = QgsColorRampShader()
c.setColorRampType(QgsColorRampShader.EXACT)
i = []
for u in univalues:
i.append(QgsColorRampShader.ColorRampItem(float(u), QColor('#%06x' % randint(0, 2**24)), u))
c.setColorRampItemList(i)
s.setRasterShaderFunction(c)
ps = QgsSingleBandPseudoColorRenderer(myraster.dataProvider(), 1, s)
myraster.setRenderer(ps)
Nhờ các khả năng xử lý huyền thoại của QGIS, bạn có thể kết hợp hai yếu tố này trong trình tạo mô hình đồ họa và thêm một tham số raster để chỉ cần chọn một lớp raster được tải:
Sau khi lưu mô hình, bằng cách nhấp đúp vào mô hình trong hộp công cụ xử lý, nó có thể được sử dụng như một công cụ bình thường:
Với kết quả trông như thế này (outcrop của bộ dữ liệu natura2000 rasterized):
Hoặc trong các thuộc tính lớp:
Tôi nghĩ rằng điều này cần một số tinh chỉnh trong trải nghiệm người dùng, nhưng đó là bước đầu tiên.