Ich bin ein Neuling in Python und möchte wissen, ob es in ArcGIS 10 eine schnelle Methode gibt, um die Zellwerte eines Rasters Pixel für Pixel und die Koordinaten (XY-Koordinate der Pixelmitte zuordnen) mit Python abzurufen.
Um dies weiter zu beschreiben, muss ich die Karte X, die Karte Y und den Zellenwert des ersten Pixels abrufen und diese drei Werte drei Variablen zuweisen und diesen Schritt für den Rest der anderen Pixel wiederholen (Schleife durch das gesamte Raster).
Ich denke, ich muss meine Frage genauer beschreiben. Das Problem ist, dass ich die XY-Position eines Pixels des ersten Rasters und die Zellenwerte mehrerer anderer Raster abrufen muss, die dieser XY-Position entsprechen. Dieser Vorgang sollte durch jedes Pixel des ersten Rasters geschleift werden, ohne dass ein Zwischenpunkt-Shapefile erstellt wird, da er wirklich sehr zeitaufwendig ist, da ich ein Raster mit fast 8 Milliarden Pixeln verarbeiten muss. Ich muss dies auch mit Python in ArcGIS 10 tun.
@ JamesS: Vielen Dank für Ihren Vorschlag. Ja, dies würde für ein Raster funktionieren, aber ich muss die Zellenwerte auch für mehrere andere Raster erfassen. Das Problem besteht darin, dass ich nach dem Abrufen der X- und Y-Koordinate des ersten Pixels des ersten Rasters den Zellenwert des zweiten Rasters abrufen muss, der der X-, Y-Position des ersten Rasters, dann des dritten Rasters usw. entspricht. Wenn Sie also das erste Raster durchlaufen, sollten Sie die X- und Y-Position eines Pixels und die Zellwerte des anderen Rasters, die dieser Position entsprechen, gleichzeitig ermitteln, aber ich bin mir nicht sicher. Dies kann erreicht werden, indem das erste Raster in ein Punkt-Shapefile konvertiert und die Funktion "Mehrfachwerte in Punkt extrahieren" in ArcGIS 10 ausgeführt wird.
@hmfly: Danke, ja, diese Methode (RastertoNumpyarray) funktioniert, wenn ich die Koordinate eines bekannten Zeilen- und Spaltenwerts des Arrays ermitteln kann.
@whuber: Ich möchte keine Berechnungen durchführen, ich muss nur XY-Koordinaten und Zellenwerte in eine Textdatei schreiben und das ist alles