Method of processing raw data file having unprocessed data captured by a lidar sensor

The method uses mutable table structures to align with lidar data formats, addressing compatibility and computational challenges in processing lidar data, ensuring efficient and consistent data delivery and analysis.

WO2025210104A1PCT designated stage Publication Date: 2025-10-09FNV IP BV
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/059026
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-05
Filing Date
2025-04-02
Publication Date
2025-10-09

AI Technical Summary

Technical Problem

Processing lidar raw data to ensure compatibility and consistency with the original format while preserving metadata and attributes is challenging due to varying point formats and versions, leading to computational overhead and potential data loss.

Method used

A method involving the use of mutable table structures aligned with point formats to read, modify, and store lidar data, allowing for flexible and efficient processing without increasing memory overhead, and enabling writing back to LAS files with different point types.

Benefits of technology

Ensures compatibility and consistency of processed lidar data with the original format, minimizing computational overhead and data loss, while allowing for standardized data delivery and analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025059026_09102025_PF_FP_ABST
    Figure EP2025059026_09102025_PF_FP_ABST
Patent Text Reader

Abstract

A method of processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor is disclosed. The method is performed by a processor and comprises the steps of: reading a header section of the raw data file to obtain a number of point records in the raw data file, a point format of the point records and bounding box of the point records; defining a mutable table structure, based on the point format of the point records, for storing point records; reading point records one by one based on a starting position of the point records and the point format indicated by the header section; modifying an attribute of the read point records; storing the point records with the modified attribute to the table. Unlocking insights from Geo-Data, the present invention further relates to improvements in sustainability and environmental developments: together we create a safe and liveable world.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD OF PROCESSING RAW DATA FILE HAVING UNPROCESSED DATA CAPTURED BY A LIDAR SENSORFIELD OF THE INVENTION

[0001] The present disclosure generally relates to a method of and a device for processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor. Unlocking insights from Geo-Data, the present invention further relates to improvements in sustainability and environmental developments: together we create a safe and liveable world.BACKGROUND OF THE INVENTION

[0002] Light Detection and Ranging, lidar, is a remote sensing technology that uses laser pulses to measure distances to the Earth's surface and create highly detailed 3D representations of terrain, objects, and structures. Lidar data is commonly stored in various file formats, with LAS (Lidar LASer) being one of the most widely used formats in the industry.

[0003] Lidar data, stored in LAS format, typically consists of a collection of 3D points, known as a point cloud. Each point in the point cloud represents a location in 3D space and is defined by its X, Y, and Z coordinates. Additionally, each point may contain attributes such as intensity, return number, classification, and GPS time.

[0004] LAS files have a structured format that includes a header section and a data section. The header section contains metadata about the lidar data, such as the number of points, point format, coordinate reference system, scale factors, and offset values. The data section contains the actual point cloud data, organized in records according to the specified point format.

[0005] LAS files support multiple point formats, which define the attributes stored for each point in the point cloud. Common attributes include X, Y, and Z coordinates (required for all point formats), intensity, return number, classification, scan angle, and user-defined fields. Different point formats allow for flexibility in storing and representing Lidar data, depending on the specific requirements of the application.

[0006] One of the key features of lidar data stored in LAS format is the classification of points into different categories based on their characteristics. Points may be classified into categories such as ground, vegetation, buildings, water, and unclassified. Classification codesprovide valuable information for terrain modelling, vegetation analysis, urban planning, and other applications.

[0007] Lidar data stored in LAS format provides a standardized and structured representation of 3D point cloud data, enabling efficient storage, transmission, and analysis of highly detailed spatial information for a wide range of applications in fields such as geospatial mapping, environmental monitoring, infrastructure planning, and natural resource management.

[0008] When a survey project involving lidar is conducted, it is common for the performing company to present the lidar data to another entity, such as the client commissioning the project. This necessity arises due to several factors. Firstly, the client requires access to the lidar data to ensure project oversight and monitor progress effectively. Secondly, presenting the lidar data fosters transparency and accountability, demonstrating the performing company's commitment to delivering quality results.

[0009] Moreover, the client may need to verify the accuracy and integrity of the data to ensure it aligns with project specifications and meets their expectations. Additionally, access to the lidar data enables the client to make informed decisions based on the insights derived from the data, supporting various project-related activities such as land management, infrastructure planning, and environmental assessment.

