I have found instructions for creating a las file by opening an existing file, modifying it, then re-saving it.
This re-uses the headers from the original file.
But how do I create a new file from scratch without loading another in the first place? I cannot see any documentation on the required format for the file, points, or headers.
I only need the bare minimum: x,y,z position for each point.
Here is how I assumed it might work…
import numpy as np
import laspy
import laspy.header
import laspy.file
points = []
#x,y,z values
points.append([0,0,10])
points.append([1,0,10])
points.append([2,0,11])
header = laspy.header.Header()
outFile = laspy.file.File("./output.las", mode = "w", header = header)
outFile.points = np.array(points)
outFile.close()
This fails with:
-> outFile.points = np.array(points)
/laspy/file.py
-> self._writer.set_points(new_points)
laspy/base.py
-> self.data_provider._pmap[:] = points[:]
ValueError: could not broadcast input array from shape (3,3) into shape (3)
Could anyone kindly point to some sample code or tips to get this working?