Hi @Rudi von Staden <[email protected]> , @Nyall Dawson <[email protected]> and @Matthias Kuhn <[email protected]>
in the meantime I had to resolve compilation problems and OS update I'll show you what I'm doing to resurrect rastercalculator in modeler trying to evaluate if I'm doing well. the principal problem (but not the only one) to run raster calculator in a modeler is to map input value to the formula. This is a generic problem that can be applied to any algorithm that need to map input in something internal to the algorithm. The main problems is that the algorithm context scope hadn't information to allow this mapping. I added: context.setExpressionContext(expContext); here https://github.com/qgis/QGIS/blob/master/src/core/processing/models/qgsprocessingmodelalgorithm.cpp#L276 and naming the createExpressionContextScopeForChildAlgorithm scope "algorithm_inputs" (actually the added scope does not have name, because was not necessary) and add this mapping in ::variablesForChildAlgorithm https://github.com/qgis/QGIS/blob/master/src/core/processing/models/qgsprocessingmodelalgorithm.cpp#L431 with value: <var name>: <maplayer instance> In this moment only <var name>_[extent] variable are added in this context scope the idea, in the processAlgorithm python part, is to get the expression context from ProcessingContext and substitude <var name> with <maplayer source> in the formula that will be executed by QgsRasterCalculator conceptually it works, but many other problems in context and parameter settings are present that seems they are more generic modeler problems I'm still trying to solve and reproduce them) What I'm not sure is to use the expressionContext to store this information instead of a different or new contextScope. the advantages is that the new input parameters are available in the expression editor because available in the context. as soon as I can I'll give you a PR where to talk about real code... in this moment I doing tests if my approach is (almost) correct and finding all limitation using these pathces in simple test models Luigi Pirelli ************************************************************************************************** * LinkedIn: https://www.linkedin.com/in/luigipirelli * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli * GitHub: https://github.com/luipir * Mastering QGIS 2nd Edition: * https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition * Hire me: http://goo.gl/BYRQKg ************************************************************************************************** On Wed, 4 Jul 2018 at 00:24, Luigi Pirelli <[email protected]> wrote: > I was supposing is was subject to the GSOC about qgis/grass... but I can > be wrong. > Luigi Pirelli > > > ************************************************************************************************** > * LinkedIn: https://www.linkedin.com/in/luigipirelli > * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli > * GitHub: https://github.com/luipir > * Mastering QGIS 2nd Edition: > * > https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition > * Hire me: http://goo.gl/BYRQKg > > ************************************************************************************************** > > > On Tue, 3 Jul 2018 at 18:31, Giovanni Manghi <[email protected]> > wrote: > >> Hi Luigi, >> >> > I know that some power users are stuk to 2.18 for the lack r.calc in >> grass7 >> > integration in qgis (that seems will be solved soon) >> >> what is greatly missing (in GRASS7) is r.mapcalculator.py, a script >> made on top of r.mapcalc that among the other things allowed us to >> have in Processing a nice way to use r.mapcalc (because it worked via >> normal description files while r.mpalcalc does not, and any attempt to >> make it work in Processing was not very succesful). >> >> Are you saying that this script is being ported in GRASS7? >> >> cheers >> >> -- G -- >> _______________________________________________ >> QGIS-Developer mailing list >> [email protected] >> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer >> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer > >
_______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
