如何将激光雷达格式 las 转换为 data.frame?

发布于 2025-01-15 07:46:36 字数 872 浏览 1 评论 0原文

激光雷达数据只是 3D 坐标,通常采用 las 文件格式。内容示例

library(rgdal)
library(raster)
library(tmap)
library(tmaptools)
library(lidR)
library(RStoolbox)
las_cat <- readLAScatalog("C:/1/078-638.las")
summary(las_cat)
opt_chunk_size(las_cat) <- 500
plot(las_cat, chunk_pattern = TRUE)
las_cat
#> class       : LAScatalog (v1.2 format 1)
#> extent      : 637999, 638240.5, 6077999, 6079999 (xmin, xmax, ymin, ymax)
#> coord. ref. : NA 
#> area        : 483081.1 units²
#> points      : 3.68 million points
#> density     : 7.6 points/units²
#> density      : 5.6 pulses/units²
#> num. files  : 1

有没有办法在 R 的典型 data.frame 中获取点坐标? 作为示例,我们可以使用来自此 http://data.wvgis.wvu.edu/elevation/ 的数据。 另外,有没有办法从激光雷达文件中获取data.frame中的反射角度、反射次数?

Lidar data is simply 3d coordinates, usually in las file format. Сontent example

library(rgdal)
library(raster)
library(tmap)
library(tmaptools)
library(lidR)
library(RStoolbox)
las_cat <- readLAScatalog("C:/1/078-638.las")
summary(las_cat)
opt_chunk_size(las_cat) <- 500
plot(las_cat, chunk_pattern = TRUE)
las_cat
#> class       : LAScatalog (v1.2 format 1)
#> extent      : 637999, 638240.5, 6077999, 6079999 (xmin, xmax, ymin, ymax)
#> coord. ref. : NA 
#> area        : 483081.1 units²
#> points      : 3.68 million points
#> density     : 7.6 points/units²
#> density      : 5.6 pulses/units²
#> num. files  : 1

Is there a way to get point coordinates in a typical data.frame for R?
As an example we can use data from this http://data.wvgis.wvu.edu/elevation/.
Also, is there a way to get the angle of reflection, the number of reflections in the data.frame from the lidar file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木槿暧夏七纪年 2025-01-22 07:46:36

请找到以下一种可能的解决方案来获取包含所有信息的 data.table,data.frame。您可以使用 as.data.frame() 来获取纯 data.frame,但 data.table data.frame

Reprex

注意:我使用了 lidR 库中构建的 .las 数据集因为它更方便。

  • 来自的示例数据集lidR
library(lidR)

LASfile <- system.file("extdata", "example.laz", package="rlas")
las <- readLAS(LASfile)

summary(las)
#> class        : LAS (v1.0 format 1)
#> memory       : 21.2 Kb 
#> extent       : 339002.9, 339015.1, 5248000, 5248001 (xmin, xmax, ymin, ymax)
#> coord. ref.  : NAD83 / UTM zone 17N 
#> area         : 16 m²
#> points       : 30  points
#> density      : 1.88 points/m²
#> density      : 1.62 pulses/m²
#> File signature:           LASF 
#> File source ID:           0 
#> Global encoding:
#>  - GPS Time Type: GPS Week Time 
#>  - Synthetic Return Numbers: no 
#>  - Well Know Text: CRS is GeoTIFF 
#>  - Aggregate Model: false 
#> Project ID - GUID:        00000000-0000-0000-0000-000000000000 
#> Version:                  1.0
#> System identifier:        LAStools (c) by rapidlasso GmbH 
#> Generating software:      las2las (version 201011) 
#> File creation d/y:        343/2011
#> header size:              227 
#> Offset to point data:     323 
#> Num. var. length record:  1 
#> Point data format:        1 
#> Point data record length: 28 
#> Num. of point records:    30 
#> Num. of points by return: 26 4 0 0 0 
#> Scale factor X Y Z:       0.001 0.001 0.001 
#> Offset X Y Z:             6e+05 6500000 0 
#> min X Y Z:                339002.9 5248000 973.145 
#> max X Y Z:                339015.1 5248001 978.345 
#> Variable Length Records (VLR):
#>    Variable Length Record 1 of 1 
#>        Description: by LAStools of rapidlasso GmbH 
#>        Tags:
#>           Key 1024 value 1 
#>           Key 3072 value 26917 
#>           Key 3076 value 9001 
#>           Key 4099 value 9001 
#> Extended Variable Length Records (EVLR):  void
  • 建议的代码
payload(las)
  • 输出
