Ho dovuto eseguire il trattamento che descrivi sulla rete stradale della città tedesca (circa 200.000 abitanti). Ho ideato una procedura che ha prodotto grandi risultati: la rete stradale ha oltre 2000 porzioni di strade e circa 200 guasti di connessione e la procedura è stata in grado di correggere automaticamente il 95% dei guasti e contrassegnare i restanti come "richiedenti attenzione". Erano così pochi quelli che il montaggio manuale era conveniente.
Lasciatemi entrare nei dettagli.
Wishlist
Vogliamo costruire una procedura che, dato l'insieme M di connessioni mancanti o errate,
- rileva e corregge automaticamente un grosso sottoinsieme A di M
- rileva i posti problematici nella rete che richiedono un trattamento manuale.
Vogliamo condurre il passaggio 1. senza produrre alcun falso positivo , cioè senza introdurre connessioni inesistenti, cioè applicare la condizione "A è un sottoinsieme di M".
Vogliamo condurre il passaggio 2. in modo che tutta M sia nell'unione di A e P. Va bene avere falsi positivi qui, purché il rapporto "falso positivo / vero positivo" rimanga basso.
Algoritmo
L'input è una rete stradale R, cioè un elenco di porzioni stradali (linee spezzate) rappresentate dall'elenco dei loro vertici. (Questo è ciò che è memorizzato nei file ESRI.)
L'output è una rete stradale modificata S insieme a un elenco P di luoghi (punti) che richiedono un trattamento manuale.
-
Scegli due soglie α = 2,5 me β = 20 m
-
Sostituisci R con una rete equivalente dove le porzioni di strada possono solo attraversare un vertice e dove se due porzioni di strade hanno punti la cui distanza è minore di α allora hanno due vertici la cui distanza è minore di α. Ciò si ottiene introducendo i vertici supplementari nelle descrizioni delle porzioni di strada.
-
Passare attraverso tutti i vertici di tutte le porzioni stradali della rete stradale e creare classi di equivalenza per la relazione A "i vertici sono più vicini di α" e B "i vertici sono più vicini di β".
-
Ad ogni classe di equivalenza di A si associa un punto (ad esempio un centro di massa) e si sostituisce ogni membro della classe con quel punto. Il risultato è la rete finale S.
-
A ciascuna classe di equivalenza di B non ridotta a un punto si associa un punto (ad es. centro di massa), l'elenco di punti così ottenuti è P.