Suchen Sie mithilfe von ArcGIS Desktop nach Paketpolygon-Features mit Front auf mehreren Straßen?

8

Die Abteilung für öffentliche Arbeiten möchte wissen, wie viele Immobilien in der Stadt vorne und hinten einen Bürgersteig haben. Um dies zu erreichen, suche ich nach einer Methode, um Pakete mit Front auf mehr als einer Straße zu finden. Ich arbeite in ArcInfo 9.3.1 (Datei-Geodatabase). Ich suche nach einer Lösung, bei der keine Skripte erstellt oder andere Tools heruntergeladen werden müssen. Straßenmittellinien und Paketpolygone sind verfügbar. Es gibt keine Gehwegschicht.

Mit einigen Ideen aus diesem Forum habe ich einen Prozess entwickelt und getestet. Einige der Ergebnisse sind rätselhaft (Eckpartien können in den Endergebnissen enthalten sein oder nicht - ich glaube, DPW möchte nicht, dass Eckpartien enthalten sind), und ich mache mir Sorgen, sie auf die vollen 42000 Pakete zu skalieren (ich habe 1223 Pakete getestet ). Gibt es Schritte, die dieser Methode hinzugefügt werden müssen, um die Ergebnisse zu verbessern? Gibt es eine andere Möglichkeit, dasselbe zu erreichen, das durch den Modellbauer automatisiert werden könnte?

  • Führen Sie das Werkzeug "Feature to Line" für die Feature-Class "Paketpolygone" aus (zwei Linien werden für Grenzen erstellt, die von Polygonen gemeinsam genutzt werden, und Linien behalten die Paket-ID bei).
  • Erstellen Sie mit dieser neu erstellten Paketlinien-Feature-Class eine Geodatabase-Topologie mit der Regel "darf keine Überlappungen aufweisen" und überprüfen Sie dann die Topologie (innere Linien sind fehlerhaft).
  • Fügen Sie in ArcMap Topologie und Feature-Class hinzu, öffnen Sie den Fehlerinspektor und suchen Sie nach Fehlern> wählen Sie alle Fehler aus> klicken Sie mit der rechten Maustaste> wählen Sie Features aus> löschen (um innere Linien zu löschen)
  • Führen Sie die Häufigkeit für verbleibende Features in der Paketlinien-Feature-Class mit der Paket-ID als Frequenzfeld aus. Wählen Sie Datensätze in der Tabelle mit der Häufigkeit> 1 aus und exportieren Sie sie in eine neue Tabelle
  • Verknüpfungshäufigkeit> 1 Tabelle zu Paketpolygonen basierend auf der Paket-ID, wobei nur übereinstimmende Datensätze beibehalten werden - Verknüpfungsergebnisse exportieren
cwb
quelle
Haben / haben Sie Zugriff auf die COGO-Erweiterung? webhelp.esri.com/arcgisdesktop/9.3/…
Mapperz
Ich kann die COGO-Symbolleiste in ArcMap hinzufügen. Ich habe es nie benutzt. COGO ist nicht unter tools> extensions aufgeführt.
CWB

Antworten:

8
  1. Wenn Ihr Straßennetz durch Segmente unterteilt ist, lösen Sie die Puffer basierend auf dem Straßennamen oder einem gemeinsamen Attribut auf, damit einzelne Straßensegmente im nächsten Schritt nicht als zwei separate Straßen gelten.

  2. Puffern Sie Ihre Straßenmittellinien um einen Standardbetrag - mehr als die Hälfte der typischen REIHENBREITE, aber nicht so groß, dass sie Pakete überlappen, die nicht vorne liegen. Möglicherweise möchten Sie verschiedene Puffer für verschiedene Straßenklassen auswählen. Wenn Sie puffern, führen Sie die Polygone nicht zusammen.

  3. Verbinden Sie die Pakete räumlich mit den Straßenpuffern und wählen Sie "eins zu viele". Das Feld "Anzahl" in den Ergebnissen sollte es Ihnen ermöglichen, alle Pakete mit zwei Fronten zu identifizieren.

