【lidR】lasデータの中身を書き換え
メモ代わり。
LASデータのデータに属性(クラスタリングの結果)を付与したかった。
library(lidR)
file <- "path
las <- readLAS(file)
las@data
で中身をdata.tableとして取り出すことができる。個別の属性を取り出す場合は
las@data[["X"]] #"X"は大文字
で取り出せる。こうすることでtidyverse等で任意の処理が行いやすくなる。
自分が行ったことは、XYZを取り出してクラスタリング処理を行い、最終的にXYZとそれらをクラスタリングした後のIDが付与された4列のdata.table(xyz_clusterid)を作成した。その内容でlasの中身を書き換えるには
las@data <- xyz_clusterid
でシンプルにできた。
注意点
data.tableの列名はlasデータの中身と同様であるべき。最初"xyz+clusterid"という名前を付けた4列のdata.tableを作成、lasファイルの中身を書き換えたが、エラーがでた。その理由はlasのファイル構成と一致しない列名だったためで、"XYZ+UserData"と名前を改めることできちんと読み込み、表示が可能だった。