Identifizieren von FRONT LAND mit ArcGIS ModelBuilder

8

Ich arbeite in einem Rathaus. Ich muss die Vorderseite des Landes identifizieren. Hier in meinem Land nennen wir es "TESTADA" oder "FRENTE DE LOTE". Ich habe den genauen Begriff nicht auf Englisch gefunden.

Die Vorderseite eines Landes ist eine Linie in der Nähe des Eingangs zum Boden. Das heißt, ist der Eingang eines Hauses. Hier befindet sich das Eingangstor mit der Hafennummer. Um das folgende Bild unten zu veranschaulichen.

Karte vor: Vor

Karte später mit den vorderen Linien des Geländes - Wie sollte sein: nach

VIEL hat nur eine FRONT OF LAND. In den Ecken ist es die Hauptstraße. Es gibt alte Gebäude, die so bleiben, wie sie sind, weil sie historisch sind. Derzeit machen wir diese Zeilen von FRONT LAND manuell. Wir möchten einen Teil davon automatisieren. Das könnte ModelBuilder sein.

Zusamenfassend:

  • In: LANDSCHICHT, LAYER STREET, BUILDING LAYER.
  • Ausgabe: LAYER mit FRONTS OF LAND LINES.

Ein weiteres Beispiel für ein vorderes Grundstück: Der Begriff FRONT OF LAND bezieht sich auf die Vorderseite des Grundstücks. Der Eingang des Hauses ist seine Vorderseite. Geben Sie hier die Bildbeschreibung ein

ChristianAbreu
quelle
Ich vermute, Sie möchten mit dem Werkzeug "Polygon zu Linie" beginnen, um Ihre Polygone in auswählbare Segmente zu unterteilen.
Craig
Siehe auch Wie kann ich feststellen, ob sich eine Straße in Privatbesitz befindet oder nicht? , um Straßen von Gassen zu trennen.
Peter Krauss

Antworten:

2

Das würde Code erfordern, daher werde ich auf einige Richtlinien verweisen, damit Sie mit etwas beginnen und dann weitere Fragen stellen können. Die gezeigte FRONT OF LAND kann durch zwei Methoden identifiziert werden, wobei beide räumliche Beziehungen verwenden:

Methode 1) Es ist die einzige Seite eines Polygons, die kein anderes Polygon berührt. Suchen Sie die berührenden Polygone, brechen Sie das LAND-Polygon und prüfen Sie, ob die Seiten gegen die berührenden Polygone gerichtet sind, die nichts berühren.

oder

Methode 2) Es ist die Seite des Polygons, die einer Straße am nächsten liegt. Suchen Sie die Straße, die dem LAND-Polygon am nächsten liegt, brechen Sie das Polygon und suchen Sie die Seite, die der Straße am nächsten liegt.

Dies kann mit Postgis oder Shapely erfolgen, wenn Sie dem Open Source-Pfad folgen. Auf jeden Fall würde ich empfehlen, das Shapely-Handbuch zu lesen , um eine Vorstellung von den räumlichen Beziehungen zu bekommen, die getestet werden könnten. Sie sind in jeder Software meistens gleich.

Pablo
quelle
2
Was schlagen Sie für Eckgrundstücke vor?
Craig
Um die Ecken zu erkennen, würde ich vorschlagen, Methode 1 zu verwenden. Dabei wird die gesamte Ecke (die Vorderseite und die Seite) ausgewählt, mit der Sie dann das längste Segment auswählen können. (Wie in den Bildern gezeigt, haben Ecklande die Vorderseite im längsten Segment - Bearbeiten: Es gibt zwei Ausnahmen in der oberen Mitte).
Pablo
2
Dem Foto nach zu urteilen, ist das nicht immer der Fall. Ich würde eine dritte Methode vorschlagen, bei der sich das vordere Segment entlang der Seite des Pakets befindet, von der die Adresse abgeleitet wird. Dies ist natürlich nur hilfreich, wenn das Los eine Adresse hat und viele leere Lose nicht.
Craig
+1 Das ist eine gute Idee! Vielleicht eine Mischung aus Methode 2 + Adresse ... Ich würde Ihnen empfehlen, das auf eine Antwort zu schreiben.
Pablo
1

Verfeinern Sie die gute Antwort von @ Pablo mit Definitionen (unten) und fügen Sie für jede Methode eine Checkliste hinzu, um deren Verwendung einzuschränken. Definitionen:

Block Schicht eine SQL - Tabelle mit Polygonen ist , die darstellen , Stadtblocks Grenzen, die ohne oder Gehwege , aber private Konservieren (siehe Front-1 ) oder nicht-adressierbar Gassen (siehe Front-2 ) in den Block.

