Skip to content

VectorLayerFieldRasterDataProvider constructor #82

@jakimowb

Description

@jakimowb

Creating a QGIS layer with VectorLayerFieldRasterDataProvider as in:

# this line create QGIS messages to stderr
layer = QgsRasterLayer('?', name, VectorLayerFieldRasterDataProvider.providerKey())

assert layer.isValid()
dp: VectorLayerFieldRasterDataProvider = layer.dataProvider()
dp.setActiveFeatures(profiles, field=SpectralProfileValueConverter(field))

generates these warnings:

C:\src\osgeo4w\src\qgis-dev\qgis\src\core\raster\qgsbrightnesscontrastfilter.cpp(90) : (QgsBrightnessContrastFilter::setInput) [12766ms] No input band
C:\src\osgeo4w\src\qgis-dev\qgis\src\core\raster\qgsrasterpipe.cpp(89) : (QgsRasterPipe::connect) [0ms] cannot connect class QgsBrightnessContrastFilter to class sipQgsRasterDataProvider
C:\src\osgeo4w\src\qgis-dev\qgis\src\core\raster\qgshuesaturationfilter.cpp(95) : (QgsHueSaturationFilter::setInput) [0ms] No input band
C:\src\osgeo4w\src\qgis-dev\qgis\src\core\raster\qgsrasterpipe.cpp(89) : (QgsRasterPipe::connect) [0ms] cannot connect class QgsHueSaturationFilter to class sipQgsRasterDataProvider
C:\src\osgeo4w\src\qgis-dev\qgis\src\core\raster\qgsrasterresamplefilter.cpp(92) : (QgsRasterResampleFilter::setInput) [0ms] No input band
C:\src\osgeo4w\src\qgis-dev\qgis\src\core\raster\qgsrasterpipe.cpp(89) : (QgsRasterPipe::connect) [0ms] cannot connect class QgsRasterResampleFilter to class sipQgsRasterDataProvider

Solution:

allow to define the number of raster bands already in the uri used to initialite the data provider, e.g:

layer = QgsRasterLayer('?<fieldname>:<bands>', name, VectorLayerFieldRasterDataProvider.providerKey())

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions