J'ai un ensemble de données de routes dans une ville stocké dans une base de données compatible PostGIS. Je voudrais identifier et supprimer toute caractéristique qui n'est pas connectée au reste du réseau routier. Ce comportement est courant sur les bords des réseaux, où les données ont été écrêtées.
J'ai trouvé d'autres réponses sur le GIS SE qui font cela, mais elles semblent toutes utiliser ArcGIS, et je voudrais résoudre le problème en utilisant PostGIS, QGIS ou un script Python.
Mes ensembles de données peuvent inclure plus d'un million d'entités, donc les performances sont une préoccupation.
Vous pouvez facilement utiliser PostGIS pour sélectionner des routes qui ne croisent aucune autre route:
la source
Vous pouvez utiliser ce script QGIS Python pour détecter les lignes qui ne sont connectées à rien:
Notez que cela ne fonctionnera pas sur les lignes à plusieurs parties. Je ne pense pas que cela pourrait être fait beaucoup plus rapidement ...
la source
Vous pouvez d'abord supprimer les routes faciles avec la méthode de @ dbaston, puis utiliser pgRouting pour trouver les cas les plus compliqués, comme lorsque vous avez un réseau de routes qui n'est pas connecté à un autre réseau.
Choisissez un segment de route qui fait définitivement partie du réseau principal, puis essayez de trouver un itinéraire de chaque autre segment à celui-ci. Si aucun itinéraire n'existe, supprimez le segment.
la source