Ich möchte MST auf einigen Vektoren mit Geometrien und Kosten ausführen. Ich konnte keine One-Stop-Python / Arcpy-Methode finden, um dies zu tun. Das nächste, was ich bekommen habe, ist die Verwendung des Codes im Kommentar von dkweins unter:
https://community.esri.com/blogs/dan_patterson/2017/01/31/spanning-trees
Dieser Code hat keinen Platz, um dem Diagramm Gewicht zuzuweisen.
Gibt es in Arc ein Paket-MST-Tool, mit dem ich einfach eine Reihe von Punkten eingeben und die Pfade unter Berücksichtigung der Kosten erhalten kann?
Wenn nein (1), was kann ich mit dem verknüpften Code tun, um diese Funktionalität zuzulassen?
Ich habe versucht, dem Suchcursor ein Kostenfeld hinzuzufügen, kann aber nicht herausfinden, wie diese Informationen an das Wörterbuch F angehängt werden sollen. Wenn ich könnte, sollte die Bearbeitung von addToTree ziemlich einfach sein.
ORIGINAL:
def addToTree(F,Q,sr):
    min_dist = float("inf") # set to infinity
    for fk,fv in F.iteritems(): # loop through tree vertices
        for qk,qv in Q.iteritems(): # loop through non-tree vertices
            dist = fv['G'].distanceTo(qv['G']) # calculate distance
            if dist < min_dist: # if distance is less than current minimum, remember
                fk_fv_qk_qv = [fk,fv['G'],qk,qv['G']]
                min_dist = dist
    F[fk_fv_qk_qv[2]] = {'G': fk_fv_qk_qv[3]} # add to tree vertices
    del Q[fk_fv_qk_qv[2]] # delete from non-tree vertices
    return arcpy.Polyline(arcpy.Array([fk_fv_qk_qv[1].centroid,fk_fv_qk_qv[3].centroid]),sr) # return new line
fc = 'points' # points feature class
sr = arcpy.Describe(fc).spatialReference # spatial ref
Q = {str(i[0]):{'G':i[1]} for i in arcpy.da.SearchCursor(fc,['OID@','SHAPE@'],spatial_reference=sr)} # non-tree vertices
F = {} # empty tree vertices
lines = [] # placeholder for lines
q_cur = Q.keys()[0] # get first non-tree vertex
F[q_cur] = Q[q_cur] # transfer to tree vertices
del Q[q_cur] # delete from non-tree vertices
while len(Q)>0: # do until all non-tree vertices assigned to tree
    output = addToTree(F,Q,sr) # add a vertex via function
    lines.append(output) # remember line
arcpy.CopyFeatures_management(lines,r'in_memory\lines') # write lines
                        Ich konnte keine Python-Lösung finden, konnte jedoch das CostConnectivity-Tool von ArcGIS Pro zum Laufen bringen.
https://pro.arcgis.com/en/pro-app/tool-reference/spatial-analyst/cost-connectivity.htm
Is there a package MST tool in Arc where I can just input a set of points and receive the paths out in consideration of cost.
 
     Die Network Analyst-Erweiterung ist das Paket für diese Art der Analyse. Natürlich müssen Sie angeben, wie die Punkte verbunden sind. Sind sie über ein Straßennetz verbunden? Sind sie basierend auf einer Struktur des nächsten Nachbarn verbunden?
