[Qgis-developer] How to load a colour table on a raster,
programmatically (in python)?
Peter Ersts
ersts at amnh.org
Thu Aug 5 16:03:58 EDT 2010
On 08/05/2010 03:08 PM, Benoit de Cabissole wrote:
> I've implemented the code following your suggestions, but it throws the
> following error:
>
> ==================================================================
> Traceback (most recent call last):
> File "C:\Documents and
> Settings\Benoit/.qgis/python/plugins\bcccoltbl\cdlgTBL.py", line 373, in
> accept
> self.theLayer.rasterShader().setColorRampItemList(theTBL)
> AttributeError: 'QgsRasterShader' object has no attribute
> 'setColorRampItemList'
>
Sorry Benoit. I kind of gave you the short hand version.
RasterLayer.rasterShader() returns the base class of QgsColorRampShader
which is QgsRasterShader() you will have to cast the base class to type
QgsColorRampShader, but don't even know if that is possible in python.
However, there is another way, You could create your own instance of a
QgsColorRampShader and pass that to the raster layer using
>>yourColorRampShader = QgsColorRampShader()
>>yourColorRampShader.setColorRampItemList( YourList )
>>RasterLayer.setRasterShaderFunction( yourColorRampShader )
If you take this approach, you no longer have to call
RasterLayer.setColorShadingAlgorithm().
That should do it. I don't do much python coding, so i may not be able
to highlight all of the differences between the python and c++ approach.
-pete
--
====================================
Peter J. Ersts, Software Developer
American Museum of Natural History
Center for Biodiversity and Conservation
Central Park West at 79th Street
New York, New York 10024
Web: http://biodiversityinformatics.amnh.org
Web: http://cbc.amnh.org
Open Source,
...evolving through community cooperation to change the world bit by bit
Quantum GIS Raster Development Team.
More information about the Qgis-developer
mailing list