我有一个包含一些栅格文件的文件夹,如下所示:us_ppt_1971_2000_01.asc,us_tmax_1971_2000_02.asc,us_tmin_1971_2000_03.asc,...
我想从输入文件夹中打开这些文件,根据每个文件进行一些计算,并将结果保存在输出文件夹中。
所有代码都运行正常,如果我为每个输入文件创建一个包含我想要的新名称的字典,我甚至可以保存结果。但我永远不知道哪个输入文件以哪个名称保存。
所以现在我想打开每个文件,进行计算,然后使用从输入文件名中删除的较短名称保存新文件,比如“ppt_01”,这样我就能识别出来。
以下代码正在运行,但随机保存文件,这意味着,ppt保存为tmax或tmin与ppt相同:
import ...
workDirectory="I:\\PRISM\\M stuff"
inputDirectory=workDirectory+"\\in"
inputDirectoryPrism=workDirectory+"\\in\\prism"
resultsDirectory=workDirectory+"\\results"
...
...
maps = ["PP1", "PP2", "PP3", "PP4", "PP5", "PP6", "PP7", "PP8", "PP9", "PP10", "PP11", "PP12",
"TMX1", "TMX2", "TMX3", "TMX4", "TMX5", "TMX6", "TMX7", "TMX8", "TMX9", "TMX10", "TMX11", "TMX12",
"TMN1", "TMN2", "TMN3", "TMN4", "TMN5", "TMN6", "TMN7", "TMN8", "TMN9", "TMN10", "TMN11", "TMN12"]
nr=0
for file in glob.glob( os.path.join(inputDirectoryPrism, '*.asc') ):
...
some calculations
...
# Process: Zonal Statistics as Table
# THIS IS WHERE I SAVE MY FILE
arcpy.gp.ZonalStatisticsAsTable_sa(outputDirectory+"\\subcat_diss_shp.shp", "GRIDCODE", outputDirectory+"\\us_ppt_di", resultsDirectory+"\\"+maps[nr]+".dbf", "DATA", "MEAN")
nr = nr + 1
这是我正在尝试的代码,但它给出了错误“工作区是无效的输出工作区”:
import ...
workDirectory="I:\\PRISM\\M stuff"
inputDirectory=workDirectory+"\\in"
inputDirectoryPrism=workDirectory+"\\in\\prism"
resultsDirectory=workDirectory+"\\results"
...
...
nr=0
for file in glob.glob( os.path.join(inputDirectoryPrism, '*.asc') ):
name1 = file[3:]
name2= name1[:-16]
name3= file[17:]
name4=name3[:-3]
...
some calculations
...
# Process: Zonal Statistics as Table
# THIS IS WHERE I SAVE MY FILE
arcpy.gp.ZonalStatisticsAsTable_sa(outputDirectory+"\\subcat_diss_shp.shp", "GRIDCODE", outputDirectory+"\\us_ppt_di", resultsDirectory+"\\"+name2+name4[nr]".dbf", "DATA", "MEAN")
nr = nr + 1
看起来像resultsDirectory +“\”+ name2 + name4 [nr]“。dbf”不是存储文件的好方法。
任何帮助都将受到高度赞赏。
谢谢!