Ich füge dies für jeden in der Zukunft hinzu, der diesen Thread liest.
Hier ist alles, was ich gelernt habe, um mich mit diesem Thema auseinanderzusetzen und einen vollständigen Abstand zwischen den Punkten zu erhalten.
Unsere erste Ausgabe ergab sich aus der statischen Natur von RasterCatalog. Durch Ändern der Raster, auf denen dies basiert, wird das Raster im RasterCatalog NICHT geändert. Es stellte sich heraus, dass unsere eine alte Version hatte, die sich nicht in der Nähe einer Küstenkarte befand. Gelernte Lektion: Erstellen Sie den RasterCatalog jedes Mal neu, wenn Sie die Raster ändern, auf denen er basiert.
Das Distanz-Raster mit hinzugefügten Gewichten wird zu einer ziemlich umständlichen Sache. Sehen Sie sich das folgende Szenario an: Der ursprüngliche Wert des Rasters beträgt 1 Gesamtentfernung, die ich betrachten möchte, beträgt 117 km. Die Zellengröße beträgt 1 Meter. Wenn das Raster jetzt einen gewichteten Wert von 48 hat, beträgt die Gesamtentfernung, die ich sehen möchte, 117 km * 48 !!! Die Entfernung in der CostDistance-Methode ist also nicht die Zellenentfernung, sondern die gewichtete Entfernung, wobei anscheinend der Wert in jeder Zelle addiert wird, bis die Summe jeder Zelle = der Wert, der für die Gesamtentfernung übergeben wurde. Auch wenn die Zellengröße selbst 1 Meter beträgt !!!
Das Distanzraster konzentriert sich alle auf einen Ursprungspunkt. Wenn Sie also die CostDistance-Routine aufrufen, möchten Sie den Ursprungspunkt nicht in diese Liste aufnehmen. Wenn Sie dies tun, erhalten Sie einen Punkt mit einem Abstand von 0. (diese sogar verblüffte ESRI-Unterstützung)
Während viele Methoden den Umschlag verwenden, um ihren Prozess einzuschränken, ignorieren die beiden teuersten Methoden, bei denen ein Wert für das Raster festgelegt und ein Raster ohne einen Bereich innerhalb eines Polygons extrahiert wird, alle Umschlageinstellungen und wenden diesen automatisch automatisch auf das gesamte Raster an. Leider können wir dies nur verkürzen, indem wir massive überlappende Segmente erstellen und ein Segment einem bestimmten umrahmten Bereich zuweisen. Dabei müssen wir jedoch darauf achten (was schwierig ist), dass ein primärer Betriebsbereich nicht im falsch überlappenden Bereich vorhanden ist. (Mit anderen Worten, alle unsere Überlappungen müssen sorgfältig ausgewählt werden, um keine primären Punkte von Interesse zu enthalten!) Der Grund dafür ist, dass wir im RasterCatalog navigieren und das richtige Raster auswählen, basierend darauf, wo sich die ausgewählte Küstenwache befindet. Um unseren Prozess weiter zu verkomplizieren, Die Überlappung muss es uns ermöglichen, bis zu 120 km von unserem Ursprungspunkt entfernt zu navigieren, ohne vom Rand der Karte abzulaufen und nicht mit anderen primären Sonderzielen zu überlappen. Meine Güte.
Das einzige andere, was ich gelernt habe, ist, dass es einfach ist, das Raster zu berechnen, aber wenn Sie entweder ein Loch in das Raster stechen möchten (Blockaden) oder einen Donut mit einem Wert setzen möchten und das Innere des Donuts ein Bei einem Wert von 1 (Verzögerungen wie bei einer Sperre) erhalten Sie eine komplexe Kombination aus Werkzeugen und ArcObject-Aufrufen. Was zur letzten Lektion führt: ArcObjects kann nicht alles. Daher bin ich gelegentlich gezwungen, Dinge in den langsamen, umständlichen Werkzeugen zu tun, die alle in Python geschrieben wurden. Ich habe auch erfahren, dass die Entwickler von ESRI-Tools nichts über die Aufrechterhaltung der Konsistenz wissen. Manchmal nahmen sie eine Rasterdatenbank, manchmal brauchten sie ein Raster und gelegentlich brauchten sie ein Feature-Set. Und sie geben die Daten nicht in demselben Format zurück, das sie als Eingabe benötigen!
Verwirrt? Keine Sorge, es ist ESRI.