2

I am quite new inthe field of GIS. I am interested in is to load the raster image which is in TIF format using QGIS API

I have followed the steps given the in the follwing link to load shape file enter link description here http://geospatialdesktop.com/2009/02/creating_a_standalone_gis_application_1/ and it works fine

To load the rester image i have followed the steps given int he link http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html

I have python 2.7.6 ,GDAL 1.10.1 installed with qgis2.0 installed in my system

code snippet

import osgeo.gdal
from  gdalconst import *
from PyQt4.QtCore import QFileInfo,QSettings
from qgis.core import QgsRasterLayer, QgsCoordinateReferenceSystem

file = QFileDialog.getOpenFileName(self, 
    "Open TIF Image", ".", "Tagged image (*.tif)")
fileInfo = QFileInfo(file)    
fileName=fileInfo.fileName()
baseName = fileInfo.baseName()

layer = QgsRasterLayer(fileName, baseName)    

but the image is not loaded and i got the following error in the terminal

ERROR 4: `mypic.tif' does not exist in the file system,
and is not recognised as a supported dataset name.

Layer failed to load!
QObject::connect: Cannot connect (null)::repaintRequested() to QgsMapCanvas::refresh()
QObject::connect: Cannot connect (null)::screenUpdateRequested() to QgsMapCanvas::updateMap()
Germán Carrillo
  • 36,307
  • 5
  • 123
  • 178

1 Answers1

3

Change your last line to:

layer = QgsRasterLayer(file, baseName)

file contains the full path to your raster file (e.g., /home/user/geodata/mypic.tif), while fileName, which you are passing as argument right now, only contains the name of the file (e.g., mypic.tif).

Germán Carrillo
  • 36,307
  • 5
  • 123
  • 178