Stricter topology validation and added new features#87
Open
vukovicvl wants to merge 1 commit intoOpen-Telecoms-Data:mainfrom
Open
Stricter topology validation and added new features#87vukovicvl wants to merge 1 commit intoOpen-Telecoms-Data:mainfrom
vukovicvl wants to merge 1 commit intoOpen-Telecoms-Data:mainfrom
Conversation
I implemented stricter topology validation as specified in the OFDS Improvements document that I provided to Duncan and Steve: Rule: every span must have valid from_node and to_node Rule: span geometry should touch the corresponding nodes (within a defined tolerance) Rule: prevent “dangling” spans (unless explicitly marked as planned/open-ended) Rule: detect duplicates (by ID and/or geometry) and self-intersection I created in libcoveofds/python_validate.py new class - GeometryTopologyAdditionalCheckForNetwork and added corensponding functions inside of that class. I created in libcoveofds/python_validate.py new class - DanglingSpansAdditionalCheckForNetwork and added corensponding functions inside of that class. I created in libcoveofds/python_validate.py new class - SelfIntersectionAdditionalCheckForNetwork and added corensponding functions inside of that class. I modified in libcoveofds/python_validate.py: ADDITIONAL_CHECK_CLASSES_FOR_NETWORK = [ SpansMustHaveValidNodesAdditionalCheckForNetwork, PhaseReferenceAdditionalCheckForNetwork, OrganisationReferenceAdditionalCheckForNetwork, IsNodeUsedInSpanAdditionalCheckForNetwork, UniqueIDsAdditionalCheckForNetwork, # New topology checks GeometryTopologyAdditionalCheckForNetwork, DanglingSpansAdditionalCheckForNetwork, SelfIntersectionAdditionalCheckForNetwork, ] I added function inside of alidate.py file named error_to_human_message function. Summary: ofdsqgisplugin/libcoveofds/python_validate.py - Add 3 new validation classes ofdsqgisplugin/validate.py - Add error message translations I tested with buton Validate; Span not touching start node is detected Span not touching end node is detected Dangling spans (no start/end reference) are detected Planned/underConstruction spans are exempt from dangling check Self-intersecting spans are detected Error messages are clear and actionable Tolerance can be configured Next steps are to add new features that we confirm in our Teams meeting: Layer Management and Ordering Node Symbology Improvements Span Symbology and Snapping Configuration Duplicate Detection (Health Check) Adress locator (lon, lat included) Info button Export to GeoPackage file Added OFDS text logo on the left side of the plugin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I implemented stricter topology validation as specified in the OFDS Improvements document that I provided to Duncan and Steve:
Rule: every span must have valid from_node and to_node Rule: span geometry should touch the corresponding nodes (within a defined tolerance) Rule: prevent “dangling” spans (unless explicitly marked as planned/open-ended) Rule: detect duplicates (by ID and/or geometry) and self-intersection I created in libcoveofds/python_validate.py new class - GeometryTopologyAdditionalCheckForNetwork and added corensponding functions inside of that class.
I created in libcoveofds/python_validate.py new class - DanglingSpansAdditionalCheckForNetwork and added corensponding functions inside of that class.
I created in libcoveofds/python_validate.py new class - SelfIntersectionAdditionalCheckForNetwork and added corensponding functions inside of that class.
I modified in libcoveofds/python_validate.py:
ADDITIONAL_CHECK_CLASSES_FOR_NETWORK = [
SpansMustHaveValidNodesAdditionalCheckForNetwork,
PhaseReferenceAdditionalCheckForNetwork,
OrganisationReferenceAdditionalCheckForNetwork,
IsNodeUsedInSpanAdditionalCheckForNetwork,
UniqueIDsAdditionalCheckForNetwork,
New topology checks
GeometryTopologyAdditionalCheckForNetwork,
DanglingSpansAdditionalCheckForNetwork,
SelfIntersectionAdditionalCheckForNetwork,
]
I added function inside of alidate.py file named error_to_human_message function.
Summary:
ofdsqgisplugin/libcoveofds/python_validate.py - Add 3 new validation classes ofdsqgisplugin/validate.py - Add error message translations I tested with buton Validate;
Span not touching start node is detected
Span not touching end node is detected
Dangling spans (no start/end reference) are detected Planned/underConstruction spans are exempt from dangling check Self-intersecting spans are detected
Error messages are clear and actionable
Tolerance can be configured
Next steps are to add new features that we confirm in our Teams meeting: Layer Management and Ordering
Node Symbology Improvements
Span Symbology and Snapping Configuration
Duplicate Detection (Health Check)
Adress locator (lon, lat included)
Info button
Export to GeoPackage file
Added OFDS text logo on the left side of the plugin