Closed xeolabs closed 5 months ago
I can now extract information from the LAS header (see example JSON below), and can also dynamically transform models loaded from both LAS and XKT/IFC - @Amoki in your experience of working with LAS scans, does anything come to mind concerning how to automatically align scans with IFC models as we load them, using the LAS header information and IFC metadata?
{
"publicHeaderBlock": {
"CreationDay": 87,
"CreationYear": 2017,
"FileSignature": "LASF",
"FileSoureceID": 0,
"GeneratingSoftware": "las2las (version 180706)",
"GlobalEncoding": 0,
"HeaderSize": 227,
"MaxX": 5.63,
"MaxY": 7.55,
"MaxZ": 12.36,
"MinX": -22.990000000000002,
"MinY": -1.97,
"MinZ": -7.9,
"NumberOfPointByReturn": 808042,
"NumberOfPoints": 808042,
"NumberOfVariableLengthRecords": 1,
"OffsetToPointData": 333,
"OffsetX": 0,
"OffsetY": 0,
"OffsetZ": 0,
"PointDataFormatID": 131,
"PointDataRecordLength": 34,
"ScaleFactorX": 0.01,
"ScaleFactorY": 0.01,
"ScaleFactorZ": 0.01,
"SystemIdentifier": "LAStools (c) by rapidlasso GmbH",
"VersionMajor": 1,
"VersionMinor": 2,
"epsg": "undefined",
"variableLengthRecords": -1,
"variableRecords": [
{
"Description": "by laszip of LAStools (180706)",
"RecordId": 22204,
"RecordLengthAfterHeader": 52,
"Reserved": 43707,
"UserId": "laszip encoded"
}
]
}
}
"epsg": "undefined",
Your LAS is not positioned.
If an epsg is defined, then you have to translate both epsg (las and ifc) in the same world coordinates (e.g. Marc Antoine Petit uses https://epsg.io/4326 but without explicitly saying it with an IfcProjectedCRS).
@Amoki yes it seems that the sample LAS I used had no such information. Do you happen to have any sample IFC and LAS files that I could use to develop with?
Unfortunately, no. We did not work on this yet.
When loading a LAS/LAZ file (especially alongside a BIM model), we want to automatically position and align the point cloud within xeokit's double-precision coordinate system.
To do this, we need to read the position/alignment info from the LAS header, then set that on the
SceneModel
position
androtation
properties.We can read that info using the
las-header
library.We want to do this within
LasLoaderPlugin
, and also withinconvert2xkt
(in @xeokit/xeokit-convert) when converting LAS/LAZ to XKT.