#>          Z  gpstime Intensity ReturnNumber NumberOfReturns ScanDirectionFlag
#> 1  975.589 269347.3        82            1               1                 1
#> 2  974.778 269347.3        54            1               1                 1
#> 3  974.471 269347.3        27            2               2                 1
#> 4  974.025 269347.3        55            2               2                 1
#> 5  974.298 269347.3       117            1               1                 0
#> 6  974.985 269347.3        81            1               1                 0
#> 7  975.182 269347.3        84            1               1                 1
#> 8  974.434 269347.3       104            1               1                 1
#> 9  974.159 269347.3        91            1               1                 1
#> 10 973.145 269347.3        99            1               1                 1
#> 11 976.739 269347.5        87            1               1                 1
#> 12 976.823 269347.5        83            1               1                 1
#> 13 977.227 269347.5        87            1               1                 1
#> 14 975.873 269347.5        87            1               1                 1
#> 15 975.782 269347.5       107            1               1                 1
#> 16 975.353 269347.5        76            1               1                 1
#> 17 974.704 269347.5       113            1               1                 1
#> 18 977.170 269347.5        64            1               1                 0
#> 19 977.757 269347.5        89            1               1                 0
#> 20 978.212 269347.5        98            1               1                 0
#> 21 978.309 269347.5        50            1               2                 0
#> 22 974.816 269347.5        31            2               2                 0
#> 23 978.345 269347.5        51            1               2                 1
#> 24 974.824 269347.5        32            2               2                 1
#> 25 978.014 269347.5        85            1               1                 1
#> 26 977.781 269347.5        94            1               1                 1
#> 27 976.455 269347.5        78            1               1                 1
#> 28 976.313 269347.7        71            1               1                 1
#> 29 975.735 269347.7        75            1               1                 1
#> 30 975.674 269347.7       106            1               1                 1
#>    EdgeOfFlightline Classification Synthetic_flag Keypoint_flag Withheld_flag
#> 1                 1              1          FALSE         FALSE         FALSE
#> 2                 0              1          FALSE         FALSE         FALSE
#> 3                 0              1          FALSE         FALSE         FALSE
#> 4                 0              1          FALSE         FALSE         FALSE
#> 5                 0              1          FALSE         FALSE         FALSE
#> 6                 0              1          FALSE         FALSE         FALSE
#> 7                 1              1          FALSE         FALSE         FALSE
#> 8                 0              1          FALSE         FALSE         FALSE
#> 9                 0              1          FALSE         FALSE         FALSE
#> 10                0              1          FALSE         FALSE         FALSE
#> 11                1              1          FALSE         FALSE         FALSE
#> 12                0              1          FALSE         FALSE         FALSE
#> 13                0              1          FALSE         FALSE         FALSE
#> 14                0              1          FALSE         FALSE         FALSE
#> 15                0              1          FALSE         FALSE         FALSE
#> 16                0              1          FALSE         FALSE         FALSE
#> 17                0              1          FALSE         FALSE         FALSE
#> 18                0              1          FALSE         FALSE         FALSE
#> 19                0              1          FALSE         FALSE         FALSE
#> 20                0              1          FALSE         FALSE         FALSE
#> 21                0              1          FALSE         FALSE         FALSE
#> 22                0              2          FALSE         FALSE         FALSE
#> 23                1              1          FALSE         FALSE         FALSE
#> 24                1              2          FALSE         FALSE         FALSE
#> 25                0              1          FALSE         FALSE         FALSE
#> 26                0              1          FALSE         FALSE         FALSE
#> 27                0              1          FALSE         FALSE         FALSE
#> 28                1              1          FALSE         FALSE         FALSE
#> 29                0              2          FALSE         FALSE         FALSE
#> 30                0              1          FALSE         FALSE         FALSE
#>    ScanAngleRank UserData PointSourceID        X       Y
#> 1            -21       32            17 339002.9 5248001
#> 2            -21       32            17 339003.0 5248000
#> 3            -21       32            17 339002.9 5248000
#> 4            -21       32            17 339002.9 5248000
#> 5            -21       32            17 339003.6 5248000
#> 6            -21       32            17 339003.5 5248000
#> 7            -21       32            17 339003.6 5248000
#> 8            -21       32            17 339003.7 5248000
#> 9            -21       32            17 339003.6 5248000
#> 10           -21       32            17 339003.7 5248000
#> 11           -22       32            17 339009.6 5248001
#> 12           -22       32            17 339009.5 5248001
#> 13           -22       32            17 339009.2 5248000
#> 14           -22       32            17 339009.4 5248001
#> 15           -22       32            17 339009.3 5248000
#> 16           -22       32            17 339009.3 5248000
#> 17           -22       32            17 339009.3 5248000
#> 18           -22       32            17 339009.5 5248000
#> 19           -22       32            17 339009.5 5248000
#> 20           -22       32            17 339009.5 5248000
#> 21           -22       32            17 339009.6 5248000
#> 22           -22       32            17 339010.7 5248001
#> 23           -22       32            17 339009.6 5248000
#> 24           -22       32            17 339010.6 5248001
#> 25           -22       32            17 339009.5 5248000
#> 26           -22       32            17 339009.4 5248000
#> 27           -22       32            17 339009.7 5248000
#> 28           -22       32            17 339015.1 5248000
#> 29           -22       32            17 339015.1 5248000
#> 30           -22       32            17 339015.0 5248000