Lot Schicht ist eine SQL - Tabelle mit Polygonen darstellen Grundstücke Grenzen.

Straßenschicht ist eine SQL - Tabelle mit Linien , die Straßen ... Oder in einem „Fluss Land“ auch Flüsse (und eine Eisenbahn kann eine „Front“ sein?).

Front-1 : das @ Pablos Methoden sind über ein allgemeines Konzept der Front , wo einige viel mehr als „eine Front über eine Straße“, weil an der Ecke sind (zwei oder mehr Front-Segmente über alle seine umliegenden Straßen).

Front-2 : "Front" bezieht sich auf die Straße, die in der offiziellen Adresse (oder Korrespondenzadresse) des Loses angegeben ist. Sie haben alle Lose (auch an der Ecke) nur ein Front-Street-Segment. PS: Wenn Ihr Adressensystem und Ihre Blockschicht viele "horizontale Eigentumswohnungen " und deren Eigentumswohnungsadressen akzeptieren , müssen die "privaten Straßen" wie gewohnt angezeigt werden .

Die Frageillustration von @ ChristianAbreu zeigt das Front-2- Konzept (!) , Nicht das allgemeine.

Technischer Hinweis: Sie können Python mit PostGIS oder einem anderen OGC-kompatiblen Tool (für räumliches SQL) verbinden, um die Checklisten formal auszudrücken.


Checkliste für Methode 1 - Seite eines Polygons, die kein anderes Polygon berührt

Diese Methode hat einen topologischen Ansatz und gilt nur für Blöcke, bei denen alle Losbereiche den Blockbereich bilden. Um diese Methode verwenden zu können, benötigen Sie eine Blockebene .

Formell ausdrücken: Überprüfen Sie, ob blkarea~=sum_lotareafür jeden Block,

SELECT ST_Area(geom) INTO blkarea FROM  block WHERE gid=each1; 
SELECT SUM(ST_Area(geom)) INTO sum_lotarea FROM lot WHERE gid_block=each1;

Oder wenn die Goemetries nicht genau sind oder wenn die Blöcke mit Gehwegen versehen sind, verwenden Sie das geringste w, um sicherzustellen, ST_Buffer(block.geom,-w)dass ST_Within(lot.geom lot,ST_Buffer(block.geom,-w))alle Lose vorhanden sind.

HINWEIS: Überprüfen Sie auch

  • Wenn sich alle Lose innerhalb eines Blocks befinden, ST_Within(lot.geom,block.geom)für alle Lose und zugehörigen Blöcke.

  • Wenn für alle nicht disjunkten Lose keine überlappenden Bereiche vorhanden sind. not(ST_Overlaps(a,b))oder dieser Schnittbereich hat keine Bedeutung (das heißt 2*ST_Area(ST_Intersection(a,b))/(ST_Area(a)+ST_Area(b))<0.01).

Checkliste für Methode 2 - die Seite des Polygons, die einer Straße am nächsten liegt

Diese Methode hat einen geometrischen Ansatz, der auf einem minimalen euklidischen Abstand basiert .

Überprüfen Sie, ob die Straßenschicht nur "öffentliche Straßen" hat , da Sie "öffentliche Straßen" (die die offizielle Adresse eines Grundstücks ausdrücken können) von "Gassen" (können sich innerhalb des Grundstücks oder eines "Eigentumswohnungsblocks" trennen müssen ").

Überprüfen Sie dann visuell, ob alle "visuellen Blöcke" von Straßen umgeben sind. Wenn Ihre Straßenebene unvollständig ist, ist die Methode für diese Blöcke nicht gültig.

Schlussfolgerungen: Regeln für die Auswahl von Methoden

Für die Front-1- Definition:

A) Wenn Sie gute Straßendaten haben, verwenden Sie Methode 2 ;

B) Wenn Sie eine Blockschicht und eine konsistente Chargenschicht haben, verwenden Sie Methode 1

C) Wenn Sie keine guten Daten haben, teilen Sie Ihre Geodaten in Teile auf, in denen Sie die eine oder andere Methode anwenden können. PS: Auch ohne die Blockschicht können Sie benachbarte Grundstücke oder durch eine gute Antwort auf diese Frage verbinden .

Für die Front-2- Definition: Sie benötigen gute Straßendaten, da für die Front-2- Definition der Straßenname (der Losadresse) erforderlich ist. Verwenden Sie Methode 2 und löschen Sie vordere Segmente, die nicht denselben Straßennamen wie die Losadresse haben.

Peter Krauss
quelle