Изменение цветопередачи сразу нескольких растровых слоев

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

Настройте его на один слой.

Щелкните правой кнопкой мыши этот слой, Стили -> Копировать стиль.

Выберите все остальные слои, к которым вы хотите применить тот же стиль, щелкните правой кнопкой мыши, Стили -> Вставить стиль.