การเปลี่ยนการแสดงสีของเลเยอร์แรสเตอร์หลายชั้นพร้อมกัน

Aug 17 2020

ฉันมีเลเยอร์แรสเตอร์มากมายในโปรเจ็กต์ QGIS ของฉันและตอนนี้พวกมันทั้งหมดแสดงผลเป็น: สีหลายแถบแถบสีแดง: วง 1 วงสีเขียว: วง 2 วงสีฟ้า: วง 3

ฉันต้องการทราบว่ามีวิธีใดบ้างที่ฉันสามารถเปลี่ยนการเรนเดอร์ของเลเยอร์แรสเตอร์ทั้งหมดเป็น: แถบสีแดง: วงดนตรี 3 แถบสีเขียว: วงดนตรี 2 วงสีน้ำเงิน: วงดนตรี 1 โดยไม่ต้องทำด้วยมือทีละชั้น

คำตอบ

3 BERA Aug 17 2020 at 02:04

คุณสามารถใช้ pyqgis สิ่งนี้จะเปลี่ยนสัญลักษณ์ของเลเยอร์แรสเตอร์ทั้งหมดในเลเยอร์ทรีเป็นแถบสีแดง = แบนด์ 3 สีเขียว = แบนด์ 2 สีน้ำเงิน = แบนด์ 1

for lyr in QgsProject.instance().mapLayers().values():
    if isinstance(lyr, qgis.core.QgsRasterLayer): #Check to make sure it is a raster layer
        r = lyr.renderer().clone()
        r.setRedBand(3)
        r.setGreenBand(2)
        r.setBlueBand(1)
        lyr.setRenderer(r)
        lyr.triggerRepaint()

1 bugmenot123 Aug 18 2020 at 01:18

ตั้งค่าสำหรับเลเยอร์เดียว

คลิกขวาที่เลเยอร์นั้นสไตล์ -> คัดลอกสไตล์

เลือกเลเยอร์อื่น ๆ ทั้งหมดที่คุณต้องการใช้สไตล์เดียวกันคลิกขวาสไตล์ -> วางสไตล์