基本上,我需要递归遍历这些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 ++过来。感谢您提供的任何解决方案!

最佳答案

您需要在内部循环之前将melt重置为0

melt = 0
for x in range(0,60):
    for y in range(0,109):
       ...
       melt += 1
totalmelt.append(melt)

关于python - 为什么此代码在VM中产生不同的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32962460/

10-12 22:48