我正在通过一些代表蒸发水量的tiff。下面的代码遍历图像并为每个像素创建一个多项式函数。但是,在将poly_fn附加到列表z之后,只会附加系数。任何人都可以推荐一个解决方案,以便存储在列表z中的功能?列表z必须包含351行和308列。我将tif文件附加在zip文件夹中。
import os
import glob
import arcpy
import numpy as np
arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True
arcpy.env.scratchWorkspace = r'E:\Alcalde\Scratch'
Scratchws = r'E:\Alcalde\Scratch\\'
KC_list = glob.glob(r'E:\Alcalde\Kc\*.tif')
KC_array = []
dates = []
for KC_tiff in KC_list:
name = os.path.basename(KC_tiff).split(".")[0]
date = os.path.basename(name).split("_")[2]
date = float(date[-3:])
KC_arr = arcpy.RasterToNumPyArray(KC_tiff)
KC_array.append(KC_arr)
shape = numpy.shape(KC_arr)
date_arr = np.full(shape, date)
dates.append(date_arr)
z = []
for row in range(0, 351):
for column in range(0,308):
x = []
y = []
for img in range(0,43):
pixel = KC_array[img][row][column]
date = dates[img][row][column]
x.append(dates[img][row][column])
y.append(KC_array[img][row][column])
print("Pixel (Row, Column): " + str(row) + "," + str(column))
poly = np.polyfit(x, y, 3)
poly_fn = np.poly1d(poly)
z.append(poly_fn)
print(poly_fn)
print("====================================")
w = np.array([np.array(xi) for xi in z])
q = np.reshape(w, (351, 308, 4))
print(q[350][307])
print("Complete..")