首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性错误浮点对象没有属性'append‘

属性错误浮点对象没有属性'append‘
EN

Stack Overflow用户
提问于 2015-09-30 02:35:05
回答 1查看 11.1K关注 0票数 1

我尝试使用此代码打开LAS文件,进行更改,然后将结果保存到一个新的LAS文件中。las文件包含具有坐标(X和Y)和值(如Z表示高程)的点。不幸的是,如果我不将保存部分放入代码中,代码就会正常工作,但当我像下面这样做时,我得到了以下错误:

代码语言:javascript
复制
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

到目前为止,我知道我需要一个数组来将值保存到代码末尾的las文件中:

代码语言:javascript
复制
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() 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-30 02:36:02

在外部while循环开始时,将p设置为float

代码语言:javascript
复制
p=0.1

这将在顶部屏蔽numpy导入:

代码语言:javascript
复制
import numpy as p

因此,在while循环中,p不再是模块,它是一个float对象,调用p.append()调用将失败。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32851388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档