Ich habe ein Raster (AusgZust) mit Höhenwerten des Ostsee-Gebietes vor der postglazialen Hebung der Skanden (d. h. 10.000 BP). Für den Zeitraum der folgenden 5000 Jahre nehme ich eine exponentiell abnehmende Hebungsrate an, d.h. der Hebungsbetrag im Jahr a beträgt h_max * Exp(r*a). Dieser muss dann immer auf die Höhenwerte des vorangegangenen Jahres (a-1) addiert werden.
Um die Hebung darzustellen, würde ich gerne mindestens 10 Zeitschritte (zwischen 10.000 und 5.000 BP bzw. zwischen 0 und 5000) berechnen. Da ich eine rekursive Gleichung habe, mache ich das mit einer for-Schleife:
Code: Alles auswählen
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "..."
Zielordner = "..."
AusgZust = Raster(Zielordner+"RasterCalc_Ausgangszustand")
Hebung_max = Raster(Zielordner+"Hebungsrate_max")
r = -0.000766147
Zeit = range(0,5000)
for a in Zeit:
outRaster = AusgZust + Hebung_max * Exp(r*a)
outRaster.save(Zielordner+"Zustand_vor_"+str(10000-a)+"_Jahren")
AusgZust = Raster(Zielordner+"Zustand_vor_"+str(10000-a)+"_Jahren")Meine Idee war deshalb, vor den Speicherbefehl eine if-Schleife zu setzen, damit nur bestimmte Zeitschritte abgespeichert werden, z.B.
Code: Alles auswählen
for a in Zeit:
outRaster = AusgZust + Hebung_max * Exp(r*a)
if a%500 == 0: outRaster.save(Zielordner+"Zustand_vor_"+str(10000-a)+"_Jahren")
AusgZust = outRasterHat jemand eine Idee, wie ich das lösen kann?
