> > > Do you mean QgsRasterInterface with multiple inputs? This is not > currently supported. In theory you can write an interface with > multiple inputs, but for example QgsRasterFileWriter is using some > info from srcInput, i.e. the first interface (provider) in the pipe, > there is no support for multiple srcInput. Most probably it would > work, but there some problems may appear. You could also overwrite > srcInput in your QgsRasterInterface subclass in which multiple > branches are connected. >
Ok, but I wonder what is QgsRasterInterface.setInput [1] meant for? Is the input supposed to be only a QgsRasterDataProvider? If I see that it requires a QgsRasterInterface I think it can be whatever else QgsRasterInterface... [1] https://github.com/qgis/Quantum-GIS/blob/master/src/core/raster/qgsrasterinterface.h#L108 > > Radim > > > > giovanni > > > > > > 2012/12/11 Radim Blazek <[email protected]> > >> > >> On Tue, Dec 11, 2012 at 10:52 AM, G. Allegri <[email protected]> > wrote: > >> > Until now I've mostly created vector layers on QGIS, delegating raster > >> > creation to custom GDAL utilities. > >> > Recently I looked into QgsGdalProvider and I saw that it exposes the > >> > QgsRasterDataProvider::Create capability. > >> > I wonder if it's possible to create a brand new raster (geotiff or > what > >> > else) using this provider and, in case, what is the right workflow to > do > >> > that. I haven't found examples of doing it... > >> > >> Yes it is possible. You can use a provider directly > >> > >> QgsRasterDataProvider * provider = ( QgsRasterDataProvider* > >> )QgsProviderRegistry::instance()->provider( "gdal", dataSource ); > >> provider->write( data, band, width, height, xOffset, yOffset ) > >> > >> if you your algorithm implemented as QgsRasterInterface you can use > >> higher level QgsRasterFileWriter which will do the work splitting > >> raster into parts > >> > >> QgsRasterPipe* pipe = new QgsRasterPipe(); > >> pipe->set( inputProvider->clone() ); > >> pipe->insert( 1, yourInterface ); > >> QgsRasterFileWriter fileWriter( fileName ); > >> fileWriter.writeRaster( pipe, width, height, extent, crs ); > >> > >> Radim > >> > >> > >> > giovanni > >> > > >> > _______________________________________________ > >> > Qgis-developer mailing list > >> > [email protected] > >> > http://lists.osgeo.org/mailman/listinfo/qgis-developer > >> > > > > > >
_______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