Jetzt haben Sie eine Tabelle mit Zeilen für jede Überlappung zwischen einem Paket und einer Straße. Sie können dies leicht zusammenfassen, um mithilfe von GIS oder einer Datenbank alle Pakete zu finden, die zwei oder mehr Straßen überlappen. Das Eliminieren von Eckpartien wird jedoch schwieriger. Hier ist eine allgemeine Methode:

  1. Richten Sie die Topologie für die Pufferschicht mit der Regel "darf sich nicht schneiden" ein.

  2. Exportieren Sie alle Fehler in eine neue Feature-Class von Schnittpunkten.

  3. Verbinden Sie die Schnittpunkte räumlich mit der Pufferschicht und wählen Sie "eins zu viele".

Zu diesem Zeitpunkt haben Sie zwei Tabellen: eine mit allen Fronten und eine mit allen Kreuzungen zwischen Straßen. Es wird nicht einfach sein, aber Sie können eine SQL-Abfrage schreiben, die alle Pakete mit zwei Fronten auswählt, bei denen sich diese Fronten nicht überschneiden. Das Ergebnis wäre die Menge aller Parzellen mit mehreren Fronten, die sich nicht schneiden.

Ein Vorteil dieser Methode besteht darin, dass keine Pakete mit Kanten ausgewählt werden, die sich nicht auf Straßen befinden, z. B. wenn ein Paket an eine Gasse angrenzt, ein Wasserspiel, eine Eisenbahnreihe usw. Ein Nachteil ist, dass die Pufferung nicht erfolgt perfekt, und Sie müssen es immer noch visuell auf Fehler überprüfen.

Ich bin mir nicht sicher, wie ich SQL schreiben soll - vielleicht kann sich jemand anderes darauf einlassen.

Gedanken in SQL bearbeiten :

Es wäre ziemlich einfach, Pakete mit zwei Fronten wie unten zu lösen. Dann müssen Sie möglicherweise Pakete mit mehr als zwei Fronten manuell betrachten, aber hoffentlich gibt es nur wenige, und die meisten sind sowieso Eckgrundstücke.

Dies funktioniert möglicherweise für die Auswahl von Nicht-Eck-Paketen mit zwei Fronten:

select ParcelID from parcels
where parcelID not in (
    ((select Parcels1.parcelID, intersections.intersectionID from
     intersections left join
        (Select first(RoadID) as Road1, last(RoadID) as Road2, count(*) as frontages, ParcelID
        from Parcels
        where count(*) = 2
        group by ParcelID) as Parcels1
    on intersections.RoadID = Parcels1.Road1) as int1
inner join
    (select Parcels2.parcelID, intersections.intersectionID from
    intersections left join
        (Select first(RoadID) as Road1, last(RoadID) as Road2, count(*) as frontages, ParcelID
        from Parcels
        where count(*) = 2
        group by ParcelID) as Parcels2
    on intersections.RoadID = Parcels2.Road2) as int2
on int1.intersectionID on int2.intersectionID))
Patrick
quelle
1
+1 Sehr kreative Lösung: gute Verwendung der Pufferung. Eine Vereinigung der Pakete und des Straßenpuffers würde ebenfalls den Trick tun.
whuber
Ich finde es gut, dass die Puffermethode die Auswahl von Paketen in Gassen oder anderen Nicht-Straßen-Reihen vermeidet. Mehr Hilfe bei den Kreuzungen wäre jedoch großartig. Die Topologie zeigt die Schnittpunkte als Fehler an, aber wie werden die Fehler exportiert? Durch Auswahl der Merkmale, die die Fehler verursachen, wird der Puffer und nicht der Schnittpunkt zurückgegeben. Gibt es eine Möglichkeit, Schnittpunkte zu bestimmen, ohne Code zu verwenden oder neue Tools herunterzuladen?
CWB
Oh, sorry - ich habe vergessen, dass ich ein Skript verwendet habe, als ich zuvor Topologiefehler exportiert habe. Nur als Referenz, das Werkzeug dafür ist hier .
Patrick
1
Der Vorschlag von @ whuber gibt mir eine Idee, dies zu lösen, ohne eine lange SQL-Anweisung zu verwenden. Schneiden Sie die Puffer und Pakete einschließlich aller Attribute. Die resultierende Feature-Class sollte die Attribute enthalten, die Sie benötigen, um zu bestimmen, welche Polygone Schnittpunkte darstellen. Sobald Sie diesen Satz von Schnittpunkten haben, können Sie einfach die Parzellen, die sie schneiden, aus Ihrem Satz aller Parzellen entfernen.
Patrick
Wenn Sie diese Methode verwenden, führen Sie die räumliche Verknüpfung in Schritt 3 als "Eins zu Eins" durch. Auf diese Weise können Sie die Anzahl der Fronten für jedes Paket zählen, sodass Sie nur die Pakete mit mindestens zwei Fronten auswählen können.
Patrick
3