[0010] Before presenting the lidar data to the client, the company needs to process the Lidar data so that it meets the client's requirements and expectations. This processing is needed for several reasons. Firstly, raw lidar data often contains noise, errors, and inconsistencies that need to be filtered, corrected, or removed to ensure data quality and accuracy. Processing the data involves applying algorithms and techniques such as point cloud classification, filtering, and interpolation to enhance the quality and usability of the data.

[0011] Additionally, processing the lidar data allows for the extraction of relevant information and features, such as terrain models, vegetation maps, and building footprints, which are valuable for the client's specific applications and analysis.

[0012] Furthermore, processing the data enables the conversion of the raw point cloud into standardized formats, such as LAS, making it compatible with the client's software and tools for further analysis and visualization.

[0013] When processing raw lidar data and then writing the processed data back to the original lidar data format may be challenging due to the following factors.

[0014] The original lidar data format may have specific requirements, constraints, or limitations that must be adhered to when writing the processed data back to the format. It isgenerally necessary to ensure compatibility between the processed data and the original format while preserving essential metadata and attributes.

[0015] Processing may result in changes to the structure or organization of the data, such as reordering points, adding or removing attributes, or applying compression techniques. In delivering the data to the client it has to ensure that the processed data structure remains consistent with the original format while accommodating changes introduced during processing can be challenging.

[0016] Lidar data formats may have multiple versions or revisions with different specifications and features. Ensuring compatibility between the processed data and the specific version of the original format used by the client or downstream applications is also needed to prevent compatibility issues and ensure seamless integration.

[0017] There is a need for an improved method for processing lidar raw data which allows the processed lidar raw data to be delivered in a more detailed and structure format.BRIEF SUMMARY OF THE INVENTION

[0018] In one aspect of the invention there is provided a method of processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor, the method performed by a processor and comprising the steps of:

[0019] - reading a header section of the raw data file to obtain a number of point records in the raw data file and a point format of the point records;

[0020] - defining a mutable table structure, based on the point format of the point records, for storing point records;

[0021] - reading point records one by one based on a starting position of the point records and the point format indicated by the header section;

[0022] - modifying an attribute of the read point records;

[0023] - storing the point records with the modified attribute to the table.

[0024] The present disclosure is based on the inventors’ insight that a raw data file storing lidar data can be read and stored in a format that presents the lidar data in a more detailed and structured way, if a table structure specifically associated with the point format of the data file is defined accordingly.

[0025] Based on the above idea, when reading the raw lidar data file, the point format of the point records is obtained by reading the header section of the file, which allows a tablestructure that specifically corresponds to the point format to be created. The method of the present disclosure then read the point records and where necessary, modifies one or more attribute of the read point records. The point records are then stored with the modified attribute to the table.

[0026] The method therefore allows the lidar data to be processed in a way necessary without increasing memory overhead of changing values of some points.

[0027] In an example of the present disclosure, the step of defining comprises defining a mutable table structure that aligns with fields defined by the point format.

[0028] Depending on a specific format as adopted by the raw data file, which may be based on different format specified by different versions of a standard, the format may compromise different fields for different attributes of the stored point records. Therefore, the defined mutable table structure is aligned with the point format in which the raw data is organized.

[0029] In a sense, different table structure can be defined for raw files with data stored different point formats. This increases the flexibility of the method of the present disclosure.

[0030] This term “align” as used herein means the created tabular structure mirrors the fields of the point format, which helps to ensure consistency and compatibility between the two representations of the data. Besides, it allows all fields of the point data to be presented, this is in contrast to conventional methods which allows only limited data, such as coordinates of the points to be presented.

[0031] In an example of the present disclosure, the step of reading records of the points comprises: iteratively reading each point record sequentially through the raw data file by reading binary data for each point record and decoding it according to the point format indicated by the header section of the raw data file.

[0032] With the table structure defined, the method reads the point records from the raw data file one by one. This involves iterating through the raw data file, parsing each point record based on the specified point format, and extracting relevant attributes.

[0033] In an example of the present disclosure, the step of modifying comprises converting coordinate system of geographical locations of the point records from a first system to a second system.

[0034] As the point records are read, the method has the capability to modify certain attributes of the points as needed. This could involve adjusting attributes such as point coordinates, intensity values, classification codes, or other metadata. One specifically advantageous example is to convert the coordinate system of geographical locations of the point records from a less frequently used system to a more frequently used system, such asfrom feet to meters. This will facilitate subsequent data processing to be performed on the point records data.