Dies sind einige alternative Python-Optionen. Sie müssen das Diagramm basierend darauf erstellen, wie die Entfernungen berechnet werden sollen. Wenn es sich beispielsweise um ein Straßennetz handelt, müssen Sie eine Netzwerkstruktur (das Diagramm) basierend auf dieser Straße erstellen und dann die Punkte in diesem Diagramm platzieren.
Am einfachsten wäre es wahrscheinlich, die networkx-Bibliothek zu verwenden und ein Diagramm mit einem Gewichtungsattribut (Kante oder Knoten) zu erstellen.
https://networkx.github.io/documentation/networkx-1.10/reference/algorithms.mst.html
Dafür muss jedoch die Bibliothek installiert werden, was für Sie möglicherweise keine Option ist.
Ich kann mich nicht erinnern, ob scipy mit dem ArcGIS-Basispython installiert ist, aber es gibt auch eine Option mit ihren spärlichen Diagrammen.
https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.sparse.csgraph.minimum_spanning_tree.html
Schließlich wird numpy mit arcpy installiert, und dies ist nur eine mögliche Implementierung, auf die Sie mit einem numpy-Array zum Speichern des Diagramms verweisen können.
https://medium.com/quick-code/prims-algorithm-with-numpy-arrays-a9ea3d3f112a
Darüber hinaus bietet Ihnen Pysal möglicherweise die Basisfunktionalität, um Ihre eigene MST-Funktion auszuführen: https://pysal.readthedocs.io/en/latest/api.html
Bitte überprüfen Sie das QGIS MST-Plugin. Sie können sich den Code von github ansehen. Geben Sie hier die Linkbeschreibung ein, da Sie das Ergebnis auf GIS i sehen können
Jana Duggar äußerte sich offen zu ihrer Suche nach Liebe. Hier ist alles, was sie zu diesem Thema und ihrem fünfjährigen Zeitfenster für die Ehe gesagt hat.
„Outlander“-Star Sam Heughan verriet kürzlich, was er vom Set mitnehmen wird, um an Jamie Fraser zu erinnern, die Rolle, die ihn zum Star gemacht hat.
„She Loves You“ wurde in einer Stunde geschrieben, an einem Tag aufgenommen und war der Song der Beatles mit einem ihrer besten Auftritte in ihrer Karriere.
Dolly Parton und ihre Oma Bessie hatten eine besondere Beziehung. Oma Parton war sehr krank, aber das hielt Dolly nicht davon ab, ihr einen Streich zu spielen.
Man könnte meinen, Eiche oder Hickory seien robust, aber wenn es um die härtesten Hölzer der Welt geht, kommen sie nicht einmal annähernd heran.
Der Ozean ist voller Schönheit, birgt aber auch einige der furchterregendsten Meeresbewohner unseres Planeten. Viele dieser Tiere lauern tief unter der Meeresoberfläche, in der dunklen, von hohem Druck geprägten Tiefsee.
Wenn du gegen feindliche Monster kämpfst oder dich für PvP-Situationen ausrüstest, kann dir das Wissen um die besten Schwertverzauberungen in Minecraft einen entscheidenden Vorteil verschaffen. Durch das Verzaubern von Schwertern verursachst du mehr Schaden, erhältst mehr Beute von Monstern und verlängerst die Haltbarkeit deines Schwertes.
Wenn von sozialistischen Ländern die Rede ist, stellt man sich oft die vollständige Kontrolle durch den Staat und das Fehlen von Privateigentum vor. In der Praxis unterscheiden sich sozialistische Wirtschaftssysteme jedoch stark.
                    „Children“ hinterlässt einen Cameo-Auftritt eines großen Namens und einige verheerende Neuigkeiten
                    Dieser RAV4 soll sich in ausgezeichnetem Zustand befinden und ist bereit für eine Partie Reise nach Jerusalem.
                    Auf Drohnenaufnahmen ist zu sehen, dass die Feuerwehrleute offenbar Mühe haben, den Brand zu löschen.
                    „Eyes of Wakanda“ ist direkt mit dem MCU verknüpft und bietet Updates zu „X-Men ’97“, „What If...“, „Daredevil“ und mehr.
Ava Gardner war mit Mickey Rooney und Frank Sintra verheiratet und datete mehrere andere Hollywoodstars. Hier ist ein Rückblick auf Ava Gardners Dating-Geschichte.
John Cleese heiratete seine Frau Jennifer Wade im Jahr 2012. Hier erfahren Sie alles Wissenswerte über John Cleeses Frau Jennifer Wade.
Iman und David Bowie bekamen im Jahr 2000 ihre Tochter Alexandria „Lexi“ Jones. Hier erfahren Sie alles Wissenswerte über ihre Tochter Alexandria „Lexi“ Jones.
Walker Scobell ist ein US-amerikanischer Schauspieler. Hier finden Sie alles, was Sie über den Star aus „Percy Jackson und die Olympier“ wissen müssen.
Es fällt mir plötzlich auf, wie so oft. Es ist wieder die Mitte. <Nein, nicht die im Pazifik, du Schlappschwanz, die auf dem Jahrmarkt> Jede Schlagzeile laut…..
                    Im Jahr 2022, mit der Veröffentlichung von GPT-3, scheinen Schreibfähigkeiten an Bedeutung zu verlieren. Mit KI können auch Menschen mit schlechten Schreibkenntnissen hochwertiges Personal hervorbringen.
                    In der heutigen schnelllebigen und wettbewerbsintensiven Welt spielt die Karriere eine wichtige Rolle für das persönliche Wachstum, die finanzielle Stabilität und die allgemeine Lebenszufriedenheit. Viele Menschen befinden sich jedoch in einem unerbittlichen Kreislauf aus Stagnation und Unzufriedenheit, der ihr Berufsleben allmählich verkümmert.
                    Letzte Woche fiel mir eine Pressemitteilung auf, die über PressGazette (eine britische Nachrichten-Website für Medien) verschickt wurde. In dem Artikel wurde angekündigt, dass Acast, das skandinavische Podcast-Hosting- und Werbeunternehmen, ein Konsortium der „wahrscheinlich einflussreichsten“ Verlage im Podcasting leiten werde.