あさひコラムColumn

QGIS

QGIS でポイントクラウド(点群)を使ってみる

QGIS 3.18 の新機能としてポイントクラウドデータの2次元、3次元表示が加わりました

近年、地理空間情報としてポイントクラウド(点群)データの取得と活用が多くなってきました。QGIS では従来からのベクタ、ラスタデータの利用に加え、メッシュ形式のデータが利用できるようになりました。それに加え、3次元ビューが追加され、3次元でのデータ利用が可能になりました。3次元のデータというと冒頭のとおり、近年はポイントクラウドの取得や利用が盛んになってきているので、2021年2月リリースのバージョン3.18ではポイントクラウドデータの2次元、3次元での表示ができるようになりました

QGIS 3.10 にはネイティブの点群表示機能はありませんでした。ただ点群データの加工については下記のブログの方法が利用できます。

三次元点群データをQGISでひり出してみた(外部リンク)

ポイントクラウドデータとは

地理空間情報の分野でポイントクラウドとは3次元の点群データのことです。 主にレーザー計測機を利用して計測されたものです。3次元の座標だけでなく色の情報が格納されたデータもあります。また、同一の場所に対する複数の光学写真データから3次元モデルを計算して作成したSFM(Structure from Motion) MVS(Multi-View Streo)から作成される3次元点群データも近年は多く利用されます。

ポイントクラウドデータは、3次元形状をコンピュータの中で表現することで様々な用途に利用できます。 国土地理院の基盤地図情報の標高データのうち5mメッシュのものはレーザー計測した結果のポイントクラウドデータを5m間隔で正規化して作成したものです。また近年はインフラの点検用データや自動運転での対物認識等様々な分野での利用がされています。 コンピュータ内で3次元の情報を扱う場合の重要な手段になっています。

ポイントクラウドのオープンデータ

近年はポイントクラウドのオープンデータがたくさん公開されています。 自治体の様々な部署でレーザー計測等で作成したポイントクラウドデータを保持していますが、従来はそれらのデータを当該部署内でのみ利用していました。庁内にあるデータを調べ公開・共用してもいいポイントクラウドデータを公開する組織が増えています。 以下のようなポイントクラウドデータが公開されています。

・Shizuoka Point Cloud DB(外部リンク)
静岡県 富士山南東部・伊豆全域 点群データ(外部リンク)
兵庫県 全域数値地形図ポータル(2010年度~2018年度)(外部リンク)
都営大江戸線 都庁前駅 3D点群データ(外部リンク)

ポイントクラウド利用のためのソフトウェア

現状でもポイントクラウド利用のためのソフトウェアはいくつか存在します。

Blender 
3次元のデスクトップ可視化システム 標準機能で ply 形式読み込み可能 Point Cloud Visualizer を利用するとポイントクラウドの可視化ができます。以下、可視化事例です。
静岡PointCloudを使って、Blenderで3Dモデルをつくりたい!(たぶんその1)(外部リンク)
Point Cloud Visualizer - 点群データを分かりやすく視覚化してくれるBlenderアドオン!(外部リンク)
Point Cloud Visualizerアドオンを使ってBlenderで点群データを確認する(外部リンク)

Cesium
Webで2次元、3次元の空間情報を表示できるオープンソースシステム。様々な形式のデータに対応。ポイントクラウドデータについては3DTilesという形式で表示可能です。以下、表示事例です。
Cesium と 3D Tiles について(2)(外部リンク)

ポイントクラウド加工のためのソフトウェア

ポイントクラウドは加工するためのソフトウェアもいくつか存在します。

CloudCompare
ポイントクラウド編集ソフトウェア
https://cloudcompare.org/ https://github.com/cloudcompare/cloudcompare

PDAL
Point Data Abstraction Library
https://pdal.io/
  
LasTools
LAS形式操作(QGIS プロセッシングからも利用可能) https://rapidlasso.com/lastools/

FUSION
FUSION/LDV LIDAR analysis and visualization software http://forsys.cfr.washington.edu/fusion/fusion_overview.html

FME
多彩な空間データの形式変換が行えるプログラム群
https://www.safe.com/

MeshLab
3Dデータ編集・変換
https://www.meshlab.net/

QGIS でのポイントクラウド利用

QGIS 3.18 でのポイントクラウド利用機能実装

