QGIS: No more plugins only processings
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43463 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Plug-in (computing)Process (computing)Presentation of a groupProcess (computing)Game theoryMultiplication signBit rateLecture/Conference
00:22
Plug-in (computing)Server (computing)Service (economics)QuantumRevision controlComputing platformAreaStapeldateiScripting languageInterface (computing)Group actionProcess (computing)Mathematical analysisModule (mathematics)Process (computing)Software frameworkData analysisFunction (mathematics)AlgorithmLibrary (computing)QuantumServer (computing)Presentation of a groupLevel (video gaming)AlgorithmProcess (computing)Process (computing)Functional (mathematics)Plug-in (computing)Revision controlScripting languageCore dumpEndliche ModelltheorieGraphical user interfaceSoftware frameworkStapeldateiService (economics)Mathematical analysisSpring (hydrology)Contingency tablePosition operatorResultantKey (cryptography)Labour Party (Malta)Prisoner's dilemmaSpeech synthesisMultiplication signPoint (geometry)DemosceneCASE <Informatik>Network topology
05:01
Process (computing)Core dumpPlug-in (computing)Process (computing)Key (cryptography)Student's t-testDirectory serviceCore dumpSoftware developerComponent-based software engineeringMereologyPlug-in (computing)XMLUML
05:34
Process (computing)Plug-in (computing)Process (computing)Function (mathematics)Core dumpElectronic visual displayLine (geometry)Network topologyDemosceneComplex (psychology)Context awarenessGroup actionInformationBootingGoodness of fitThread (computing)Process (computing)outputAlgorithmVideo game consoleXMLProgram flowchart
07:11
Process (computing)Interface (computing)DialectLecture/Conference
07:31
Scripting languageProcess (computing)Process (computing)Internet service providerInterface (computing)Plug-in (computing)Distribution (mathematics)AlgorithmMaxima and minimaComputer wormNormed vector spaceConvex hullInternationalization and localizationLimit (category theory)outputDefault (computer science)Variable (mathematics)Reduction of orderEndliche ModelltheorieStapeldateioutputResultantAlgorithmVariable (mathematics)Process (computing)Projective planePlug-in (computing)User interfaceForm (programming)Function (mathematics)Software developerWritingWeb 2.0Internet service providerScripting languageInterface (computing)Combinational logicCASE <Informatik>GeometryFunctional (mathematics)Core dumpTemplate (C++)Presentation of a groupDatabaseInformationStapeldateiEndliche ModelltheorieProcess (computing)MereologyIntegrated development environmentComputer fileState observerComplex (psychology)Mathematical analysisServer (computing)Table (information)WebsiteElectronic visual displayCondition numberInclusion mapDifferent (Kate Ryan album)Multiplication signArmNetwork topologyHoaxDirected graphLocal ringDemosceneWorkstation <Musikinstrument>Complete metric spaceNeuroinformatikBoundary value problemFerry CorstenPhysical systemTunisArithmetic meanFigurate numberOffice suiteNumberComputer animation
15:43
Plug-in (computing)PlanningProcess (computing)Event horizonCuboidSoftware developerStandard deviationWebsiteTable (information)Dependent and independent variablesFile formatDatabaseLattice (order)Selectivity (electronic)CodeAlgorithmComplex (psychology)Moment (mathematics)Parameter (computer programming)Endliche ModelltheorieProcess (computing)Multiplication signStructural loadComputer fileThread (computing)Block (periodic table)MappingCASE <Informatik>Connected spacePhysical systemWindowHeat transferCausalityComputer clusterDemosceneTrail1 (number)Point (geometry)State of matterUniform resource locatorKey (cryptography)Goodness of fitStability theoryLecture/Conference
Transcript: English(auto-generated)
00:07
Hi everyone, thanks to be here to listen to my presentations. I will speak about QGIS plugins and QGIS processing, to invite you to write any processings
00:29
and to not create new plugins. So, I'm René Ligdant, I'm co-founder of Threeliz. We provided services around QGIS, QGIS server and GIS Map.
00:44
GIS Map presentation is tomorrow and the society will be seven guys in September 2019. Well, the activities grow up and will be more to work on QGIS, QGIS server and GIS Map.
01:06
So, QGIS plugins and Python plugins are started with Quantum GIS 0.9 in 2007.
01:21
So, from previous, you can add features to Quantum GIS for what you need and what Quantum GIS didn't do. So, Victor Olaya used these capabilities to create a first plugin sextant
01:49
to provide the capabilities to do some processing in QGIS. At the start of this plugin, we have already the capabilities to script processing,
02:04
to create models with a graphical interface and to do some batch processing. And this plugin will be available from Quantum GIS Lisboa since 2012
02:22
and be updated during the last step to QGIS 2.0 and just be available as an external plugin and with QGIS 2.0, probably just after first 4G in the second,
02:40
the plugin has been integrated in the core of QGIS. So, when you install QGIS 2.0, you have QGIS processing and you have the basic capabilities to extend QGIS without installing another plugin.
03:00
This is the script capabilities provided by QGIS processing. But the processing plugin evolved and during the International QGIS User Conference in 2016, in Girona, Victor made a presentation about processing is not an analysis framework.
03:24
He would like during this presentation to invite people who made plugins to use processing. A lot of plugins in QGIS is built to add processing features or analysis features.
03:44
But every time, a lot of time, the plugins just add the capabilities without processing capabilities. And the processing capabilities is to reuse analysis tools, process.
04:06
So, Victor said that when you build or want to create new plugins, firstly, rethink how you write it. Allow plugin functionality to be used as a library, to be reused in other plugins.
04:26
And if you do that, create processing algorithms. So, people can reuse the modeler, the QGIS modeler to reuse your process. And this is present with the last version of QGIS 2.0.
04:43
It was the SN and the last Palmas. During the end of QGIS 2.0, the QGIS community decided to rebuild the way QGIS processing is made, is done.
05:01
And with QGIS Girona, published in February 2018, the processing be integrated in the core IP of QGIS. So, all of the plugins part of QGIS processing has been write in C++, integrated directly in the core API,
05:28
and available as C++ components. So, with this, QGIS developers provide a lot of processing available in the toolbox in C++.
05:47
All the process with the QGIS logo is directly in C++ and in the core of QGIS. With this rewriting, we have the capability to create a new algorithm, a new process,
06:06
based on two Python classes, like QGIS processing algorithm. So, when you create a new process, you have the capability to have a true name, a true display name, a group, some help.
06:25
You can define a complex input. Well, for those who have already do some processing algorithm, write in C. The input was just a line of text, which describes a new input and output.
06:44
And the process algorithm has some enhancements, like a context and a feedback, which can help to provide information to the users during the processing, and to be aware of console.
07:05
This is important because now algorithm can be run in another thread. The QGIS interface is not blocked by processing. A long processing can be run in back, even if it's in Python or with other language, other providers, like GEDAL, SAGA, GRASS, and others.
07:32
In QGIS 3.6, developers added some easiest way to create script processing.
07:43
For Pythonic developers, some decorators. So, now you can just create a function, it's your algorithms, and with decorators, you can specify name, input, and output.
08:02
All this is available in the documentation by the developers. So, with this, in a lot of cases, you do not need to create a complete plugin.
08:26
Just write a function, decorate it, and you have your interface and your process. It's quite easy to provide new functionalities, but plugins are not dead.
08:46
QGIS continues to use it, firstly for the processing user interface. The developer just puts in the core of QGIS the processing part, the running, and gets the user interface as a plugin part.
09:06
Plugins could be used also to add processing providers and a friendly user interface when the processing does not satisfy customers.
09:22
If you have to read plugins or to create algorithms, use the QGIS plugin builder with the processing provider template. Put in your algorithms, your library, and you have a way to enhance QGIS.
09:49
Plugins can be used also to distribute your algorithms. And because some customers think the processing toolbox is too complicated to provide a user interface or toolbar.
10:05
And to easily launch an algorithm from the toolbar, the QGIS processing provides some functions.
10:22
For example, exec algorithm dialogue, and you can add in your plugin just a toolbar with one button, and you can launch your algorithm with directly the dialogue from QGIS processing. So you don't have to create complex interface to provide new capabilities.
10:49
To illustrate what I have said, this is a concrete example. I have customers who have to extract information from pipes, TV inspection, and analyze the data to get information on the quality of pipes.
11:13
So, to develop it, I just create some algorithms.
11:24
My customer said he would like a way to create a geopackage or create directly in its database a schema with the table. He wants to configure the QGIS project with symbology, label, need to import the file of pipes TV inspection,
11:53
geolocalize the observation described in the file of pipes TV inspection, and at the end do some analysis on the observation to get the quality of pipes.
12:07
So, I have developed some algorithms, firstly in analyze ATV, it's complex algorithm with many inputs.
12:22
So, for some end users, algorithms are too complex. To provide simplified interface, I create an algorithm to configure the project to save as variables the available layers.
12:44
And I reused my first algorithm with simplified interface. And I didn't develop some dedicated interface for this. I have not made a customer say, well, yes, it's good, it works, it's fine, but I want something specific to my demands.
13:09
And I just put a doc, a file with some buttons, some tabs, and the user has just to click on one button to launch its algorithms to get the forms to specify inputs and to get the results.
13:30
So, by using QGIS processing, I have reduced my development time, I have reusable algorithms.
13:43
While if my customer want to create models based on this algorithm, he can automate, he can make batch. But QGIS processing is not complete yet. We have some lack of input or process.
14:04
We need some meter, we need some drawer to get just on the geometry in some case of processing algorithms. But if you use processing or write algorithm with processing, you have algorithm dialogue without developing user interface.
14:27
The processing algorithm will be available in the models. You can create some combination of process of algorithms. You can run processing batch on the server, for example, or with server interface like web processing service, you can run the same processing.
14:50
So, with one development, you have many capabilities of using the processing algorithm you have done.
15:02
So, in conclusion, now, QGIS plugins are not dead, but like Victor has said, we invite you to use processing, to write processing algorithms in your plugins. Because you have all this advantage when you do this.
15:26
And all the community can reuse your work in a QGIS environment. Thanks. Here are some questions. Thanks a lot for this interesting presentation.
15:48
I think it would be useful to have a workshop at some future event on how to create this processing.
16:08
Thank you. So, I wanted to ask basically, the main advantage of having the processing instead of a plugin is that it doesn't block the main thread of QGIS, right? So, QGIS stays responsive.
16:21
And then, let's say I have a use case, I build a plugin which loads a custom data format and it is done by a plugin at the moment. So, would you advise to convert that plugin to a processing tool in a way? Because the files that it can load can be quite large and actually it takes quite a long time to load occasionally.
16:46
I recommend to transform your plugins with processing algorithms and use your processing algorithms in the plugins. We have to do the same for CADAS in France.
17:01
We have built plugins five years ago without processing and we will port to processing all the analyzed import capability of the plugin. Okay, thank you. You're welcome.
17:21
Yeah, the responsiveness is not the only reason but you also gain a lot of flexibility for reuse by others here. And it can be reused in a standardized way, so people don't have to learn everything something new. Yeah, you don't need to create a combo box to select the layers, to filter the layers.
17:42
You have automatic selection of database connection, you can choose the schema table directly with this. No more code that just describes the input.
18:07
It's more a comment. As a developer, if you need to understand a plugin, if the developer uses processing, you can look at the algorithm. They have standardized methods to define the name, the process, the run, how do you run the process.
18:28
So it's very easy as a developer to understand your plugin and to take your algorithm and use it in your plugin. Because you just do processing.runag, the name and the parameters.
18:40
And then you can use it in models too, so you can use your importer in complex workflows. So really for users it's great, but for developers it's great too.
19:04
More questions or comments? No. Sorry, it's a question I don't know. Is there a roadmap of the future features or things that are really needed in processing?
19:30
I don't really know. I'm not participating to the development of the future processing API in C++. I just use it.
19:44
In general in QGIS we don't have too many roadmap sites. Actually the users come to us or come to some developer and say, okay, I'm missing this. It's not the master plan that we have. But it's a good question. Sometimes it would make sense to have a brainstorm what's missing and why not.
20:07
It could be done with some meeting or workshop. Someone want to build something like your FMO or other just based on QGIS processing? We have a QGIS announcement proposal about it.
20:34
Okay, if there are no more questions then I... It was so clear to everyone.
20:42
No questions? Oh, so good QGIS processing development? Okay, thanks. Thanks again and enjoy the evening at the Gala dinner.