基本上我有这些需要递归的tif图像并读取像素数据以确定图像中的像素是否融化了冰。这是通过脚本中设置的阈值确定的。这被配置为能够显示年总熔化值以及每月。它在我自己的机器上工作正常,但我需要在Linux VM上远程运行它。它有效,但它产生的总数正好比它应该的数量大71146,以及它产生了什么。
这是完成大部分处理的片段,最终导致我的问题。
for file in os.listdir(current):
if os.path.exists(file):
if file.endswith(".tif"):
fname = os.path.splitext(file)[0]
day = fname[4:7]
im = Image.open(file)
for x in range(0,60):
for y in range(0,109):
p = round(im.getpixel((x,y)), 4)
if p >= threshold:
combined = str(x) + "-" + str(y)
if combined not in coords:
melt += 1
coords.append( combined )
totalmelt.append( melt )
然后将totalmelt相加得到年度值:
total = sum(totalmelt)
先前已将阈值设置如下:
threshold = float(-0.0158)
我觉得我错过了一些明显的东西。自从我玩Python之后已经有一段时间......我现在正从C ++过来。感谢您提供的任何解决方案!
答案 0 :(得分:1)
您需要在内循环之前将melt
重置为0
:
melt = 0
for x in range(0,60):
for y in range(0,109):
...
melt += 1
totalmelt.append(melt)