Python 如何使用liblas模块填充liblas.point.point对象?
我使用Python来读取、操作和编写一种特殊的点格式Python 如何使用liblas模块填充liblas.point.point对象?,python,lidar,liblas,Python,Lidar,Liblas,我使用Python来读取、操作和编写一种特殊的点格式*.las。我有一根绳子 s = "309437.95 6959999.84 118.98 16 1 1 0 0 1 0 112.992 5.9881" 其中第一个元素是X,第二个元素是Y,第三个元素是Z等 使用Liblas,我创建了一个空的Liblas.point.point对象 >>> pt = liblas.point.Point() >>> pt <liblas.point.Point obj
*.las
。我有一根绳子
s = "309437.95 6959999.84 118.98 16 1 1 0 0 1 0 112.992 5.9881"
其中第一个元素是X
,第二个元素是Y
,第三个元素是Z
等
使用Liblas,我创建了一个空的Liblas.point.point
对象
>>> pt = liblas.point.Point()
>>> pt
<liblas.point.Point object at 0x0000000005194470>
可能用
>>> pt.get_x
<bound method Point.get_x of <liblas.point.Point object at 0x0000000005194470>>
点对象上有
raw_x
、raw_y
和raw_z
属性;只需设置以下各项:
pt.raw_x = 309437.95
pt.raw_y = 6959999.84
pt.raw_z = 118.98
还有x
、y
和z
属性;从源代码中还不清楚这两种类型之间的区别:
pt.x = 309437.95
pt.y = 6959999.84
pt.z = 118.98
但是库可以直接从.las文件为您生成这些对象,不是吗?以前遇到问题的文件
类肯定已经返回了这些对象
由于您已更新以显示一些代码,下面是一个更可读的版本:
pt = liblas.point.Point()
s = map(float, s.split())
pt.x, pt.y, pt.z = s[0], s[1], s[11]
pt.intensity, pt.return_number = s[3], s[4]
pt.number_of_returns, pt.scan_direction = s[5], s[6]
pt.flightline_edge, pt.classification = s[7], s[8]
pt.scan_angle = s[9]
点对象上有
raw_x
、raw_y
和raw_z
属性;只需设置以下各项:
pt.raw_x = 309437.95
pt.raw_y = 6959999.84
pt.raw_z = 118.98
还有x
、y
和z
属性;从源代码中还不清楚这两种类型之间的区别:
pt.x = 309437.95
pt.y = 6959999.84
pt.z = 118.98
但是库可以直接从.las文件为您生成这些对象,不是吗?以前遇到问题的文件
类肯定已经返回了这些对象
由于您已更新以显示一些代码,下面是一个更可读的版本:
pt = liblas.point.Point()
s = map(float, s.split())
pt.x, pt.y, pt.z = s[0], s[1], s[11]
pt.intensity, pt.return_number = s[3], s[4]
pt.number_of_returns, pt.scan_direction = s[5], s[6]
pt.flightline_edge, pt.classification = s[7], s[8]
pt.scan_angle = s[9]
看看这个类,它看起来好像是要与C库接口的,而不是直接使用的..也许你需要得到这样的点pt.get_x()@IshikawaYoshi:the
get_x
和set_x
方法是由x
属性使用的pt.x=something
将调用set\ux
,print pt.x
将调用get\ux
。不需要直接给他们打电话。:-)是的,我已经理解了我的错误)看看这个类,它看起来好像是为了与C库接口,而不是直接使用..也许你需要像这样得到点pt.get_x()@IshikawaYoshi:theget_x
和set_x
方法由x
属性使用pt.x=something
将调用set\ux
,print pt.x
将调用get\ux
。不需要直接给他们打电话。:-)是的,我已经理解了我的错误)是的,它起作用了。也许这不是我用这种方式编写的优雅代码(见上图)@Gianni:x属性使用的方法;例如,它是在访问pt.x
时调用的函数。如果我希望创建一个新字段(字段x、y、z和h)。我能做到这一点吗?@Gianni:当然,但我怀疑你想先学习更多Python.:-)请参阅,了解这个特殊技巧是如何工作的。sry,了解中断您的讨论,但我认为在liblas模块中,我们已经有了这样解析字符串的方法是的,它可以工作。也许这不是我用这种方式编写的优雅代码(见上图)@Gianni:x属性使用的方法;例如,它是在访问pt.x
时调用的函数。如果我希望创建一个新字段(字段x、y、z和h)。我能做到这一点吗?@Gianni:当然,但我怀疑你想先学习更多Python.:-)请参阅以了解该技巧是如何工作的。sry可中断您的讨论,但我认为在liblas模块中,我们已经有了这样解析字符串的方法