![](/img/trans.png)
[英]Python: Group a list of file names according to common name identifier
[英]summation group of rasters have common file name
我有一个文件夹,其中包含成组的栅格:
这些栅格的使用时间长达12个月,直到DEC。 我想总结一下这个文件夹中的每一天。 我试图在(z)处分割文件名,然后列出所有具有相似的相似第二部分的栅格,然后使用像元统计进行求和。 我用fnmatch做到这一点,但它返回空列表。 有什么建议么!
import os, arcpy, fnmatch
import arcpy.sa
from arcpy import env
arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True
finalRasterFold = "E:\Drive_GGGGGG\PhD_AinShams\PhD_Proposal_RainNetwork\Frequency_Files\Con_1_0"
outDayRasterFold = r"D:\PhD_work\Rasters_Day"
arcpy.env.workspace = finalRasterFold
RainRasterList = arcpy.ListRasters('*')
for h in range(0,24):
DayRainRaster = []
j =[]
for n in RainRasterList:
fn1, fn2 = n.split('z')
if fnmatch.filter(n[3:], fn2):
j.append(n)
j = arcpy.Raster()
DayRainRaster.append(j)
arcpy.gp.CellStatistics(DayRainRaster,outDayRasterFold + r"\DayRas" + str(h),"SUM","DATA")
您可以使用collections
模块中的defaultdict
来记录每天发生的次数。
from collections import defaultdict
day_count = defaultdict(int)
for n in RainRasterList:
fn1, fn2 = n.split('z')
day_count[fn2] += 1
print(day_count)
@James ..我找到了一种方法来解决您的问题。
newlist = []
for n in RainRasterList:
fn1, fn2 = n.split('z')
temp = (fn2, n)
newlist.append (s)
for k, v in newlist:
day_count[k].append(v)
day_count.items()
rlist =[]
for k, v in day_count.iteritems():
rlist.append(v)
for i in range(len(rlist)):
arcpy.gp.CellStatistics(rlist[i], outDayRasterFold + r"\D" + str(rlist[i][1]),"SUM","DATA")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.