静岡県が公開している南アルプスの点群データをQGISで開く
静岡県が公開している南アルプスの点群データをQGISで開こうとしたところ、
エラーが出て開けなかったので、その解決方法を探る
参考情報(エラーが発生した環境)
- OS: Windows 11
- QGIS 3.34.11
エラーメッセージに記載されている
"readers.las: Global encoding WKT flag not set for point format 6 - 10."
をググってみたところ、Stack Exchangeで似たような質問をしている人を見つけた。
どうやら、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で開くことができました。