3

I’ve run into a bit of a pickle. I’m attempting to isolate “islands” within a large OSM-derived network. I’m interested in highlighting areas where the network cannot connect to. This of course includes actual, physical islands, but it also includes the interest of my research, which is sections of the network that haven’t been properly created and are not connected to the rest of the network.

I’ve been attempting to do this using QGIS’s QNEAT3 plugin. I’ve been creating interpolations of network costs from a point, and attempting to use that to highlight sections that are not being included in the network. This isn't working however, as network cost calculations include areas from the network, and don’t really highlight segments that are completely disconnected from the network. See the following screenshot of a section of a network connected, and the same section cut out to be a “network island.” The contour lines represent the cost of the network, and as you can see, the island section is not included in my network - which is exactly what I want!

enter image description here

What would the easiest way of highlighting sections of a network that do not connect to the rest of the network be? Is there a way of doing it using QNEAT3?

2 Answers 2

1

A handy plugin called 'Disconnected Islands' can be found in the QGIS plugin repository.

1

The basic idea is to create the service area from a centrally located point on the network. Distance should be high enough to reach the outmost point on the network. The result will return the whole network, except those parts that are not connected.

To to so, you can use Menu Processing > Toolbox > Service Area (From Point). Define a point somewhere in the middle of the network and set a distance large enough to reach the whole network.

The lines not contained in the output (service area) are those not connected to the network. For areas see below.

Black lines: network; red lines: service area: enter image description here

Variant

Use QNEAT3 plugin with Iso-Area as Pointcloud (from Point) to generate a point layer, containing all network nodes reachable from the start point.

Nodes reachable in the network: enter image description here

Creating areas

If you want to get something like the areas "covered" by the network (kind of a catchment area), you could model this using Voronoi polygons:

  1. Extract the nodes from the network using Menu Vector > Geometry Tools > Extract vertices

  2. Crete Voronoi polygons from these points using Menu Vector > Geometry Tools > Voronoi polygons

  3. Select those polygons on the output the intersect a node reachable inside the network - use the pointcloud output as descibed above. Use Select by location, use the Voronoi layer for Select features from, check intersect as geometric predicate and select the Pointclould output for By comparing to the features from.

Result: selected (yellow) areas belonging to a node reachable inside the network. In blue: islands. enter image description here

Variant

For more accurate results, densify the network, extract the vertices and use these points to create the Voronoi polygons. Then intersect the polygons with the service area (first solution above) to see the islands.

Voronoi polygons based on the white, densified vertices. Orange: Voronoi polygons that do not intersect the service area (red lines) are the islands: enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.