Я создаю программу, которая вычисляет количество пикселей пикселей определенного значения температуры на спутниковом изображении. Я использовал:
for infile in glob.glob(*.tif)
для открытия всех изображений .tif в цикле. Программа работает нормально, и печатает в терминале имя de и номер пикселя всех изображений.
Но когда я использую:
np.savetxt("pixels.txt", (File, pixelstemp1, pixelstemp2), fmt="%1s", delimiter=' ')
сохраняет только количество пикселей последнего изображения в текстовом файле. Как я могу сделать для сохранения в текстовом файле количество пикселей всех изображений?
from pylab import *
import numpy
import glob, os
for infile in glob.glob("*04.tif"):
# pretend the rest of this is indented another level
dir, file = os.path.split(infile)
file, ext = os.path.splitext(infile)
sat=imread(infile)
satnovo=where(logical_and((418.-sat)-273.15>=-90,(418.-sat)-273.15<=-31),(418.-sat)-273.15,(660.-sat)/2-273.15)
temperatura=[-80,-70,-60,-50,-40,-30]
mask1=where(logical_and(satnovo<-30,satnovo>-80), 1,0)
mask2=where(logical_and(satnovo<-40 ,satnovo>-80),1,0)
mask3=where(logical_and(satnovo<-50, satnovo>-80),1,0)
mask4=where(logical_and(satnovo<-60, satnovo>-80),1,0)
mask5=where(logical_and(satnovo<-70, satnovo>-80),1,0)
x1=ma.masked_object(mask1,0)
pixels1=ma.count(x1)
x2=ma.masked_object(mask2,0)
pixels2=ma.count(x2)
x3=ma.masked_object(mask3,0)
pixels3=ma.count(x3)
x4=ma.masked_object(mask4,0)
pixels4=ma.count(x4)
x5=ma.masked_object(mask5,0)
pixels5=ma.count(x3)
print infile,pixels1,pixels2,pixels3,pixels4,pixels5
a=np.array([infile,pixels1,pixels2,pixels3,pixels4,pixels5],dtype=object)
np.savetxt("contapixels.txt",a[None],fmt='%1s', delimiter=' ')