# tf\_load\_point\_cloud Loads one or more `las` or `laz` point cloud/LiDAR files from a local file or directory source, optionally tranforming the output SRID to `out_srs` (if not specified, output points are automatically transformed to EPSG:4326 lon/lat pairs). If `use_cache` is set to `true`, an internal point cloud-specific cache will be used to hold the results per input file, and if queried again will significantly speed up the query time, allowing for interactive querying of a point cloud source. If the results of `tf_load_point_cloud` will only be consumed once (for example, as part of a `CREATE TABLE` statement), it is highly recommended that `use_cache` is set to `false` or left unspecified (as it is defaulted to `false`) to avoid the performance and memory overhead incurred by used of the cache. The bounds of the data retrieved can be optionally specified with the `x_min`, `x_max`, `y_min`, `y_max` arguments. These arguments can be useful when the user desires to retrieve a small geographic area from a large point-cloud file set, as files containing data outside the bounds of the specified bounding box will be quickly skipped by `tf_load_point_cloud`, only requiring a quick read of the spatial metadata for the file. ``` SELECT * FROM TABLE( tf_load_point_cloud( path => , [out_srs => , use_cache => , x_min => , x_max => , y_min => , y_max => ] ) ) ``` **Input Arguments** | Parameter | Description | Data Types | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | | `path` | The path of the file or directory containing the las/laz file or files. Can contain globs. Path must be in `allowed-import-paths`. | TEXT ENCODING NONE | | `out_srs` (optional) | EPSG code of the output SRID. If not specified, output points are automatically converted to lon/lat (EPSG 4326). | TEXT ENCODING NONE | | `use_cache` (optional) | If true, use internal point cloud cache. Useful for inline querying of the output of `tf_load_point_cloud`. Should turn off for one-shot queries or when creating a table from the output, as adding data to the cache incurs performance and memory usage overhead. If not specified, is defaulted to `false`/off. | BOOLEAN | | `x_min` (optional) | Min x-coordinate value (in degrees) for the output data. | DOUBLE | | `x_max` (optional) | Max x-coordinate value (in degrees) for the output data. | DOUBLE | | `y_min`(optional) | Min y-coordinate value (in degrees) for the output data. | DOUBLE | | `y_max` (optional) | Max y-coordinate value (in degrees) for the output data. | DOUBLE | **Output Columns** | Name | Description | Data Types | | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | | `x` | Point x-coordinate | Column\ | | `y` | Point y-coordinate | Column\ | | `z` | Point z-coordinate | Column\ | | `intensity` | Point intensity | Column\ | | `return_num` | The ordered number of the return for a given LiDAR pulse. The first returns (lowest return numbers) are generally associated with the highest-elevation points for a LiDAR pulse, i.e. the forest canopy will generally have a lower `return_num` than the ground beneath it. | Column\ | | `num_returns` | The total number of returns for a LiDAR pulse. Multiple returns occur when there are multiple objects between the LiDAR source and the lowest ground or water elevation for a location. | Column\ | | `scan_direction_flag` | From the [ASPRS LiDAR Data Exchange Format Standard](http://www.asprs.org/a/society/committees/standards/asprs_las_format_v10.pdf): "The scan direction flag denotes the direction at which the scanner mirror was traveling at the time of the output pulse. A bit value of 1 is a positive scan direction, and a bit value of 0 is a negative scan direction." | Column\ | | `edge_of_flight_line_flag` | From the [ASPRS LiDAR Data Exchange Format Standard](http://www.asprs.org/a/society/committees/standards/asprs_las_format_v10.pdf): "The edge of flight line data bit has a value of 1 only when the point is at the end of a scan. It is the last point on a given scan line before it changes direction." | Column\ | | `classification` | From the [ASPRS LiDAR Data Exchange Format Standard](http://www.asprs.org/a/society/committees/standards/asprs_las_format_v10.pdf): "The classification field is a number to signify a given classification during filter processing. The ASPRS standard has a public list of classifications which shall be used when mixing vendor specific user software." | Column\ | | `scan_angle_rank` | From the [ASPRS LiDAR Data Exchange Format Standard](http://www.asprs.org/a/society/committees/standards/asprs_las_format_v10.pdf): "The angle at which the laser point was output from the laser system, including the roll of the aircraft... The scan angle is an angle based on 0 degrees being NADIR, and –90 degrees to the left side of the aircraft in the direction of flight." | Column\ | **Example A** ``` CREATE TABLE wake_co_lidar_test AS SELECT * FROM TABLE( tf_load_point_cloud( path => '/path/to/20150118_LA_37_20066601.laz' ) ); ``` **Example B** ``` SELECT x, y, z, classification FROM TABLE( tf_load_point_cloud( path => '/path/to/las_files/*.las', out_srs => 'EPSG:4326', use_cache => true, y_min => 37.0, y_max => 38.0, x_min => -123.0, x_max => -122.0 ) ) ``` ![LiDAR data from downtown Tallahassee, FL, colored by Z-value](https://files.buildwithfern.com/heavyai.docs.buildwithfern.com/heavyai/35bccdcace0882e61f01b67f4a6966bd2bff5fb440ce4d126572ce034abb08eb/docs/assets/tallahassee_lidar.png)