I have a CF-conform NetCDF-file which can be loaded into Quantum GIS (Version 1.8) by using the "Add Raster Layer"-button and subsequently choosing the file and the raster layers of interest. This works without problems. However, when trying to load the same file by following these steps from the python cookbook, the layer remains invalid. I tried it using the console:
>>> fileName = "/path/to/file/myfile.nc"
>>> fileInfo = QtCore.QFileInfo(fileName)
>>> baseName = fileInfo.baseName()
>>> rlayer = QgsRasterLayer(fileName, baseName)
>>> rlayer.isValid()
False
When trying to add the layer to the map registry, it doesn't show up:
>>> QgsMapLayerRegistry.instance().addMapLayer(rlayer)
I tried the same procedure with a jpeg with world file and it works.
The cookbook mentions that GDAL might not support some formats. I don't know how to check this in QGIS, but since it works manually, I don't think that this is the problem.
Maybe, I have to specify the raster layer of interest somewhere in the code?
Any help is highly appreciated.
Answer
Thanks to gene mentioning the netcdfbrowser plugin (see the addLayer()-method in netcdfbrowserdialog.py) I managed to get it working. In case of NetCDF-files the file name is not sufficient to load a raster. We also need to include the variable of interest. The following works:
>>> uri='NETCDF:"/path/to/file/myfile.nc":myvariable'
>>> rlayer = QgsRasterLayer(uri,'mylayername')
>>> rlayer.isValid()
True
>>> QgsMapLayerRegistry.instance().addMapLayer(rlayer)
The layer shows up.
No comments:
Post a Comment