Ich wurde beauftragt, eine Eignungsanalyse der Wellenbedingungen im Golf von Mexiko zu erstellen. Ich habe ungefähr zweitausend Rasterdateien mit jeweils ca. 8 MB (2438 Spalten, 1749 Zeilen, 1 km Zellengröße). Der Parameter in den Rasterdateien ist die Wellenperiode, und ich möchte alle Raster so umklassifizieren, dass if 4<= wave period <=9 then make cell = 1
, else cell = 0. Dann alle Raster zu einem endgültigen Raster zusammenfassen und durch die Gesamtzahl der Raster dividieren, um a zu erhalten Gesamtprozentsatz geeigneter Beobachtungen und Exportergebnisse in ein ESRI-kompatibles Format ... möglicherweise etwas, das Floats bei Bedarf unterstützen kann. Ich habe weder mit Python noch mit R viel gearbeitet, aber nach der Online-Suche scheint es sinnvoll, diesen Prozess in einer dieser Sprachen durchzuführen. Ich habe mir bisher einen Code in R ausgedacht, bin aber verwirrt darüber, wie das funktioniert.
library(rgdal)
raster_data <- list.files(path=getwd()) #promt user for dir containing raster files
num_files <- length(raster_data)
for (i in raster_data) { #read in rasters
my_data <- readGDAL(raster_data[i])
An diesem Punkt bin ich verwirrt, ob ich auch die Daten innerhalb dieser Schleife neu klassifizieren und summieren soll oder nicht. Meine Vermutung wäre ja, da ich sonst denke, dass mir möglicherweise der Speicher auf meinem Computer ausgehen würde, aber ich bin mir einfach nicht sicher. Ich bin mir auch nicht sicher, wie ich die Daten neu klassifizieren soll.
Bei Online-Recherchen denke ich, ich würde verwenden reclass(my_data, c(-Inf,3,0, 4,9,1, 10,Inf,0))
, aber sieht das richtig aus?
Und zum Summieren würde ich das verwenden sum(stack(my_data))
und irgendwie ausgeben. Auch ... wenn dies effizienter ausgeführt oder in Python geschrieben werden könnte, wäre ich auch dafür offen. Ich bin wirklich ein Anfänger, wenn es um Programmierung geht.