关于#字符串#的问题,如何解决?

多个栅格转数组后以字符串形式进行拼接,我的代码如下:

# -*- coding: UTF-8 -*-
import arcpy
arr_1991 = arcpy.RasterToNumPyArray("F:/study/luoyang text/CLCD_v01_1991_albert_henan.tif",nodata_to_value=0)#栅格转数组
arr_1992 = arcpy.RasterToNumPyArray("F:/study/luoyang text/CLCD_v01_1992_albert_henan.tif",nodata_to_value=0)
file  = open("C:/Users/Lenovo/Desktop/test.txt","w")#保存形式为文本
k = 0
str1 = ""
for i in arr_1991:
    n = 0
    for j in arr_1991[k]:
        if arr_1991[k][n] != arr_1992[k][n] :
         str1 += str(arr_1991[k][n]) + str(arr_1992[k][n])  + "\n"
        n+=1
    k+=1
print(str1)
file.write(str1)
file.close()


这是我的栅格转数组后的形式

img

结果如下;

img

以上是我的两个栅格专数组拼接,但是我需要四个栅格转数组拼接,于是出现了问题;

import arcpy
arr_1991 = arcpy.RasterToNumPyArray("F:/study/luoyang text/CLCD_v01_1991_albert_henan.tif",nodata_to_value=0)#栅格转数组
arr_1992 = arcpy.RasterToNumPyArray("F:/study/luoyang text/CLCD_v01_1992_albert_henan.tif",nodata_to_value=0)
arr_1993 = arcpy.RasterToNumPyArray("F:/study/luoyang text/CLCD_v01_1993_albert_henan.tif",nodata_to_value=0)
arr_1999 = arcpy.RasterToNumPyArray("F:/study/luoyang text/CLCD_v01_1994_albert_henan.tif",nodata_to_value=0)
file  = open("C:/Users/Lenovo/Desktop/test.txt","w")#保存形式为文本
k = 0
str1 = ""
for i in arr_1991:
    n = 0
    for j in arr_1991[k]:
        if arr_1991[k][n] != arr_1992[k][n]!= arr_1993[k][n] != arr_1999[k][n]:
            str1 += str(arr_1991[k][n]) + str(arr_1992[k][n]) + str(arr_1993[k][n]) + str(arr_1999[k][n]) + "\n"
        n+=1
    k+=1
print(str1)
file.write(str1)
file.close()


结果如下:

img


** 结果是空白的**
不知道哪里出现了问题。

  问题出在您if判断那句,判定四个值各不相等,才执行拼接运算。但是没有一个符合要求的,所以写入文本的就是初值“”了。

  • 您的判定语句写法,是应该没有问题的,我试过了。

    img

  检查下您的拼接数组,是不是四个数组的对应值,始终有一个相等的情况,就达不成您设定的四个全不等,所以写入文本的“都是空”。


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

python调试三板斧 https://ask.csdn.net/questions/7908322/54130133