多个栅格转数组后以字符串形式进行拼接,我的代码如下:
# -*- 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()
这是我的栅格转数组后的形式
结果如下;
以上是我的两个栅格专数组拼接,但是我需要四个栅格转数组拼接,于是出现了问题;
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()
结果如下:
问题出在您if判断那句,判定四个值各不相等,才执行拼接运算。但是没有一个符合要求的,所以写入文本的就是初值“”了。
检查下您的拼接数组,是不是四个数组的对应值,始终有一个相等的情况,就达不成您设定的四个全不等,所以写入文本的“都是空”。
1200000有多少个约数?(只计算正约数)
**【答案提交】**这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
python调试三板斧 https://ask.csdn.net/questions/7908322/54130133