Python 属性错误浮点对象没有属性';追加';

Python 属性错误浮点对象没有属性';追加';,python,numpy,lidar,Python,Numpy,Lidar,我试图让这段代码打开LAS文件进行更改,然后将结果保存在一个新的LAS文件中。las文件包含具有坐标(X和Y)和值(如Z表示高程)的点。不幸的是,如果我没有将保存部分放入代码中,代码就可以工作,但是当我执行下面的操作时,我得到了以下错误: Traceback (most recent call last): File "C:\Users\Geri\Desktop\Sync\pythonlas\envisecond.py", line 33, in <module> lis

我试图让这段代码打开LAS文件进行更改,然后将结果保存在一个新的LAS文件中。las文件包含具有坐标(X和Y)和值(如Z表示高程)的点。不幸的是,如果我没有将保存部分放入代码中,代码就可以工作,但是当我执行下面的操作时,我得到了以下错误:

Traceback (most recent call last):
  File "C:\Users\Geri\Desktop\Sync\pythonlas\envisecond.py", line 33, in <module>
    listx1=p.append(listx1, float[newx])
AttributeError: 'float' object has no attribute 'append'
enter code here
回溯(最近一次呼叫最后一次):
文件“C:\Users\Geri\Desktop\Sync\pythonlas\envisond.py”,第33行,在
listx1=p.append(listx1,float[newx])
AttributeError:“float”对象没有属性“append”
在这里输入代码
到目前为止,我知道我需要一个数组来将值保存到代码末尾的las文件中:

import laspy
import laspy.file
import numpy as p
header = laspy.header.Header()
inFile2 = laspy.file.File("C:\\Users\\Geri\\Desktop\\Sync\\pythonlas\\mapperclip\\2clip.las", mode = "r")
inFile3 = laspy.file.File("C:\\Users\\Geri\\Desktop\\Sync\\pythonlas\\mapperclip\\3clip.las", mode = "r")
point_records = inFile2.points
point_records = inFile3.points

t=0
listx1=p.array([], dtype=float)
listy1=p.array([], dtype=float)
listz1=p.array([], dtype=float)
while t < 415:
    z=0
    q=0
    p=0.1
    while z==0:

        xmin=inFile3.x[t]-p
        ymin=inFile3.y[t]-p
        xmax=inFile3.x[t]+p
        ymax=inFile3.y[t]+p
        n=0
        for points in inFile2.points:
            ax=inFile2.x[n]
            ay=inFile2.y[n]
            if ax > xmin and ax < xmax and ay < ymax and ay > ymin: 

                newx = [inFile3.x[t]-((inFile3.x[t]-inFile2.x[n])/2)]
                newy = [inFile3.y[t]-((inFile3.y[t]-inFile2.y[n])/2)]
                newz = [inFile3.z[t]-((inFile3.z[t]-inFile2.z[n])/2)]
                listx1=p.append(listx1, float[newx])
                listy1=p.append(listy1, float[newy])
                listz1=p.append(listz1, float[newz])
                print listx1
                print n
                n+=1
                q+=1
                t+=1

            else:
                n+=1
        if q>0:            
            z+=1
        else:
            p+=0.1
outfile = laspy.file.File("C:\\Users\\Geri\\Desktop\\Sync\\pythonlas\\mapperclip\\output2.las", mode="w", header=header)
outfile.X = [listx1]
outfile.Y = [listy1]
outfile.Z = [listz1]
outfile.close() 
导入laspy
导入laspy.xml文件
将numpy作为p导入
header=laspy.header.header()
inFile2=laspy.file.file(“C:\\Users\\Geri\\Desktop\\Sync\\pythonlas\\mapperlip\\2clip.las”,mode=“r”)
inFile3=laspy.file.file(“C:\\Users\\Geri\\Desktop\\Sync\\pythonlas\\mapperlip\\3clip.las”,mode=“r”)
点\记录=填充2.点
点\记录=填充3.点
t=0
listx1=p.array([],dtype=float)
listy1=p.array([],dtype=float)
listz1=p.array([],dtype=float)
当t<415时:
z=0
q=0
p=0.1
当z==0时:
xmin=inFile3.x[t]-p
ymin=inFile3.y[t]-p
xmax=inFile3.x[t]+p
ymax=inFile3.y[t]+p
n=0
对于inFile2.points中的点:
ax=inFile2.x[n]
ay=inFile2.y[n]
如果ax>xmin和axymin:
newx=[inFile3.x[t]((inFile3.x[t]-inFile2.x[n])/2)]
newy=[inFile3.y[t]((inFile3.y[t]-inFile2.y[n])/2)]
newz=[inFile3.z[t]((inFile3.z[t]-inFile2.z[n])/2)]
listx1=p.append(listx1,float[newx])
listy1=p.append(listy1,float[newy])
listz1=p.append(listz1,float[newz])
打印列表X1
印刷品
n+=1
q+=1
t+=1
其他:
n+=1
如果q>0:
z+=1
其他:
p+=0.1
outfile=laspy.file.file(“C:\\Users\\Geri\\Desktop\\Sync\\pythonlas\\mapperlip\\output2.las”,mode=“w”,header=header)
outfile.X=[listx1]
outfile.Y=[listy1]
outfile.Z=[listz1]
outfile.close()

在外部
循环开始时,您将
p
设置为
浮动
,而
循环:

p=0.1
它屏蔽了顶部的
numpy
导入:

import numpy as p
因此,在
中,虽然
循环
p
不再是模块,但它是
float
对象,调用
p.append()
调用将失败


为模块或
float
值使用不同的名称。

您在外部
循环开始时将
p
设置为
float
,而
循环:

p=0.1
它屏蔽了顶部的
numpy
导入:

import numpy as p
因此,在
中,虽然
循环
p
不再是模块,但它是
float
对象,调用
p.append()
调用将失败


为模块或浮点值使用不同的名称。

你是对的,我太傻了。。。不幸的是,我遇到了一个新错误:Traceback(最近一次调用last):文件“C:\Users\Geri\Desktop\Sync\pythonlas\envisond.py”,第33行,在listx1=np.append(listx1,float[newx])TypeError:“type”对象没有属性“getitem'>>>@Gary-这是因为您试图用
float[newx]
索引float类型。使用
float(newx)
代替。我取出了float类型,只是这样使用:listx1=np。append(listx1,(newx))代码运行,只有在到达保存部分时才会停止。我将提出另一个问题。谢谢你说得对,我太傻了。。。不幸的是,我遇到了一个新错误:Traceback(最近一次调用last):文件“C:\Users\Geri\Desktop\Sync\pythonlas\envisond.py”,第33行,在listx1=np.append(listx1,float[newx])TypeError:“type”对象没有属性“getitem'>>>@Gary-这是因为您试图用
float[newx]
索引float类型。使用
float(newx)
代替。我取出了float类型,只是这样使用:listx1=np。append(listx1,(newx))代码运行,只有在到达保存部分时才会停止。我将提出另一个问题。感谢您像大多数其他人一样使用
import numpy as np
。像大多数其他人一样使用
import numpy as np