Ich habe ein Straßennetz (lila), Punktdateien (grün) und einen Anfangspunkt (gelb).
Ich möchte die Punktedateien basierend auf dem Straßennetz verfolgen. Stellen Sie sich die Punkte als Telefonmasten vor, aber ich möchte eine Karte mit Telefonleitungen (Line Shapefile). Es gibt ein Nummerierungsschema für die "Telefonmasten", aber es ist nicht großartig, und in diesem Fall würde ich genauso gut annehmen, dass sie nicht nummeriert sind.
Hat jemand eine Lösung? Eine, die ziemlich gut aussieht, besteht darin, nur die Punkte zu puffern und dann das Straßennetz aus den Puffern zu entfernen. Aber ich möchte etwas vollständigeres. Es muss automatisiert werden, da es 12.000 der "Telefonmasten" gibt.
arcgis-desktop
telecom
Thad
quelle
quelle
Antworten:
Es gibt viele Möglichkeiten, damit umzugehen, aber einige sind allgemein und effektiv. Um dies zu verstehen, führen wir einige der Probleme auf, die möglicherweise behandelt werden müssen:
Es kann Lücken zwischen den Polen geben, die so groß sind, dass der Algorithmus die Lücken als tatsächliche Unterbrechungen im Übertragungssystem betrachtet.
Es kann einige kurze Straßensegmente geben, die für die Verbindung der Straßen zu einem Netz von entscheidender Bedeutung sind und dennoch keine Masten in der Nähe haben. Diese Segmente würden nicht durch die Nähe zu Polen ausgewählt, sondern sind ein notwendiger Bestandteil der Lösung.
Es kann Masten geben, die vom zentralen Punkt aus nicht über die Straße erreichbar sind. Diese Pole können Teile anderer Übertragungsnetze sein, die von anderen zentralen Punkten stammen.
Ich gehe auch davon aus, dass es, da Sie bereits ein Polyliniennetz (die Straßen) haben, vorteilhaft wäre, es auszunutzen, anstatt die Polpunkte mit einer völlig neuen Polylinie zu verbinden, die wahrscheinlich nicht sehr gut parallel zu den Straßen verläuft.
Diese Überlegungen legen nahe, dass die Inhaltsstoffe einer guten Lösung einige wichtige Schritte umfassen würden:
Berechnen Sie die Straßenentfernungen vom Mittelpunkt zu allen Polen.
Identifizieren Sie die Pole mit lokal maximalen Entfernungen entlang ihres jeweiligen Straßensegments : Das heißt, keiner ihrer Nachbarn entlang desselben Segments hat größere Entfernungen.
Bilden Sie die kürzesten Wege zurück von diesen lokalen Maxima zum Mittelpunkt.
Die Vereinigung dieser kürzesten Wege würde das Übertragungsnetz aufspüren. (Schritt 2 ist zwar nicht wirklich notwendig, würde jedoch die in Schritt 3 erforderliche Berechnung erheblich reduzieren.)
Die Schritte 1 und 3 können mithilfe einer Netzwerkdarstellung (in Network Analyst) oder einer Rasterdarstellung (in Spatial Analyst mithilfe einer CostDistance- oder FlowAccumulation-Berechnung) ausgeführt werden. Schritt 2 ist eine einfache Datenbankzusammenfassung: Nach Schritt 1 hat jeder Pol sein Straßensegment und seine Entfernung als Attribute. Finden Sie die maximale Entfernung nach Straßensegment und wählen Sie die Pole aus, die diese maximalen Entfernungen erreichen.
Es gibt einige mögliche Problemsituationen:
Einige Masten befinden sich möglicherweise nicht in der Nähe von Straßen. Die Problemstellung enthält nichts, was uns sagt, was dagegen zu tun ist. Sie können automatisch mit Rasterberechnungen behandelt werden (ein geeignetes Kostenraster weist Nicht-Straßenzellen hohe Impedanzen zu, jedoch keine unendlichen Impedanzen, sodass isolierte Pole mit den nächstgelegenen Straßen verbunden werden können, aber leider nicht miteinander). Zumindest können Sie nach Erhalt der Lösung in Schritt 3 alle Pole auswählen, die sich nicht in diesem Netzwerk befinden, und überlegen, wie sie behandelt werden sollen (möglicherweise durch manuelles Erstellen von Verbindungen für sie oder möglicherweise mit einer euklidischen Minimum-Spanning-Tree-Lösung).
Wenn einige Straßensegmente Schleifen bilden, sollten Sie Schritt 2 überspringen, da sonst Teile dieser Schleifen verloren gehen können.
Die Straßenpolylinien bilden möglicherweise kein verbundenes Netzwerk. Es kann winzige Lücken zwischen Straßensegmenten geben (manchmal nur Millimeter groß), die ein Netzwerk aufteilen, das visuell verbunden erscheint. Dies ist ein Problem mit der Datenqualität, das jede Lösung plagen würde, mit Ausnahme einiger rasterbasierter Probleme.
An einer Stelle erwähnte ich nebenbei FlowAccumulation . Dies mag die Menschen überraschen: Was hat dieses Problem mit Bächen und Wassereinzugsgebieten zu tun? Starren Sie eine Weile auf das Bild. Stellen Sie sich den Ursprungspunkt als Tiefpunkt in einer Landschaft und die Straßen mit Telefonmasten als Spuren von Bächen vor, die zu diesem Tiefpunkt fließen. Wenn wir eine Oberfläche schaffen können, für die die Straßen wirklich sinddie Bäche, dann können wir ein wenig "Regen" an der Stelle jedes Pols fallen lassen und bergab fließen. Die Punkte, die nass werden, sind die Lösung, die wir suchen: Sie verbinden die Pole effizient zu einem Netzwerk, das den Straßen folgt. Eine geeignete CostDistance-Berechnung - mit einer niedrigen Impedanz ungleich Null entlang der Straßen und einer extrem hohen, aber nicht unendlichen Impedanz außerhalb der Straßen - erzeugt genau diese Art von Oberfläche. Eine andere Möglichkeit, diese Oberfläche zu erstellen, ist das euklidische Entfernungsraster für die Straßen. Das ist perfekt, außer dass die Straßen eben sind. Sie müssen gekippt werden; Fügen Sie dazu dem euklidischen Entfernungsraster ein extrem kleines Vielfaches der Entfernungen entlang der Straßen hinzu. (Die Straßenentfernung erfordert immer noch eine CostDistance-Berechnung, die teuer ist, diesmal jedoch nur für Straßenzellen durchgeführt werden muss. eher als alle Gitterzellen, die es um Größenordnungen beschleunigen. Dies ermöglicht es uns, ein extrem hochauflösendes Gitter zu verwenden, wenn wir möchten, wodurch mögliche Diskretisierungsfehler bei groben Gittern vermieden werden.)
quelle
Grundsätzlich würde ich nach Whubers Ansatz Folgendes versuchen:
quelle
Es klingt für mich so, als ob Sie wirklich nach einem geometrischen Netzwerk in einer Geodatabase suchen .
Was wäre, wenn Sie ein geometrisches Netzwerk erstellen würden, in dem Ihre Straßen als "Fernleitungen" dienen würden, und dann einfach "Zuleitungen" hinzufügen würden, die senkrecht von Ihren Straßen zu Ihren Punkten verlaufen. Dann sollten Sie in der Lage sein, " die Flussrichtung festzulegen und anzuzeigen, Analyseeinstellungen zu ändern, Flags und Barrieren zu Analysen hinzuzufügen und verschiedene Ablaufverfolgungsaufgaben auszuführen " (siehe Abschnitt "Utility Network Analyst-Symbolleiste"). Weitere Informationen zu anderen Analysetypen, die Sie mit einem geometrischen Netzwerk durchführen können, finden Sie unter " Informationen zur Verfolgung in geometrischen Netzwerken ".
Dies würde ein wenig Setup erfordern, aber durch Erstellen eines Automatisierungsprozesses zum Verbinden der Punkte mit dem Netzwerk sollte die Aktualisierung relativ schnell und einfach sein, wenn neue Punkte zum Netzwerk hinzugefügt werden.
HINWEIS : " Obwohl geometrische Netzwerke in ArcInfo und ArcEditor sowohl erstellt als auch bearbeitet werden können, sind sie in ArcView schreibgeschützt ." ( Aus "Erstellen eines geometrischen Netzwerks aus vorhandenen einfachen Feature-Classes" )
quelle
Als Vorspeise (nicht die Komplettlösung).
Wir müssen wahrscheinlich das Datenformat, die Version und die Lizenzstufe Ihres Arcgis kennen.
Was ich sehe, ist, das Straßennetz als lineares Referenzierungssystem zu nutzen und dann die Pole in der richtigen Reihenfolge neu zu nummerieren .
Dann sollten Sie in der Lage sein, eines von mehreren Werkzeugen zu verwenden (ich bin sicher, dass die Antwort eines anderen dies klarer definiert), um Polylinien aus den Polen zu erstellen.
Hier ist das Arcgis 10- Tutorial für die lineare Referenzierung
quelle