现有两个栅格数据:1991-1999.tif、2000-2008.tif,需要通过RasterToNumPyArray (arcpy)、numpy将这两个栅格数据拼接,使其成为1991-2008.tif
没有用栅格计算器操作是因为相位越界了,需要将栅格数据转为数组进行拼接。
这是两个数据的属性表。


结果例子:有1991-1994.tif 和1995-1998.tif,通过栅格转数组拼接为1991-1998.tif


结果为

是这样的形式。
现有两个栅格数据:1991-1999.tif、2000-2008.tif,需要通过RasterToNumPyArray (arcpy)、numpy将这两个栅格数据拼接,使其成为1991-2008.tif
没有用栅格计算器操作是因为相位越界了,需要将栅格数据转为数组进行拼接。
这是两个数据的属性表。


结果例子:有1991-1994.tif 和1995-1998.tif,通过栅格转数组拼接为1991-1998.tif



以下内容引用CHATGPT、有用望采纳:
可以使用RasterToNumPyArray将栅格数据转换为numpy数组,然后使用numpy.concatenate将两个数组拼接起来,最后使用numpy.save将结果保存为tif格式的栅格数据。
具体代码如下:
import arcpy
import numpy as np
# 读取栅格数据并转换为numpy数组
arr_1991_1999 = arcpy.RasterToNumPyArray("1991-1999.tif")
arr_2000_2008 = arcpy.RasterToNumPyArray("2000-2008.tif")
# 拼接两个数组
arr_1991_2008 = np.concatenate((arr_1991_1999, arr_2000_2008), axis=2)
# 保存结果为tif格式的栅格数据
np.save("1991-2008.npy", arr_1991_2008)
arcpy.NumPyArrayToRaster(arr_1991_2008, arcpy.Point(0, 0), 1, 1).save("1991-2008.tif")
需要注意的是,拼接时需要指定axis参数为2,表示在第三个维度(即时间维度)上进行拼接。保存结果时,需要使用NumPyArrayToRaster将数组转换为栅格数据,并指定左上角坐标和像素大小。