我正在做的事情的本質是基於GIS,由我的問題是基於python,這就是爲什麼我在這裏發佈。在壓縮列表中指定具有循環的輸出路徑
我有4個文件夾包含光柵文件(.tif文件)。我正在對它們執行操作,然後將輸出保存到特定位置。這是我的問題所在,指定我的輸出路徑。
我使用的代碼如下:
import arcpy
from arcpy.sa import *
#set pathway to rasters
arcpy.env.workspace=r'F:\Sheyenne\Normalized_Indices\Fuzzy_Overlay\NDVI'
NDVIraster=arcpy.ListRasters('*tif')
arcpy.env.workspace=r'F:\Sheyenne\Normalized_Indices\Fuzzy_Overlay\NDII'
NDIIraster=arcpy.ListRasters('*tif')
arcpy.env.workspace=r'F:\Sheyenne\Normalized_Indices\Fuzzy_Overlay\RGR'
RGRraster=arcpy.ListRasters('*tif')
arcpy.env.workspace=r'F:\Sheyenne\Normalized_Indices\Fuzzy_Overlay\SWIR32'
SWIR32raster=arcpy.ListRasters('*tif')
#set the output pathway
outpath='F:\Sheyenne\Normalized_Indices\Fuzzy_Membership\\'
#run my operation
for ndvi, ndii, rgr, swir32, in zip(NDVIraster, NDIIraster,RGRraster, SWIR32raster):
outpath=outpath + ndvi
outraster= arcpy.gp.FuzzyOverlay_sa([ndvi, ndii, rgr, swir32], outpath, "AND")
所以我想我的輸出路徑由初始outpath
的組合和文件的ndvi
名稱。當我打印outpath
,雖然它通過保存到第一個文件名開始,然後第二個文件被保存到第一個文件名和第二個文件名。所以輸出一個是file1.tif,輸出兩個是file1.tiffile2.tif,輸出三個是file1.tiffile2.tiffile3.tif等
我該如何保存到ndvi
的相應文件名,而不是使用迭代不斷添加名稱?
這是因爲outpath不會重置爲每個循環的基路徑。它會保留它的價值。您可以處理這兩種方式,在添加初始化值之前將其移動到循環中。或者,我會推薦的是將'outpath'的名稱更改爲'outroot'並將添加更改爲'outpath = outroot + ndvi' – TehCorwiz