reprex 包于 2022 年 3 月 18 日创建 (v2.0.1)

Please find below one possible solution to get a data.table,data.frame with all the information. You can use as.data.frame() to get a pure data.frame but a data.table is a data.frame

Reprex

NB: I used a .las dataset built in the lidR library as it is more convenient.

  • The example dataset from lidR
library(lidR)

LASfile <- system.file("extdata", "example.laz", package="rlas")
las <- readLAS(LASfile)

summary(las)
#> class        : LAS (v1.0 format 1)
#> memory       : 21.2 Kb 
#> extent       : 339002.9, 339015.1, 5248000, 5248001 (xmin, xmax, ymin, ymax)
#> coord. ref.  : NAD83 / UTM zone 17N 
#> area         : 16 m²
#> points       : 30  points
#> density      : 1.88 points/m²
#> density      : 1.62 pulses/m²
#> File signature:           LASF 
#> File source ID:           0 
#> Global encoding:
#>  - GPS Time Type: GPS Week Time 
#>  - Synthetic Return Numbers: no 
#>  - Well Know Text: CRS is GeoTIFF 
#>  - Aggregate Model: false 
#> Project ID - GUID:        00000000-0000-0000-0000-000000000000 
#> Version:                  1.0
#> System identifier:        LAStools (c) by rapidlasso GmbH 
#> Generating software:      las2las (version 201011) 
#> File creation d/y:        343/2011
#> header size:              227 
#> Offset to point data:     323 
#> Num. var. length record:  1 
#> Point data format:        1 
#> Point data record length: 28 
#> Num. of point records:    30 
#> Num. of points by return: 26 4 0 0 0 
#> Scale factor X Y Z:       0.001 0.001 0.001 
#> Offset X Y Z:             6e+05 6500000 0 
#> min X Y Z:                339002.9 5248000 973.145 
#> max X Y Z:                339015.1 5248001 978.345 
#> Variable Length Records (VLR):
#>    Variable Length Record 1 of 1 
#>        Description: by LAStools of rapidlasso GmbH 
#>        Tags:
#>           Key 1024 value 1 
#>           Key 3072 value 26917 
#>           Key 3076 value 9001 
#>           Key 4099 value 9001 
#> Extended Variable Length Records (EVLR):  void
  • Suggested code
payload(las)
  • Output
