I am following an article here:Actions HowTo , specifically the piece about an action to load a raster:

Python type
    Add Raster Layer

Can anyone advise what i need to do to open a raster based on a value in the vector table (essentially I have a grid with a field containing a field of Grid_Ref for all items where a raster image exists).

I have been fiddling with the example above and got as far as an Action of Type Python, Named OpenRaster, with the following action:

qgis.utils.iface.addRasterLayer('E:\Plot Sheet Devt\1974-1984\1250k\' + "Grid_Ref" + '.TIF',"Grid_Ref") 

The Python error that I am getting on running this is

File "", line 1 qgis.utils.iface.addRasterLayer('E:\Plot Sheet Devt\1974-1984\1250k\' + "Grid_Ref" + '.TIF',"Grid_Ref") ^

SyntaxError: EOL while scanning string literal

How should I go about forming the open 'PATH_FILE' and 'NAME_FILE_IN_QGIS' so that it picks the information from the Grid_Ref field in the underlying vector data?

As always, thanks for your time


  • Which QGIS version?
    – Nathan W
    Commented Aug 23, 2013 at 11:08
  • @NathanW - currently looking at 1.8, but will have to replicate in 2 when I get up and running on that
    – Mark
    Commented Aug 23, 2013 at 11:16
  • Great Action. I'm using it. Is it possible to assign the Coordinate reference systems and to build pyramids? Commented Jan 16, 2017 at 10:36

1 Answer 1


I have managed to resolve this by following this article and adapting it to fit my requirements, and have ended up setting the command as:

qgis.utils.iface.addRasterLayer('E:\\Plot Sheet Devt\\1974-1984\\1250k\\[% Grid_Ref %].TIF', '[% Grid_Ref %]')

therefore I am using the format

[% attributename %]

to collect the value of an attribute where the action is used.

Also I have corrected my non-escaped backslashes from original post.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.