We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Developing a real-time quality checker for the operators on QGIS

00:00

Formal Metadata

Title
Developing a real-time quality checker for the operators on QGIS
Title of Series
Number of Parts
266
Author
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
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
The National Land Survey (NLS) of Finland embarked on developing a national topographic data production system using open-source technologies, primarily QGIS client. Their goal is to launch the Minimum Viable Product (MVP) of the application for NLS operators by early 2025. A significant recent advancement is the creation of a user-friendly data quality management system, designed to offer easy adaptability for quality rule changes and comprehensive insights. The NLS developed a tool named "Quality Management Tool" to achieve this. While some QGIS tools like geometry checks were utilized, the NLS found that the existing QGIS tools were not easily customizable or extensive enough for their specific quality demands. This prompted them to manually select and configure quality tools, a process consuming valuable operator time. The core principle guiding their quality management approach is to provide real-time feedback to operators, enabling them to address errors within their standard workflow, thus eliminating the need for separate quality control phases. Furthermore, the NLS ensures that users can save their work to their local database without workflow interruption, even if errors exist. Although the graphical user interface for visualizing quality check results has been released on GitHub, this presentation aims to showcase the tool's broader functionality. It will include use case videos to demonstrate its capabilities on a larger scale, discussing its architecture and future development plans.
Operator (mathematics)Rule of inferencePhysical systemPresentation of a groupContent (media)Machine visionConstraint (mathematics)SineInformationComponent-based software engineeringTexture mappingNetzwerkverwaltungMathematicsLogicElement (mathematics)Internationalization and localizationComplete metric spaceProcess (computing)Error messageGeometryAttribute grammarTopologyComputer networkContinuous functionLink (knot theory)Function (mathematics)Extension (kinesiology)Data modelPolygonInterior (topology)Line (geometry)Boundary value problemConsistencyCollaborationismOperations support systemSoftware developerLink (knot theory)MereologyInterior (topology)Water vaporOperations support systemAnalytic continuationNP-hardMappingFile formatLine (geometry)Object (grammar)Rule of inferenceConnectivity (graph theory)Process (computing)BitConsistencyPhysical systemFlow separationResultantVideoconferencingMatrix (mathematics)1 (number)SoftwareElement (mathematics)Attribute grammarOrder (biology)Product (business)PolygonRelational databaseSocial classNormal (geometry)Machine visionGeometryError messageAddress spaceHypercubeMultiplication signExtension (kinesiology)Game controllerBoundary value problemComplete metric spacePoint (geometry)Level (video gaming)Endliche ModelltheorieNetwork topologyComplex (psychology)Projektive GeometriePresentation of a groupOpen sourceComputer animation
Operator (mathematics)AreaLevel (video gaming)Computer animation
MiniDiscTerm (mathematics)BitResultantInformationError messageElectronic mailing listOperations support systemPoint (geometry)Field (computer science)Relational databaseDatabaseAttribute grammarLink (knot theory)Range (statistics)Type theoryDifferent (Kate Ryan album)Object (grammar)MereologyLevel (video gaming)AreaState of matter2 (number)MathematicsNumber theoryForm (programming)XMLComputer animation
Operator (mathematics)Operations support systemDatabaseRule of inferenceQuery languageAreaFile formatJava appletFunction (mathematics)Client (computing)Constraint (mathematics)Error messageProcess (computing)Revision controlControl flowContinuous functionLimit (category theory)Maxima and minimaSocial classPresentation of a groupTopologySoftwareSoftware testingUser interfaceInternationalization and localizationComa BerenicesPerformance appraisalSource codeNetzwerkverwaltungPhysical systemSoftware developerRepository (publishing)Product (business)Object (grammar)File formatMaxima and minimaRelational databaseClient (computing)Front and back endsSoftware developerLibrary (computing)DatabasePlug-in (computing)Service (economics)InformationDifferent (Kate Ryan album)Source codeNetwork topologyData managementAreaRule of inferenceLine (geometry)Error messagePresentation of a groupArithmetic meanMereologyField (computer science)MathematicsResultantRepository (publishing)Cartesian coordinate systemSoftwareOpen sourceWater vaporMetreQueue (abstract data type)Denial-of-service attackWeb pageAttribute grammarProcess (computing)Analytic continuationRevision controlPerformance appraisalOperations support systemQuery languageInternationalization and localizationFunctional (mathematics)Formal languageForm (programming)Number theoryComputer animationXML
XMLComputer animation
Transcript: English(auto-generated)
Hey everyone, it's so nice to see so many of you here. My name is Ollie Allen and I work for the National Land Survey in London. Basically, my presentation contains the background of our project,
the quality assurance in our system, the topological rules we have implemented, the developed quality tools we use to control the quality, then a little bit of the benefits of the tool, some challenges we face during the development and next steps.
So there's a lot of stuff here and a lot of text, but I'm sorry for that. But yeah, basically the background of the project is that the National Land Survey of Finland has been developing this topographic data production system based on open source technologies since 2021.
Most of the developed components have been related to job management, stereo mapping and easing the workflow for the operators in general. And in 2022 we started to develop this quality tool for the operators and our vision was to develop it in a way that it would be easy to use and informative for the operator.
The quality checks would be fast and would happen with the operator's normal workflow. And that the quality constraints should be simple to maintain and change. So for the quality assurance in NLS, basically this tool focuses on the logical consistency,
but we also cover other quality elements in NLS such as coverage, completeness and up-to-dateness. But these are evaluated in separate processes. With the quality tool these are based on quality rules like geometry attributes and topological rules.
And we also control the continuity of both attributes such as road links and the addresses they have and stuff like that. Then our production of work is guided by the severity level of the work. So we have three different states of severity.
So basically info, warning and payload, errors. So for the topological rules, those are based on post-GIS. And we use ST, disjoint, ST covered by and some custom rules. And these custom rules have been implemented by using the ST relay function,
which is based on the dimensionally extended line intersection model. Don't ask me hard questions about that, about the developers there. But yeah, we have been using that. Basically we now use seven custom rules.
And some examples of these are line interior must not intersect polygon interior or boundary. So with this we basically control how that leads us. So line geometry topologically connects to leg features. Then another one would be feature A must order feature B.
And this would be whole line intersects polygon boundary. And with this we control the topological consistency of leg control features. So how we have actually set up the rules. So this is a crazy large Excel, but you can basically see it there. But it's an Excel format.
So basically we have used all the object classes we have. We have about 100. And just did a matrix from those and defined each and every relationship with each object class to another object class. And this has been defined by us, so the development team and the data team specialists. And in the MLS we have, I think, seven or six data team specialists.
So they are people who really focus on certain themes, like hyper graphic and red or complex and stuff like that. So with this matrix there's three different classes to define.
Basically the red ones you see here. I'm sorry that you can't see the names of the objects there, but there's, for example, C parts and leg parts. So basically C parts and leg parts have those red ones since they can be on top of each other. So the rule works on both ways.
Then we have the green ones, which are kind of like node checks. Because these are either covered somewhere else with another rule. Or they simply don't maybe have those many mistakes in general, so we don't even bother to check them. And the yellow ones then are the ones we check on one side only.
For example, canal and C parts. So canal has to be on top of C parts, leg parts or water ways. So it has to be on top of those, but C parts don't have to be on top of canal. So it works on this way.
Then the major challenge there is to balance between just-in-case checks and useful checks. All right, I didn't take a seat before. So the network quality tool. I'll show you a video just in a minute.
But before that, just to introduce you to it. Basically, it can be displayed at any point during the workflow for the operator. And the results that you get from this are refreshed each time the operator does certain operations. I will go on those a bit further on my presentation.
The results can be seen visually and when fixed will disappear from this setlist. And the operator can always filter the results. And now the interesting part, if I get the video working.
Yeah, I think so. So you can see the map theme up there. And I'm zooming into my modification area. So basically my work database is here. You see the yellow parts. Those are our fields and we have a lot of those so you can check those out.
And when I click on that tool, I get the quality results on the map. So basically when I zoom out, I can see also them in this point like a symbology. And we have info and warning state errors there now. And basically I'm trying to show that there's an error there and I'm going to take it out like the topology error.
So basically I can always filter the results there for the errors. And you can filter by error types, feature types and different attributes there.
And also by different themes. So basically just make the list a bit shorter for the operators. You cannot work on this area only specifying for these certain objects. And then you can also show only the errors in your map extent.
And so you see that filtering on the list there. Or visualize the errors sometimes and visualize them back if you want to do that. And when you click on an object, it automatically zooms to that object and selects the layer. So basically the error here is that two fields can be next to each other. They have to be combined, so to speak.
So now I'm changing the attribute for this field to be unguarded. So hopefully when I click the garden there in a second and save the changes, you will see that it will disappear from the list in a couple seconds time.
All right. Yes? Okay. So yeah, it's not like real-time, so to speak. Maybe they have to be used for some work there, but almost.
So now I'm checking the road link there and changing some features. We also use constraints on the fields, as you see there. And I have the operator to choose this path because there's ranges and all that. So yeah, I'm just clicking the errors types there and putting some numbers in.
In a second I will realize that I have to save the edits.
All right. Yes? And it takes a couple of seconds and then it will disappear from the list again. And also the visualization, it takes a while, but now I have it selected, but when I click it, otherwise it's a good form there. All right. And then I registered the changes. So basically I have the modification area.
So when I register the changes, my work databases get transferred to the primary database and the objects are again, refreshed. Yes.
So basically how does it work? I realize that you can't see anything here, but basically the quality one starts in the background and the operator creates the modification area. And it will run again if the modification area is then modified, so expanded basically usually, or the operator refreshes the work
or saves new edits to the work database. And the rules are taken using SIPA queries from the database and we have developed this young application that runs them in the database when one of these set functions are executed. And it can concurrently run the execution of the rules
and manage the queue of items to be checked. And the rules are defined in this young format which can be easily configured. And I have a picture of the young format here, but you can find all these also on my GitHub page. So basically of the young there are defined,
like the relationship between the discharge area and the late part. So basically it has all this information about the text that is provided by the quality form and also the languages that are available for it. Then the rule IDs, the unique IDs for the rule,
and then the source and target filter. These are used then for if there will be an attribute that will be checked also from the topology. So basically, like the field object I just showed, the garden features can be next to fields, but fields and fields can be next to each other.
They have to be the same field. And then there's the SQL there. And then basically only edited items are checked, so when you edit an item it checks also the features that are collected with, for example, the logical checks in the features.
And basically we have developed this visualizing plugin called Quality Results, Practical User Interface. It shows one, but I mentioned in the previous talk, there you can filter and view the results in Gucci, I guess. Some benefits of the tool, the golf is not related, I'll just take a picture there,
but it's like one tool that we'll demo. Basically the quality checks can be handled in this single tool, which is easier for the user, so he or she doesn't have to use multiple tools to control the quality. And we can centralizely handle the quality rules,
so basically when changes happen for the quality rules, for example, this data team specialist can ask for a change for the quality rules so we can maintain those changes in our version continuous development processes. All right, and then why we chose to do the quality checks on the database,
so basically we found out that it would be a pretty much better performance than in the backend service for a client to do the same thing, and we can also do the fatal errors as constraints from the primary database,
and quality can also be checked for data that is imported to different bookstores, which is important for us since we are currently importing data from the current system, so we can already check the data from that, that it has no fatal errors to it.
And also the checks can be run both in work database and primary database. Then for the challenges, since you saw that Excel, so we have over 100 different object classes, and since all of these have defined relationships with each other,
it's high maintenance for us. And we currently limit the maximum number of errors in the tool for 1000 to make sure that performance is not quite up too much, but this might change soon since most of the errors right now are from topological relations between shoreline and water features,
and we need to kind of have a solution for combining those that follow the one line topologically, because there's a lot of these little one millimeter switches to these, so they flood in the pool, so to speak.
And yeah, it's still a work in progress, meaning that we are currently evaluating which checks are actually meaningful and which are not. Alright, and then for the next steps, so basically we are testing the performance with a lot of topological checks, we are adding like, I think we have now made maybe like 20% of the topological checks
for the different object classes, so we are adding the rest of them over the summer, so basically we will see how it really works in action, how fast it is and so forth, and upgrading the software to handle more than 1000 errors at the time,
or like smoothing the graphical user interface, which is a common problem I guess, all these kind of tools. And alright, then there's the GitHub repository and some related topics here in FOSPG from NLS.
So basically you can find all of these in the NLS GitHub, and we have published a front-end of the quality pool and the other library for executing the QGIS queries in the quality pool. And so for the related topics, Andrew just gave his great presentation about the improving QGIS plugin developer experience,
and Eero is having his presentation tomorrow about the development of QGIS-based topographic data management system, and then Eero had his already yesterday about the evaluation and assessment of open source projects, so please check them out as well.
Thank you.