[0035] Following the above, in an example of the present disclosure, the first system comprises imperial units, and the second system comprises metric system, or vice versa.

[0036] In an example of the present disclosure, the step of modifying is performed after the step of storing.

[0037] It is not necessary that the modification of an attribute of the point data takes place before saving the read data to the table. This may also happen after the data is saved to the table, which can be conveniently implemented by using the mutable table structure.

[0038] In an example of the present disclosure, the mutable table structure comprises mutable structs defined using one of Julia, C / C++, Python, JavaScript, and Ruby.

[0039] The mutable structs or similar concepts are available in many programming languages, they may be implemented differently or have different names depending on the language.

[0040] In an example of the present disclosure, each struct has data type for each point format recorded following the related standard.

[0041] This allows the different fields of the point records data to be handled easily.

[0042] In an example of the present disclosure, the raw data file comprises LAS file.

[0043] Lidar data when save in LAS files can be read and processed using the method of the present conveniently.

[0044] In an example of the present disclosure, the related standard comprises LAS Specification 1.3 and 1.4.

[0045] The specifications define the different data formats, which can all be processed based on the present method.

[0046] In an example of the present disclosure, the method further comprises a step of modifying data in the table.

[0047] The data after being read from the raw file, and after necessary processing, may be modified as needed.

[0048] In an example of the present disclosure, the method further comprises a step of writing the modified data back to an updated LAS file.

[0049] This helps to keep the processed data in a standard format, which can be for example delivered to the clients where necessary.

[0050] In an example of the present disclosure, the step of writing comprises:

[0051] - writing, for each point records, associated data, to a pre-allocated array of bytes;

[0052] - writing the array to the updated LAS file.

[0053] The processing following these steps helps to keep the I / O overhead minimized.

[0054] A second aspect of the present disclosure provides a device for processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor, the device comprising a processor for performing the method according to the first aspect of the present disclosure.

[0055] A second aspect of the present disclosure provides a computer program product, comprising a computer readable storage medium storing instructions which, when executed on at least one processor, cause the at least one processor to carry out the method according to the first aspect of the present disclosure.

[0056] The above mentioned and other features and advantages of the disclosure will be best understood from the following description referring to the attached drawings. In the drawings, like reference numerals denote identical parts or parts performing an identical or comparable function or operation.BRIEF DESCRIPTION OF THE DRAWINGS

[0057] In order to describe the manner in which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only exemplary embodiments of the disclosure and are therefore not to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:

[0058] FIG. 1 schematically illustrate, in a flow chart, a method of processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor in accordance with the present disclosure.DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

[0059] Embodiments contemplated by the present disclosure will now be described in more detail with reference to the accompanying drawings. The disclosed subject matter should not be construed as limited to only the embodiments set forth herein. Rather, the illustratedembodiments are provided by way of example to covey the scope of the subject matter to those skilled in the art.

[0060] LAS (Lidar Binary) is a widely used file format for storing lidar data, which represents 3D point cloud information collected from the Earth's surface. It provides a standardized way to organize and store different types of lidar data within LAS files, enabling interoperability and compatibility across various lidar systems and software applications.

[0061] A LAS file is structured with a public header block, any number of optional Variable Length Records, VLRs, Point Data Records, and any number of optional Extended Variable Length Records EVLRs.

[0062] The header block contains generic information such as number of points, number of VLRs etc. The VLRs contain variable types of data including projection information, metadata, waveform packet information, and user application data, the set of point records and The EVLRs are bigger versions of VLRs that can have more information like waveform data packets. LAS point records are stored in series, where each point will have a block of bytes that contains that point’s information.

[0063] LAS Specification as published by The American Society for Photogrammetry & Remote Sensing now is at LAS specification 1.4, and there are also legacy versions LAS 1.1 through LAS 1.3. LAS 1.1 through LAS 1.3 specify point record types 0 to 5, and LAS 1.4 introduces new point types 6 tolO.

[0064] Depending on the version of the LAS specification and the adopted point type, LAS files organize point cloud data into various point types, each serving different purposes and containing different attributes.

[0065] Having LAS files with different point types can pose several challenges when it comes to reading and writing the data.

[0066] First of all, with multiple point types, parsing the LAS file becomes more complex as a software must be able to identify and interpret each point type correctly. This increases the computational overhead and complexity of the parsing algorithm.

