He estado buscando mucho para encontrar una solución para lo que creo que es un ejercicio muy sencillo.
En general, me gustaría saber cómo puedo extraer una variable de un bucle en Python y luego utilizarla en otra parte del script. Tengo conocimientos limitados de Python, sin embargo sé por R
que esto debería ser bastante sencillo. Más concretamente, mi caso se explica a continuación.
Tengo dos bucles, ambos multiplicando rasters. Necesito extraer variables de cada uno de los bucles y luego sumarlas.
import arcpy, os
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("spatial")
arcpy.env.overwriteOutput = True
env.workspace = "D:/Join"
#
outputFolder = env.workspace
#
# A list of two different rasters
wheat = ["a_wheat", "b_wheat"]
for w in wheat:
r_w=Times("landuse_w",w) # landuse is a raster
r_w.save(os.path.join(outputFolder, "r_" + w ))
# This will generate r_a_wheat, r_b_wheat
barl = ["a_barl", "b_barl"]
for b in barl:
r_b=Times("landuse_b",b)# landuse is a raster
r_b.save(os.path.join(outputFolder, "r_" + b))
# This will generate r_a_barl, r_b_barl
#
# Add rasters
add_a = r_a_wheat + r_a_barl
add_b = r_b_wheat + r_b_barl
El problema con los bucles de este tipo es que tengo que guardar todo y luego sumar. Preferiría extraer de r_w
los dos raster ( r_a_wheat, r_b_wheat
), haga lo mismo para r_b
y luego sumar sin tener que guardar archivos. ¿Es posible?