Auf der Suche nach einem Algorithmus zum Wachsen der Region


8

Ich arbeite mit einem Rastersatz, der Landwerte darstellt, und möchte automatisch Polygone mit zufälliger Form, aber mit einer bestimmten Größe und / oder einem bestimmten Landwert erstellen, wobei ein Schwerpunkt jedes Polygons angegeben wird. Der Schwerpunktpunkt fungiert als anfängliche Rasterzelle (ein Pixel, das als Startzelle bezeichnet wird), die zu diesem bestimmten Polygon gehört, und dann fügt ein Algorithmus zum Wachsen der Region Pixel um ein Schwerpunktpixel hinzu, bis die Größe und / oder der Landwert eingeschränkt sind eines Polygons wird erfüllt.

Hat jemand eine Idee zu einem bestehenden Algorithmus für das Wachstum von Regionen? oder zumindest mit welcher Klasse von ArcObjects oder Interfaces kann ich arbeiten, um den Wert jedes Pixels zu lesen, ein neues Polygon zu erstellen, indem ich ihm neue Pixel hinzufüge?

Ich hoffe, dass das oben Gesagte Sinn macht und mir jemand helfen kann.

Bearbeiten

Grundsätzlich beabsichtige ich, mithilfe eines genetischen Algorithmus (GA) automatisch Polygone mit regelmäßigen Formen und einer Reihe von Einschränkungen wie Größe, Landwert usw. zu erstellen. Aber zuerst muss ich eine Reihe von zufälligen Lösungen erstellen, um die GA zu versorgen. So zum Beispiel auf einem Landblock, der von Straßen umschlossen ist, habe ich bereits 4 Schwerpunktpunkte gesagt. Jeder Schwerpunktpunkt repräsentiert die ungefähre Position jedes neuen Grundstücks. Zusätzlich ist jedem Schwerpunkt Attribute jedes Pakets zugeordnet, dh Größe und Grundstückswert. Daher möchte ich mit jedem Schwerpunkt als Startpunkt des Algorithmus zum Wachsen der Region beginnen, um eine zufällige Form für jedes Paket basierend auf jedem Schwerpunkt zu erstellen.

Ich hoffe, dass das oben Gesagte Sinn macht. Ich freue mich darauf, wie ich diesen Algorithmus zum Wachsen der Region erstellen kann oder ob es bereits einen in VBA und ArcObjects gibt.


Können Sie etwas über den Zweck der Erstellung zufälliger Polygone sagen? Immerhin gibt es viele, viele Arten von Zufälligkeiten. Nicht wenige von ihnen (z. B. einfache Methoden zur Herstellung zufälliger fraktaler Polygone) sind für Sie wahrscheinlich nicht von Interesse. Wenn Sie versuchen, etwas Realistisches zu simulieren, muss das Verfahren Aspekte der Phänomene
berücksichtigen,

Wenn Sie einer Region eine Zelle hinzufügen, möchten Sie dann die kostengünstigste benachbarte Zelle oder die Zelle hinzufügen, die dem Polygonschwerpunkt am nächsten liegt?
Kirk Kuykendall

Es tut mir leid für die Verzögerung. Ich habe diesen Kommentar nicht bemerkt. Jedes Mal, wenn ich eine benachbarte Zelle in der aktuellen Region hinzufügen möchte, bis einige Einschränkungen erfüllt sind.
Demetris

Antworten:


1

Eine Kostenentfernungsanalyse ist ein Ansatz: Klassifizieren Sie das Raster basierend auf dem Landwert ab dem Startpunkt. Wenn Sie dieses Ergebnis als Schwellenwert festlegen, erhalten Sie den kumulierten Kostenbereich als Raster. Übersetzen Sie einfach dieses klassifizierte Raster in ein Polygon, und Sie sollten Ihr Ergebnis erhalten. Abhängig von den Besonderheiten Ihrer Arbeit können Sie möglicherweise die Kostenzuordnungsfunktion mit Ihren Startpositionen und Ihrem Landwert-Raster verwenden, um die gewünschte Ausgabe zu erzielen.


Die Idee ist schön, weil sie das Polygon tatsächlich mit etwas Realem (Landwert) in Beziehung setzt. Aber wie führt die "Schwellenwertbildung dieses Ergebnisses" (was vermutlich bedeutet, dass alle Punkte mit Kosten ausgewählt werden, die unter einem festen Wert liegen) zu gezielten kumulierten Kosten? Darüber hinaus ist die Prozedur nicht "zufällig", aber das ist kein Problem: Man könnte Aspekte des Kostenrasters vorher randomisieren, so dass die Ausgabe etwas zufällig wäre.
whuber


0

Sie können die gdal_fillnodata ausprobieren .


Ihre Antwort wurde in der Überprüfungswarteschlange aufgrund ihrer Länge und ihres Inhalts als minderwertig gekennzeichnet. Wenn Sie vorschlagen, dass der Fragesteller dieser Frage nach alternativer Software sucht, empfehle ich Ihnen, Ihre Antwort zu bearbeiten, um weitere Details darüber zu erhalten, warum das, was er versucht, nicht funktioniert und warum das, was Sie vorschlagen, funktioniert.
PolyGeo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.