Skip to content

Stricter topology validation and added new features#87

Open
vukovicvl wants to merge 1 commit intoOpen-Telecoms-Data:mainfrom
vukovicvl:vukovicvl-new-features
Open

Stricter topology validation and added new features#87
vukovicvl wants to merge 1 commit intoOpen-Telecoms-Data:mainfrom
vukovicvl:vukovicvl-new-features

Conversation

@vukovicvl
Copy link
Copy Markdown

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

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
@vukovicvl vukovicvl changed the title Stricter tapology and added new features Stricter topology validation and added new features Feb 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant