2016-05-02 6 views
1

Ich arbeite an einem Projekt für meine Anfänger Python-Klasse und habe ein wenig festgefahren. Ich habe drei .tif-Dateien, für die ich Zonal Statistics ausführen möchte, aber ich erhalte einen Fehler. Hier ist mein Skript:Mehrere Raster in zonalen Statistiken in einer For-Schleife?

import arcpy 
import os 
from arcpy import env 
from arcpy.sa import * 
env.workspace = r'C:\Users\alvaremi\Documents\Final Project_Python' 
path = r'C:\Users\alvaremi\Documents\Final Project_Pythonn' 
env.overwriteOutput = 1 
arcpy.CheckOutExtension('Spatial') 

in_zone_data = 'counties_in_cog.shp' 
zone_field = 'NAME' 

impervious = os.listdir(env.workspace + '\ImpvClipped') 
print impervious 

for year in impervious: 
    if year.endswith(".tif"): 
    outZonalStatistics = ZonalStatistics(in_zone_data, zone_field, year, "MEAN", "NODATA") 
    outZonalStatistics.save(year[:8] + 'zonalstats') 

print 'Done' 

Wenn ich es laufen, bekomme ich diesen Fehler: ExecuteError: Fehler auszuführen. Parameter sind nicht gültig. Fehler 000865: Eingabewert Raster: 2001impvclipped.tif ist nicht vorhanden. Fehler beim Ausführen (ZonalStatistics).

Ich bin auch unsicher, wie Sie die neuen Dateien speichern, so dass sie das Datum auf ihnen behalten. Die Dateien, auf denen ich die Zonal Stats ausführen möchte, sind "2001impclipped", "2006impclipped" und "2011impclipped".

Danke!

Antwort

0

Sie müssen den vollständigen Verzeichnispfad zum Dateinamen hinzufügen, damit Python ihn finden kann.

fileName = env.workspace + '\ImpvClipped\' + year 
ZonalStatistics(in_zone_data, zone_field, fileName, "MEAN", "NODATA")