[0067] Moreover, each point type may have a different structure and set of attributes, requiring varying amounts of memory for storage. Managing memory efficiently becomes more difficult, especially when dealing with large LAS files containing millions or billions of points with different types.

[0068] Additionally, software applications must be updated to support new point types introduced in newer versions of the LAS specification. Older software may not recognize orproperly handle newer point types, leading to compatibility issues and potential data loss or corruption.

[0069] There may also be problem ensuring the integrity and consistency of the data when reading and writing different point types. Any errors or inconsistencies in parsing or interpreting the point types can lead to inaccuracies in the processed data and affect downstream analysis and applications.

[0070] In the present disclosure, a method is proposed that allows a user to load data from a LAS file without needing to explicitly know about or handle the point format. Moreover, the method can be used to write processed lidar data to a LAS file with point type as needed.

[0071] All point formats as specified in the LAS 1.4 specification can be handled based on the method of the present disclosure. The method of the present disclosure may also be used to handle any point formats to be developed in the future. Specifically, each point format is implemented as a separate mutable structs.

[0072] The concept of mutable structs as used in the present disclosure refers to data structure in programming languages that allows for the creation of objects whose fields or attributes can be modified after the object has been instantiated. In simpler terms, a mutable struct is a type of structure or container that can hold data, and the data stored within it can be changed or updated.

[0073] In the following, the present disclosure will be described with reference to Julia language as an exemplary language, however, the present is not limited to Julia language but can be implemented using any language that support mutable data structures.

[0074] For mutable structs in Julia, they are objects with fields / attributes that can be modify after being created. This helps to minimise the memory overhead of changing the values of some points. Each of these structs has the data type for each point format (e.g. the x, y, z coordinates of points) recorded to ensure compliance with the LAS specification.

[0075] FIG. 1 schematically illustrate, in a flow chart, a method 10 of processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor in accordance with the present disclosure.

[0076] When reading a LAS file, the method starts with step 11, in which the header of the LAS file is read to obtain a number of point records and a point format of point record.

[0077] The header contains metadata about the point cloud data, including the number of points, the format of the points, the bounding box that defines the spatial extent of the points, and other relevant information.

[0078] After reading the header, the process optionally continues by reading the Variable Length Records (VLRs) from the LAS file. VLRs contain additional metadata or user-defined information that may be included in the file. These records are stored as native Julia structures, allowing for easy access and manipulation.

[0079] When the point format of the point records is available, at step 12, a table structure for storing the point records is created based on the point format.

[0080] To facilitate easy processing of the raw data which may be stored according to different format by following different versions of the specification, a table structure adapted to each point format of lidar point records can be created for the point format. This allows a use using the method of the present disclosure to read and write the LAS file without knowing explicitly the format of the data contained in the file itself.

[0081] With the header and VLRs processed, the next step 13 is to read all the point records from the LAS file. The point records contain the actual 3D coordinates, intensity values, and other attributes of each point in the point cloud. The format of the point records is determined based on the format specified in the header.

[0082] As an example, each point record is sequentially read through the raw data file by reading binary data for each point record and decoding it according to the point format indicated by the header section of the raw data file. The reading step is iteratively performed to read all point records.

[0083] Once all the point records are read, an additional step 14 may be performed to modify or more attribute of the read point records. This is used to bring the raw lidar data to a format allowing easier processing. As an example, the coordinate system of the points' positions is converted from feet into meters. This ensures that the spatial measurements of the points are consistent and standardized, which is essential for further analysis and visualization.

[0084] At step 15, all the read point record data, possibly with the modified attribute is saved to the table structure. It is noted that the modification of one or more attributes of the read point records may be performed before or after saving the point data to the table.

[0085] All the processed data, including the points, header information, and VLRs, are wrapped in a Julia struct. This struct serves as a container for organizing and storing the data in a structured format, making it easier for users to access and work with the LAS data.

[0086] When a user explicitly uses the method of the present disclosure, which may be in the form of for example a function provided by a software package, a table containing points on rows and point fields on columns, is returned, in which only the point data is returned. Thisallows users to directly access and work with the point cloud data without needing to handle the header or VLRs separately.

[0087] Unlike conventional method where certain combinations of point features, like position with intensity, classification, return number, etc. are not available, the method of the present disclosure allows all features of the point records to be returned and displayed. The user therefore has a clearer view of the features of the point cloud data, which also facilitates further processing of the lidar data.

