栅格的添加

时间:2019-11-24 15:40:51

标签: python numpy raster

我有一个栅格列表。我想对列表中的栅格进行逐像素加法。 我正在使用 numpy gdal 。我的代码是:

from osgeo import gdal
import numpy as np

def fn():
    i0 = r'C:\Add\rst0.tif'
    i1 = r'C:\Add\rst1.tif'
    i2 = r'C:\Add\rst2.tif'
    List = [i0,i1,i2]
    res = []
    res1=[]

    for f in List:
        gd = gdal.Open(f)
        res.append(gd.GetRasterBand(1).ReadAsArray())
        arr = np.array(res)
        flat = arr.flatten()
        res1.append(flat) #list of flattened arrays
        print(flat)
        print(res1) #list of flattened arrays
    return res1
    aa = sum(res1)
    print(aa)

我得到该行的错误:

  

TypeError:“ numpy.ndarray”对象不可调用

我不想做简单的i0+i1+i2,因为我正在创建一个用户界面,在此用户输入栅格的数目将由用户定义,因此不会被知道。

所以我已经了解到,因为列表res1 []被存储为[array([0,1,2 .... 3,2,9]),array([1,2,3 .. .... 6,7,8]),array([1,6,7,......,7,6,9,])]我得到一个错误,该对象不可调用,因为列表的结构以及列表中是否存在字符串-'array'。我相信会有办法解决这个问题。但是,我是新手,因此将其发布在这里。

0 个答案:

没有答案