複数のラスターレイヤーの演色を一度に変更する

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

1つのレイヤーに設定します。

そのレイヤーを右クリックし、[スタイル]-> [スタイルのコピー]を選択します。

同じスタイルを適用する他のすべてのレイヤーを選択し、右クリックして[スタイル]-> [スタイルの貼り付け]を選択します。