QGIS でのポイントクラウド機能については英国のLutra Consulting社の呼びかけたクラウドファウンディングで構築されました。(Point cloud data support in QGIS)
PDAL(Point Data Abstraction Library)というライブラリを QGIS に統合することでポイントクラウドを利用できるようになりました。 Abstraction Libraryという用語は抽象ライブラリと翻訳すればよいのでしょうか。従来 QGIS ではGDAL(Geospatial Data Abstraction Library), MDAL(Mesh Data Abstraction Library) というような抽象ライブラリを利用しています。空間データ、メッシュデータを利用するためのコンピュータプログラムライブラリでしょう。
 これらのデータには多くの種別のデータ形式があります。ファイルの形式がちがっても抽象ライブラリを使えば同じ名前の関数が大概はつかえるようにしているようなライブラリが抽象ライブラリの仕組みだと思われます。たとえばGDALの場合ラスタ形式の空間データを扱います。ラスタ形式の空間データにはGeoTiff,PNG,BMP,JPEG等様々な形式があります。ただしGISソフトウェア内では表示やコピー、変換等行う操作は同じような操作が各形式で求められることになります。 ここで抽象ライブラリは位置参照情報をもつラスタデータという抽象クラスをつくってラスタデータに対する処理(表示、コピー、変形等)の関数を最初に記述します。「位置参照情報を持つラスタデータ」というのは実際のTIFFやらPNGやらの形式のファイル形式を抽象化した概念になります。この抽象クラスを継承する下位クラスとして実際のファイル形式別データ操作クラスを記述していく(データ種類別ドライバーと言われることが多い)ことで実際のデータを扱う機能が実装されます。抽象ライブラリを利用するプログラマは抽象クラスに対する操作を理解して、それを利用するプログラムを書けばドライバーが実装されている多くのファイル形式を利用したプログラムを書いたことになります
PDALはポイントクラウドデータを操作するための抽象ライブラリやコマンド群です。これの利用方法を理解し習熟することはポイントクラウドデータ利用のためにできることを増やす手段でしょう。

QGIS 3.18 でのポイントクラウド機能実装については チェンジログ に記述があります

EPT形式のポイントクラウドの表示をサポートすると書いてあります。 EPTって何かと調べてみると Entwine Point Tileというタイル形式のようです。
ポイントクラウドの利用については以下に解説があります。
Test QGIS with Point Clouds on Windows

ここではインストーラは通常のインストーラとは別で、この記事のリンクにあるインストーラを使いなさいということと、開発版のQGIS 3.19 を使った例が解説されています。 私も最初このガイドにしたがって3.19でデータを作成して操作した後で3.18で同じデータを読んだところちょっと操作するとプログラムが落ちるという状態でした。同じデータを3.19で読んだ場合は大丈夫なので以下3.19での操作にします。(3.19は起動時のスプラッシュスクリーンにブカレストでの QGIS ミーティングの時の集合写真が表示されます。みんな QGIS のお揃いのTシャツを着てますがそうじゃないTシャツを着ている東洋人がうつってますが気にしないで下さい)
チェンジログではポイントクラウドのレイヤとして「PDAL Point Cloud」と「EPT Point Cloud」が表示されていますが手元の3.19バイナリでは以下のように「点群(Point Cloud)」という項目が1個表示されるだけです。

ここでポイントクラウドのファイルを指定することができます。

今回はサンプルデータとして静岡県が公開している伊豆地域のポイントクラウドデータからダウンロードしてきたものを表示してみます。今回はG空間情報センターにある「静岡県 富士山南東部・伊豆東部 点群データMMSデータ ダウンロードページ」からMMS (Mobile Mapping System)のデータをダウンロードしてきました。MMSとは自動車にセンサを搭載して計測作業を行う手法です。データは地図上からメッシュを指定してダウンロードすることができます。ダウンロードしたデータはLAS形式です。
 

ダウンロードしてきたLASファイルを QGIS にレイヤとして追加します。LASファイルはJGD2011平面直角座標系第8系で作成されていますが取り込み時に8系の指定ができません。取り込みをした後にレイヤプロパティで8系に設定することにします。

LASファイルをレイヤ追加したらすぐに表示されるわけではありません。変換作業がはじまります。Core i7 6700 2.80GHz RAM30.0GB SATA3HD のマシンで伊豆のLASファイル1個の変換にだいたい1時間ぐらいかかりました

データ変換が完了すると2次元のビューで変換結果が表示されます。このときにレイヤプロパティでレイヤの座標系をJGD2011平面直角座標系第8系に設定。プロジェクトの座標系も同じものに設定しました。

できあがった点群の結果は拡大、縮小表示が可能です。

同じ地域の地理院タイルと重ねて表示してみました。

3Dビューで表示をする場合は当該レイヤのプロパティで3Dビューのところの設定を行う必要があります。RGBでの表示に設定を行いました

3Dビューを開きました(初期状態では地理院タイルの描画ははずしました)。

3Dビューでの操作がいろいろできます。

QGIS におけるポイントクラウド

QGIS 3.18 でポイントクラウドをいろいろ動かすと落ちたりするようなことがありますが、表示できるようになったのは重要な第一歩です。 QGIS は2次元、3次元の地理空間情報を表示、加工するためのオープンなプラットフォームです。オープンなプラットフォームであることによって世界中の多くの人が利用や開発を行うことで空間情報利用のためのノウハウの交流の場所になってます。 ポイントクラウドのデータ操作は大量のデータをどう間引きをして早く操作できるかというよう課題があります。オープンなプラットホームで多くの人が利活用することでそのような課題に対応する人も増えるでしょう。ポイントクラウド利用のためのノウハウの交流と蓄積がオープンな場所で繰り広げられることは重要です。

Other Columnその他のコラム

コラム一覧を見る

TOP