#>          Z  gpstime Intensity ReturnNumber NumberOfReturns ScanDirectionFlag
#> 1  975.589 269347.3        82            1               1                 1
#> 2  974.778 269347.3        54            1               1                 1
#> 3  974.471 269347.3        27            2               2                 1
#> 4  974.025 269347.3        55            2               2                 1
#> 5  974.298 269347.3       117            1               1                 0
#> 6  974.985 269347.3        81            1               1                 0
#> 7  975.182 269347.3        84            1               1                 1
#> 8  974.434 269347.3       104            1               1                 1
#> 9  974.159 269347.3        91            1               1                 1
#> 10 973.145 269347.3        99            1               1                 1
#> 11 976.739 269347.5        87            1               1                 1
#> 12 976.823 269347.5        83            1               1                 1
#> 13 977.227 269347.5        87            1               1                 1
#> 14 975.873 269347.5        87            1               1                 1
#> 15 975.782 269347.5       107            1               1                 1
#> 16 975.353 269347.5        76            1               1                 1
#> 17 974.704 269347.5       113            1               1                 1
#> 18 977.170 269347.5        64            1               1                 0
#> 19 977.757 269347.5        89            1               1                 0
#> 20 978.212 269347.5        98            1               1                 0
#> 21 978.309 269347.5        50            1               2                 0
#> 22 974.816 269347.5        31            2               2                 0
#> 23 978.345 269347.5        51            1               2                 1
#> 24 974.824 269347.5        32            2               2                 1
#> 25 978.014 269347.5        85            1               1                 1
#> 26 977.781 269347.5        94            1               1                 1
#> 27 976.455 269347.5        78            1               1                 1
#> 28 976.313 269347.7        71            1               1                 1
#> 29 975.735 269347.7        75            1               1                 1
#> 30 975.674 269347.7       106            1               1                 1
#>    EdgeOfFlightline Classification Synthetic_flag Keypoint_flag Withheld_flag
#> 1                 1              1          FALSE         FALSE         FALSE
#> 2                 0              1          FALSE         FALSE         FALSE
#> 3                 0              1          FALSE         FALSE         FALSE
#> 4                 0              1          FALSE         FALSE         FALSE
#> 5                 0              1          FALSE         FALSE         FALSE
#> 6                 0              1          FALSE         FALSE         FALSE
#> 7                 1              1          FALSE         FALSE         FALSE
#> 8                 0              1          FALSE         FALSE         FALSE
#> 9                 0              1          FALSE         FALSE         FALSE
#> 10                0              1          FALSE         FALSE         FALSE
#> 11                1              1          FALSE         FALSE         FALSE
#> 12                0              1          FALSE         FALSE         FALSE
#> 13                0              1          FALSE         FALSE         FALSE
#> 14                0              1          FALSE         FALSE         FALSE
#> 15                0              1          FALSE         FALSE         FALSE
#> 16                0              1          FALSE         FALSE         FALSE
#> 17                0              1          FALSE         FALSE         FALSE
#> 18                0              1          FALSE         FALSE         FALSE
#> 19                0              1          FALSE         FALSE         FALSE
#> 20                0              1          FALSE         FALSE         FALSE
#> 21                0              1          FALSE         FALSE         FALSE
#> 22                0              2          FALSE         FALSE         FALSE
#> 23                1              1          FALSE         FALSE         FALSE
#> 24                1              2          FALSE         FALSE         FALSE
#> 25                0              1          FALSE         FALSE         FALSE
#> 26                0              1          FALSE         FALSE         FALSE
#> 27                0              1          FALSE         FALSE         FALSE
#> 28                1              1          FALSE         FALSE         FALSE
#> 29                0              2          FALSE         FALSE         FALSE
#> 30                0              1          FALSE         FALSE         FALSE
#>    ScanAngleRank UserData PointSourceID        X       Y
#> 1            -21       32            17 339002.9 5248001
#> 2            -21       32            17 339003.0 5248000
#> 3            -21       32            17 339002.9 5248000
#> 4            -21       32            17 339002.9 5248000
#> 5            -21       32            17 339003.6 5248000
#> 6            -21       32            17 339003.5 5248000
#> 7            -21       32            17 339003.6 5248000
#> 8            -21       32            17 339003.7 5248000
#> 9            -21       32            17 339003.6 5248000
#> 10           -21       32            17 339003.7 5248000
#> 11           -22       32            17 339009.6 5248001
#> 12           -22       32            17 339009.5 5248001
#> 13           -22       32            17 339009.2 5248000
#> 14           -22       32            17 339009.4 5248001
#> 15           -22       32            17 339009.3 5248000
#> 16           -22       32            17 339009.3 5248000
#> 17           -22       32            17 339009.3 5248000
#> 18           -22       32            17 339009.5 5248000
#> 19           -22       32            17 339009.5 5248000
#> 20           -22       32            17 339009.5 5248000
#> 21           -22       32            17 339009.6 5248000
#> 22           -22       32            17 339010.7 5248001
#> 23           -22       32            17 339009.6 5248000
#> 24           -22       32            17 339010.6 5248001
#> 25           -22       32            17 339009.5 5248000
#> 26           -22       32            17 339009.4 5248000
#> 27           -22       32            17 339009.7 5248000
#> 28           -22       32            17 339015.1 5248000
#> 29           -22       32            17 339015.1 5248000
#> 30           -22       32            17 339015.0 5248000

Created on 2022-03-18 by the reprex package (v2.0.1)

凉薄对峙 2025-01-22 07:46:36

如果您不想使用 lidR 并希望使用简单的 data.frame,只需使用 rlas 而不是 lidR.

library(rlas)
read.las("C:/1/078-638.las")

If you do not want to play with lidR and want to use bare bone data.frame simply use rlas instead of lidR.

library(rlas)
read.las("C:/1/078-638.las")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文