Closed4

静岡県が公開している南アルプスの点群データをQGISで開く

ぴっかりんぴっかりん

エラーメッセージに記載されている
"readers.las: Global encoding WKT flag not set for point format 6 - 10."
をググってみたところ、Stack Exchangeで似たような質問をしている人を見つけた。
https://gis.stackexchange.com/questions/413191/python-pdal-error-reading-format-1-4-las-file-readers-las-error-global-enco

どうやら、LAS 1.4の場合は、Global encoding(LASファイル全体に関する重要な情報を示す部分)の中にあるWKTがTrueになってないといけないのがFalseになっているのが、原因っぽい。

ぴっかりんぴっかりん

LASのバージョン確認

まずは、laspyを使って表示したいlasファイルのバージョンを調べてみる
※ laspyを使ったのは、普段Pythonを触っているので慣れた言語で調べたかったからです

import laspy

# las形式の点群データを読み込む
las_path = './data/08MD5222.las'
las = laspy.read(las_path)

# バージョンを確認
version = las.header.version
print(f'version: {version}')

結果
version: 1.4
ということで、LAS 1.4であることが分かった。

Global encodingのWKTに設定されている値を確認

続いて、Global encodingのWKTに現在設定されている値を調べてみる

import laspy

# las形式の点群データを読み込む
las_path = './data/08MD5222.las'
las = laspy.read(las_path)

# Global encodingのWKTの値を確認
current_wkt_flag = las.header.global_encoding.wkt
print(f'Current WKT flag: {current_wkt_flag}')

結果
Current WKT flag: False
ということで、WKTの値がFalseに設定されていることが分かった。

ぴっかりんぴっかりん

WKTの値を修正し、QGISで表示してみる

エラーメッセージやStack Exchangeの記事から、WKTの値をTrueに設定すればうまく読み込めるみたいなので、ひとまずTrueに設定してみる。

import laspy

# las形式の点群データを読み込む
las_path = './data/08MD5222.las'
las = laspy.read(las_path)

# Global encodingのWKTの値をTrueに設定
las.header.global_encoding.wkt = True

# las形式で出力
las.write( './data/08MD5222_fixed.las')

WKTの値をTrueに設定したlasファイルをQGISで読み込んでみると...

表示できました!!
畑薙第一ダム周辺の点群データをダウンロードしたのですが、場所もあっていそうです。

根本的な原因までは分かりませんでしたが、ひとまずQGISで開くことができました。

このスクラップは2ヶ月前にクローズされました