Skip to content

Add network analysis validation algorithms (Request in QGIS) #10654

@qgis-bot

Description

@qgis-bot

Request for documentation

From pull request qgis/QGIS#64505
Author: @nyalldawson
QGIS version: 4.0

Add network analysis validation algorithms

PR Description:

Adds two new algorithms useful for validating networks:

Validate network:

This algorithm analyzes a network vector layer to identify data and topology errors that may affect network analysis tools (like shortest path).

Optional checks include:

  1. Validating the 'Direction' field to ensure all direction field values in the input layer match the configured forward/backward/both values. Errors will be reported if the direction field value is non-null and does not match one of the configured values.
  2. Checking node-to-node separation. This check identifies nodes from the network graph that are closer to other nodes than the specified tolerance distance. This often indicates missed snaps or short segments in the input layer. In the case that a node violates this condition with multiple other nodes, only the closest violation will be reported.
  3. Checking node-to-segment separation: This check identifies nodes that are closer to a line segment (e.g. a graph edge) than the specified tolerance distance, without being connected to it. In the case that a node violates this condition with multiple other edges, only the closest violation will be reported.

Two layers are output by this algorithm:

  1. An output containing features from the original network layer which failed the direction validation checks.
  2. An output representing the problematic node locations with a 'error' field explaining the error. This is a line layer, where the output features join the problematic node to the node or segment which failed the tolerance checks.

Extract network endpoints

This algorithm extracts the end points (nodes) from a network line layer.

Two definitions are available for identifying end points:

  1. Nodes with only all incoming or all outgoing edges: Identifies 'Source' or 'Sink' nodes based on the direction of flow. These are nodes where flow can start (only outgoing) or stop (only incoming).
  2. Nodes connected to a single edge: Identifies topological 'dead-ends' or 'dangles', regardless of directionality. This checks if the node is connected to only one other distinct node.

Sponsored by City of Canning

Commits tagged with [need-docs] or [FEATURE]

"[feature] Add 'Validate network' algorithm\n\nThis algorithm analyzes a network vector layer to identify data and\ntopology errors that may affect network analysis tools (like shortest path).\n\nOptional checks include:\n\n1. Validating the 'Direction' field to ensure all direction field values\n in the input layer match the configured forward/backward/both values.\n Errors will be reported if the direction field value is non-null and\n does not match one of the configured values.\n2. Checking node-to-node separation. This check identifies nodes from the\n network graph that are closer to other nodes than the specified\n tolerance distance. This often indicates missed snaps or short segments\n in the input layer. In the case that a node violates this condition\n with multiple other nodes, only the closest violation will be reported.\n3. Checking node-to-segment separation: This check identifies nodes that\n are closer to a line segment (e.g. a graph edge) than the specified\n tolerance distance, without being connected to it. In the case that a\n node violates this condition with multiple other edges, only the\n closest violation will be reported.\n\nTwo layers are output by this algorithm:\n\n1. An output containing features from the original network layer which\n failed the direction validation checks.\n2. An output representing the problematic node locations with a 'error'\n field explaining the error. This is a line layer, where the output\n features join the problematic node to the node or segment which failed\n the tolerance checks." "[feature] Add extract network endpoints algorithm\n\nThis algorithm extracts the end points (nodes) from a network line layer.\n\nTwo definitions are available for identifying end points:\n\n1. Nodes with only all incoming or all outgoing edges: Identifies 'Source'\n or 'Sink' nodes based on the direction of flow. These are nodes where flow\n can start (only outgoing) or stop (only incoming).\n2. Nodes connected to a single edge: Identifies topological 'dead-ends' or\n 'dangles', regardless of directionality. This checks if the node is\n connected to only one other distinct node."

Metadata

Metadata

Assignees

Labels

Processing Alg(Features of) An algorithm. Use the Help button in the application to find the page.

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions