จัดรูปแบบแรสเตอร์โดยอัตโนมัติโดยใช้ค่าเฉพาะใน QGIS หรือไม่


17

ใน ArcMap เป็นไปได้ที่จะคำนวณค่าเฉพาะสำหรับแรสเตอร์โดยอัตโนมัติแล้วใช้สไตล์ที่แตกต่างกับค่าที่ไม่ซ้ำแต่ละค่า (ดูภาพที่ 1)

อย่างไรก็ตามใน QGIS ฉันต้องเพิ่มค่าสำหรับการจัดแต่งทรงผมด้วยตนเองเมื่อใช้สไตล์ "Singleband pseudocolor" (ดูภาพที่ 2) มีวิธีการเติมค่าที่ไม่ซ้ำกันโดยอัตโนมัติเช่น ArcMap หรือไม่?

ArcMap:

ArcMap raster สัญลักษณ์ที่เป็นเอกลักษณ์

QGIS (วิธีเติมรายการค่าอัตโนมัติด้วยค่าที่ไม่ซ้ำได้อย่างไร):

QGIS raster stlying


คุณมีการจัดประเภททางด้านขวา ไม่แน่ใจว่าทำไมคุณถึงตัดสิ่งนี้ในสกรีนช็อตเพราะมันเป็นตัวเลือกที่คุณต้องการ ... เพียงแค่กำหนดจำนวนคลาสเป็นความแตกต่างสูงสุด - ต่ำสุด +1 ใช้โหมดช่วงเวลาเดียวกัน ปัญหาอาจเกิดขึ้นเมื่อข้อมูลของคุณไม่ต่อเนื่องกันดังนั้นคุณต้องลบค่าที่ไม่ได้ใช้
เคลือบ

@Matte แน่นอนอย่างไรก็ตามเรามักจะมีข้อมูลที่ไม่ต่อเนื่องที่มีช่องว่างขนาดใหญ่ ดังนั้นจึงไม่เหมาะที่จะลบค่าที่ไม่ได้อยู่ในตัวแรสเตอร์ (ตัวอย่างเช่นค่าเดียวคือ 1 และ 1000000 คุณจะต้องลบจำนวนมากด้วยตนเอง) นอกจากนี้ยังถือว่ามีความรู้เบื้องต้นเกี่ยวกับค่าที่ไม่ซ้ำกันภายในแรสเตอร์ ...
Peet Whittaker

คำตอบ:


3

สำหรับผู้ที่ยังคงมองหาสิ่งนี้ เพิ่มค่าแรสเตอร์ที่ไม่ซ้ำกันใน QGIS 3 "เพิ่มโดย Nyall Dawson เมื่อประมาณ 1 ปีที่แล้ว

[FEATURE] อนุญาตให้แยกประเภทเรนเดอร์เรนเดอร์โดยใช้ค่าที่ไม่ซ้ำจากเลเยอร์แรสเตอร์

เพิ่มวิธีที่ง่ายในการจัดรูปแบบแรสเตอร์แบบแยกเช่นคลาสของที่ดินโดยใช้ตัวเรนเดอร์ Paletted เพียงเลือกตัวเรนเดอร์ Paletted เลือกวงจากนั้นกดปุ่ม "เพิ่มค่าที่ไม่ซ้ำ" ค่าพิกเซลที่ไม่ซ้ำกันจะถูกดึงมาจากเลเยอร์และสีที่กำหนดให้กับแต่ละคนโดยใช้ทางลาดสีที่เลือกในปัจจุบัน "


7

นี่คือวิธีการที่อาจเป็นประโยชน์ เครื่องมือ GRASS r.reportสามารถคำนวณสถิติพื้นฐานสำหรับค่าที่ไม่ซ้ำกันในเลเยอร์แรสเตอร์:

ป้อนคำอธิบายรูปภาพที่นี่

เอาต์พุตสามารถเขียนเป็นไฟล์ txt ธรรมดาที่มีลักษณะเช่นนี้ (ซ้าย: ค่าที่ไม่ซ้ำ, ขวา: พื้นที่ที่ครอบคลุมโดยแต่ละค่า):

+-----------------------------------------------------------------------------+
|                      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|
+-----------------------------------------------------------------------------+

สคริปต์การประมวลผลทางภูมิศาสตร์ต่อไปนี้ใช้ไฟล์ข้อความนี้เป็นอินพุตและตั้งค่า renderer ที่เหมาะสม (พร้อมสีแบบสุ่มเพื่อความสะดวก) สำหรับเลเยอร์แรสเตอร์ (แรงบันดาลใจจาก LAWHEAD, J .: QGIS Python Programming Cookbook, p. 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)

ด้วยความสามารถในการประมวลผลระดับตำนานของ QGIS คุณสามารถรวมสองสิ่งนี้ไว้ในตัวสร้างแบบกราฟิกและเพิ่มพารามิเตอร์แบบแรสเตอร์เพื่อเลือกเลเยอร์แรสเตอร์แบบโหลด:

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากบันทึกแบบจำลองโดยการดับเบิลคลิกในกล่องเครื่องมือการประมวลผลมันสามารถใช้งานได้เหมือนเครื่องมือทั่วไป:

ป้อนคำอธิบายรูปภาพที่นี่

ด้วยผลลัพธ์ที่มีลักษณะเช่นนี้ (outcrop ของชุดข้อมูล rasterized natura2000):

ป้อนคำอธิบายรูปภาพที่นี่

หรือในคุณสมบัติชั้น:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันคิดว่านี่ต้องมีการปรับแต่งประสบการณ์ผู้ใช้ แต่เป็นขั้นตอนแรก


1
ไม่ใช่ประสบการณ์การใช้งานที่ดีที่สุด แต่ขอบคุณสำหรับการแบ่งปัน
RutgerH

ด้วยการเห็นเครื่องมือที่สร้างขึ้นเป็น UI เท่านั้นฉันคิดว่าไม่มีอะไรผิดปกติกับประสบการณ์ของผู้ใช้ และใครจะรู้ว่าเกิดอะไรขึ้นเบื้องหลังในเครื่องมือประมวลผลทางภูมิศาสตร์ของ ESRI ...
Jochen Schwarze
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.