Ich konnte Ergebnisse für öffentliche Arbeiten liefern, damit die Mitarbeiter sie nach ihren Kriterien überprüfen können. Hier ist ein Überblick über mein letztes Verfahren.

  1. Trennen Sie die Straßenmittellinien nach Straßenklassen in neue Funktionsklassen (US & State Highway, Hauptstraße / Stadtstraße, Privatstraße / Auffahrt, Interstate, Rampe, Pfad, Friedhof ignorieren).

  2. Erstellen Sie einen Puffer für jede Straßenklassen-Feature-Class: Endtyp FLAT, Auflösungstyp LIST im Straßennamen-ID-Feld, Puffergröße hängt von der Straßenklasse ab

  3. Führen Sie die Puffer-Feature-Classes zusammen

  4. Schneiden Sie die Feature-Class für den zusammengeführten Puffer mit Paketpolygonen

  5. Führen Sie das Frequenz-Tool für die Feature-Class Intersect mit dem Feld Frequenzfeld = Paket-ID aus

  6. Exportieren Sie eine Auswahl aus der Frequenztabelle basierend auf dem Frequenzfeld (ignorieren Sie Frequenz = 1, wählen Sie Frequenz = 2, Frequenz = 3, Frequenz = 4, Frequenz = 5+).

  7. Verknüpfen Sie jede Häufigkeitstabelle mit Paketpolygonen im Feld "Paket-ID". Behalten Sie nur übereinstimmende Datensätze bei und exportieren Sie die verknüpfte Feature-Class

  8. Überprüfen Sie jede exportierte Feature-Class. Achten Sie auf Bereiche, in denen der Puffer keine Pakete wie Sackgassen abdeckt

Frequenz 5+ umfasst Eckgrundstücke mit zusätzlicher Rückfassade oder ungeraden Formen, große Grundstücke (Golfplatz) oder Eckgrundstücke mit Pufferartefakten, Eckgrundstücke mit zwei Ecken, Parzellen mit durchlaufenden Straßen

Frequenz 4 wird Eckgrundstücke sein

Frequenz 3 umfasst an Eckgrundstücke angrenzende Parzellen, große mehrteilige Parzellen, die nach Straßen aufgeteilt sind, Artefakte aus dem Straßenpuffer, Parzellen mit 3 Zufahrtsstraßen

Frequenz 2 umfasst Pakete mit Front auf zwei Straßen, aber achten Sie auf Eckpakete, bei denen die Eckpaketgrenze zu weit vom Puffer entfernt ist, um sie zu kreuzen, Straße innerhalb eines Pakets, 2 Eingänge zum Paket auf derselben Straße, Straße ändert den Namen vor einem Paket, zwischenstaatlich Pakete

cwb
quelle