Me encargaron crear un análisis de idoneidad de las condiciones de las olas en el Golfo de México. Tengo aproximadamente 2 mil archivos ráster que son de aproximadamente 8 MB cada uno (2438 columnas, 1749 filas, 1 km de tamaño de celda). El parámetro en los archivos ráster es el período de onda y me gustaría reclasificar todos los rásteres de modo que si 4<= wave period <=9 then make cell = 1
, de lo contrario, la celda = 0. Luego, sume todos los rásteres en un ráster final y divida por el número total de rásteres para obtener un porcentaje total de observaciones adecuadas y resultados de exportación en algún formato compatible con ESRI ... tal vez algo que pueda admitir flotantes si es necesario. No he trabajado mucho con Python o R, pero después de buscar en línea parece tener sentido realizar este proceso en uno de esos idiomas. Se me ocurrió un código hasta ahora en R, pero estoy confundido sobre cómo hacer que esto funcione.
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])
En este punto, estoy confundido sobre si también debería reclasificar y comenzar a sumar los datos dentro de este ciclo o no. Supongo que sí, ya que de lo contrario creo que posiblemente me quedaría sin memoria en mi computadora, pero no estoy seguro. Tampoco estoy seguro de cómo reclasificar los datos.
Al investigar en línea, creo que usaría reclass(my_data, c(-Inf,3,0, 4,9,1, 10,Inf,0))
, pero ¿se ve bien?
Y para resumir, usaría sum(stack(my_data))
y de alguna manera generaría eso. Además ... si esto pudiera realizarse o escribirse de manera más eficiente en Python, también estaría abierto a eso. Realmente soy un principiante cuando se trata de programación.