[0088] After the LAS point cloud data has been read, the data can be processed and converted into a suitable format for analysis or visualization. The processed point cloud data can be analyzed to extract useful information such as terrain elevation, vegetation coverage, building structures, or other features of interest. Point cloud data can be visualized using specialized software tools or libraries. This allows users to interactively explore and interpret the spatial information captured by the lidar sensor. Moreover, point cloud data can be integrated with Geographic Information Systems (GIS) for spatial analysis and decisionmaking.

[0089] Where necessary, during the processing of the data, data in the table can be modified at step 16.

[0090] The processed point cloud data can be exported to various file formats for interoperability with other software tools or systems. The processed point cloud data may also be written back to a LAS (Lidar Binary) file format if needed. This is particularly useful when modifications or annotations have been made to the data during processing and the user wants to preserve these changes in a standardized format. Writing back to a LAS file ensures that the data remains compatible with other lidar software and can be easily shared or archived for future use.

[0091] The method of the present disclosure may also be used to write the processed lidar data back to a LAS file at step 17. The processed data may be written to a LAS file with a point type different than the original file, which allows more flexibility of delivering project results to clients.

[0092] Following the method of the present disclosure, the writing process is split into two stages to minimize Input / Output (I / O) overhead. During the first stage of writing, a preallocated array of bytes is created. This array serves as a buffer to hold the data before it is written to the file. For each point to be written, the bytes corresponding to that point are stored in the array at the correct location. Once the array is fully populated with the data for all points, it is then written out to the file in a single operation. This approach ensures that writing to thefile involves only one write operation, reducing the overall I / O overhead and improving the efficiency of the writing process.

[0093] The invention has been described by reference to certain embodiments discussed above. It will be recognized that these embodiments are susceptible to various modifications and alternative forms well known to those of skill in the art.

[0094] Further modifications in addition to those described above may be made to the structures and techniques described herein without departing from the spirit and scope of the invention. Accordingly, although specific embodiments have been described, these are examples only and are not limiting upon the scope of the invention.

Claims

CLAIMS1. A method of processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor, the method performed by a processor and comprising the steps of: reading a header section of the raw data file to obtain a number of point records in the raw data file, a point format of the point records; defining a mutable table structure, based on the point format of the point records, for storing point records; reading point records one by one based on a starting position of the point records and the point format indicated by the header section; modifying an attribute of the read point records; storing the point records with the modified attribute to the table.

2. The method according to claim 1, wherein the step of defining comprises: defining a mutable table structure that aligns with fields defined by the point format.

3. The method according to claim 2, the defined mutable table structure mirrors the fields of the point format.

4. The method according to any of the previous claims, wherein the step of reading records of the points comprises: iteratively reading each point record sequentially through the raw data file by reading binary data for each point record and decoding it according to the point format indicated by the header section of the raw data file.

5. The method according to any of the previous claims, wherein the step of modifying comprises converting coordinate system of geographical locations of the point records from a first system to a second system.

6. The method according to claim 5, wherein the first system comprises imperial units, and the second system comprises metric system, or vice versa.

7. The method according to any of the previous claims, wherein the table structure comprises mutable structs defined using one of Julia, C / C++, Python, JavaScript, and Ruby language.

8. The method according to claim 7, wherein each struct has data type for each point format recorded following the related standard.

9. The method according to any of the previous claims, wherein the raw data file comprises LAS file.

10. The method according to any of the previous claims 2 to 9, wherein the related standard comprises LAS Specification 1.3 and 1.4.

11. The method according to any of the previous claims, further comprising a step of modifying data in the table.

12. The method according to claim 11, further comprising a step of writing the modified data back to an updated LAS file.

13. The method according to claim 12, wherein the step of writing comprises: writing, for each point records, associated data, to a pre-allocated array of bytes; writing the array to the updated LAS file.

14. A device for processing a raw data file having unprocessed data in a specific data structure and captured by a Light Detection and Ranging, lidar, sensor, the device comprising a processor for performing the method according to any of the previous claims 1 to 13.

15. A computer program product, comprising a computer readable storage medium storing instructions which, when executed on at least one processor, cause the at least one processor to carry out the method according to any of the claims 1 to 13.

Citation Information

Patent Citations

  • Adaptive real-time streaming for autonomous vehicles

    US20220210228A1