एक ही बार में कई रेखापुंज परतों का रंग प्रतिपादन बदलना

Aug 17 2020

मेरी QGIS परियोजना में मेरे पास कई रेखापुंज परतें हैं और वे वर्तमान में सभी के रूप में प्रस्तुत की जाती हैं: मल्टीबैंड रंग लाल बैंड: बैंड 1 ग्रीन बैंड: बैंड 2 ब्लू बैंड: बैंड 3

मैं जानना चाहता हूं कि क्या कोई तरीका है जिससे मैं सभी रैस्टर लेयर्स के प्रतिपादन को बदल सकता हूं: रेड बैंड: बैंड 3 ग्रीन बैंड: बैंड 2 ब्लू बैंड: बैंड 1 बिना हाथ से, परत दर परत इसे करने के लिए।

जवाब

3 BERA Aug 17 2020 at 02:04

आप पाइकगिस का उपयोग कर सकते हैं। यह लेयर ट्री में सभी रैस्टर लेयर्स के सिम्बोलॉजी को रेड बैंड = बैंड 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

इसे एक परत के लिए सेट करें।

उस लेयर, स्टाइल्स -> कॉपी स्टाइल पर राइट क्लिक करें।

उन सभी अन्य परतों का चयन करें, जिन्हें आप उसी शैली को लागू करना चाहते हैं, राइट-क्लिक करें, शैलियाँ -> पेस्ट स्टाइल।