大規模 LIDAR ポイント コレクションからのラスタ DEM および DSM の作成
サマリ
ラスタ(またはグリッド型)標高モデルは、最も一般的な GIS データ タイプの 1 つです。多くの方法で解析に使用でき、簡単に共有できます。LIDAR を使うと、「最初のリターン」と「地面」という明確に異なる 2 種類の高品質な標高モデルを作成することが可能になります。最初のリターン サーフェスは、樹冠と建物を含み、一般的に DSM(デジタル サーフェス モデル)と呼ばれます。地面または地表は、地形だけを含み、一般的に DEM(デジタル標高モデル)と呼ばれます。
次の図は、左側が最初のリターン サーフェスすなわち DSM を、右側が地表モデルすなわち DEM を陰影起伏で表現したものです。
計画の立案
LIDAR からラスタを作成する前に、評価する必要のある基本要素がいくつかあります。
- LIDAR カバレッジの範囲
- LIDAR ポイントの数とポイント密度
- 望ましい出力ラスタの解像度
- 出力ラスタの範囲
- 出力ラスタの形式
このような要素を検討することは、1 つのラスタを作成するか、それともラスタ コレクションを作成するかを決定するのに役立ちます。この作業の途中では、1 つのラスタに含めるカラム数とロウ数を算出する必要があります。これは、データの解析、表示、潜在的共有、または配布に関して、ラスタをどう処理するかに左右されます。1 つのデータセットで解析を済ませたいという願望は、データセット サイズの制約という現実と衝突することがあります。もう一つ考慮すべきことは、保有している LIDAR データの量です。100 億個の LIDAR ポイントを 1 つのデータセットとして処理しようとすると、処理自体は可能であっても、扱いにくいものになる可能性が高くなります。このような場合は、大量の LIDAR データから複数のラスタを作成することになり、LIDAR 処理も分割することを検討すべきです。処理を分割することで個々のデータセットのサイズが過大にならないだけでなく、データセットに対する処理時間も短く保てます。処理にかかる時間が長くなればなるほど、不具合が起きる可能性が高くなります(たとえば停電など)。
データを分割する必要があると判断した場合、次の疑問は、どうやって分割を実現するのかということです。通常のグリッド システム、政治的境界、予想される用途のどれに基づいて分割すればいいのでしょうか。LIDAR コレクションは複数の用途で使用される傾向があるため、通常のグリッド システムまたは、市町村境界のような政治的区分に基づいて分割するのが一番妥当です。エンジニアは、個々のプロジェクトで必要となるさまざまなピースをモザイクのように組み合わせることができます。意図された利用が、水文解析のような 1 種類の用途に大きく依存している場合は、その用途に適した分割をします。たとえば、水文解析の場合、集水域境界は有力な候補です。
ArcGIS は多くのラスタ形式をサポートしており、どの形式で作成するかはユーザが選択できます。この決定は、製品の意図された使用方法に基づいて決めるのが最善です。不特定多数と共有する場合は、TIFF 形式または JPEG 形式で配布することも考えられます。ArcGIS プラットフォームを使用した解析の場合は、ファイルベースのジオデータベース形式の採用を検討してください。
LIDAR ポイントからラスタを作成する最初のステップは、ポイントをジオデータベースに読み込むことです。LIDAR ポイントをマルチポイント フィーチャクラスに読み込むには、LIDAR データのソース データ形式に応じて、[LAS → マルチポイント (LAS to Multipoint)] または [ASCII 3D → フィーチャクラス (ASCII 3D to Feature Class)] ジオプロセシング ツールを使用します。LIDAR ポイントからテレイン データセットを構築する場合は、マルチポイント フィーチャクラスをフィーチャ データセットに追加します。LAS 形式ファイルを使用するか ASCII 形式ファイルを使用するかを選択できますが、LAS の方が一般に受け入れられたバイナリ ファイル形式です。LAS ファイルの方が情報が多く、バイナリ ファイルであるため、効率的に読み込むことができます。LIDAR のソース計測値をジオデータベースにインポートする方法の詳細については、「データ インポート ツールと読み込みツール」をご参照ください。
[ポイント → ラスタ (Point to Raster)] ジオプロセシング ツールの使用
唯一のデータ ソースが LIDAR である場合は、[ポイント → ラスタ(Point to Raster)] ジオプロセシング ツールを使用してラスタ標高モデルを作成できます。[ポイント → ラスタ(Point to Raster)] ツールで作成した場合、最高の品質を結果に求めることは困難です。しかしながら、LIDAR は密度が高くなる傾向があるため、多くの用途で、[ポイント → ラスタ(Point to Raster)] ジオプロセシング ツールの結果の正確さは十分なものであり、このツールの価値はその手軽さと速度にあります。
地表ラスタ サーフェスすなわち DEM を作成する場合は、地面の LIDAR ポイントを使用してラスタを作成します。ツールの [値フィールド] パラメータを [Shape] に設定して、マルチポイント頂点の Z 値を使用します。また、[セルの割り当て方法] を [MIN] または [MEAN] に設定します。[MIN] は出力高さに低地のバイアスをかけ、[MEAN] はもっと汎用的なオプションです。最初のリターン サーフェスすなわち DSM を作成するときは、出力に高地のバイアスをかけるために [MAX] に設定して、最初のリターン LIDAR ポイントを使用します。
[ポイント → ラスタ(Point to Raster)] ジオプロセシング ツールは、LIDAR ポイント セットからグリッド型標高モデルを作成します。
[ポイント → ラスタ(Point to Raster)] は、LIDAR からラスタを作成する一番高速で簡単な方法ですが、このツールには大きな欠点があります。ポイントが存在するセルの値だけが返されるため、NoData セルが多数生じることがあるのです。この問題は、DEM を作成するために地面ポイントだけを使用していると悪化します。これは、地面を隠す植生や建物がある場合、データにギャップが生じるためです。データ セルに対する NoData セルの影響を軽減する対策として、平均ポイント間隔に対して出力セル サイズを大きく設定することができます。また、次のような場合は、[ポイント → ラスタ(Point to Raster)] の実行後、Python ウィンドウで以下のサンプルを使用して、NoData セルの数を減らすこともできます。
- Spatial Analyst エクステンションが有効であること
- 実行された最後のフォーカル統計式の出力名が「outfocalmNN」(outfocalm03、outfocalm04、outfocalm05 など)
- 出力は、コンテンツ ウィンドウのレイヤとなる(この例では、[ポイント → ラスタ(Point to Raster)] からの出力が point2ras で呼び出される)
- 有効なパスを C:\data\ と設定
from arcpy.sa import * outfocalm01 = FocalStatistics("point2ras", NbrRectangle(3, 3, "CELL") outfocalm02 = FocalStatistics(outfocalm01, NbrRectangle(3, 3, "CELL") #Repeat using output (temporary raster object) in the next processes until all nodata is gone out = Con(IsNull("point2ras"), outfocalmNN, "point2ras") #Save the result to disk out.save("C:\data\myfinalDEM")
この Python サンプルを複数回実行して、大きな NoData 領域を埋めることもできますが、数回以上実行することはお勧めできません。この方法を使用した結果として、隙間エリアが大きくなることは許容範囲内であるという前提でこの式を適用してください。
左は元のポイント、真ん中は [ポイント → ラスタ(Point to Raster)] の出力(NoData セルは白色)、右は NoData セルを埋めて後処理されたラスタです。
テレイン データセットを使用したラスタ DEM の作成
LIDAR の処理に利用できる写真測量ブレークラインがある場合、または、[ポイント → ラスタ (Point to Raster)] ツールよりも高品質の結果を必要とする場合は、テレイン データセットを使用します。テレイン データセットの概要については、「テレイン データセットとは」をご参照ください。
左側の図は、川岸に沿ってブレークラインのないサーフェスです。右側の図は、ブレークラインが強調されています。ブレークラインは、標高モデルで水に関係するフィーチャの定義を保持するうえで重要です。
ブレークラインは、サーフェスの直線的不連続性を把握するために使用されます。最もよく見られるのは、舗装道路の縁、湖の汀線、小さな川の 1 本線の放水路、大きな川の 2 本線の放水路です。ブレークラインは、ときに、必ずしも不連続性を表すことなく、サーフェスを定義し形成するのに役立つように収集されることもあります。このような用途の例としては、コンターのような形状のラインや、山脈の丸い尾根線などがあります。
ブレークラインは、しばしば地表モデルで使用されますが、最初のリターン サーフェスと同時に使用すると地表のポイントと競合するため、好ましくない場合が多々あります。たとえば、舗装道路の縁を表すブレークラインが、道路に覆いかぶさっている樹冠のポイントと X、Y が一致して Z が異なるという場合がありえます。そのため、最初のリターン サーフェスからブレークラインを除外するか、少なくとも、競合する可能性があるとわかっている場所からは除外することを検討してください。
テレイン データセットで使用するブレークラインを整理する最も効率的な方法は(下表参照)、サーフェス フィーチャ タイプ(SF タイプ)に基づいて、異なるフィーチャクラスに分離することです。サーフェス フィーチャ タイプによって、モデル内でフィーチャがどのように適用されるか、そして、ラスタ化するときに使用される Natural Neighbor 内挿法で、サーフェスがフィーチャと交差するときにサーフェスがどのように解釈されるかが決まります。「ハード」フィーチャと交差すると、斜面は明確に分断されますが、「ソフト」フィーチャと交差しても分断はされません。
計測タイプ |
フィーチャクラス タイプ |
SF タイプ |
---|---|---|
LIDAR ポイント |
3D マルチポイント フィーチャクラス |
mass |
舗装の縁、河川の 1 本線および 2 本線の放水路、狭い尾根 |
3D ライン フィーチャクラス |
hardline |
湖、貯水池 |
2D ポリゴン フィーチャクラス(Z 値を属性として格納) |
hardline または hardreplace |
侵食された尾根、丸い尾根、コンターのような形状のフォーム ライン |
3D ライン フィーチャクラス |
softline |
調査対象地域の境界 |
2D ポリゴン フィーチャクラス(Z 値なし) |
softclip |
テレインのパフォーマンスという面では、すべてのハードラインをまとめて 1 つのフィーチャクラスに配置するのが最善です。しかし、たとえば、道路と水域のフィーチャを別々にする必要がある場合、これは不可能になります。テレインの定義に使用するフィーチャクラスの数は少ないほどよいことを忘れないでください。
置換という SF タイプは、ポリゴン内のすべてを一定の高さに設定するときに使用されます。これはたいていの場合、LIDAR ポイントのように、その高さが汀線と正確に同じではなく、そのために水域が平坦にならず、別のデータを意図せず内部に含んでしまった湖で使用されます。置換という SF タイプを使用すると、通常のハードラインまたはソフトラインよりも処理に負担がかかるため、テレイン データセットでは使用しないのが最善です。理想を言えば、水域には LIDAR サンプルが存在しないようにします(データ業者と契約するときは、この条件を追加することを検討してください)。しかし、存在する場合は、[テレイン ポイントの削除 (Delete Terrain Points)] ジオプロセシング ツールを使用して、テレイン データセットの構築後に処理することができます。そうでない場合は、テレインを構築する前に、[ポイントの削除 (Erase Point)] ジオプロセシング ツールを使用して、目障りなポイントを削除できます。
テレイン データセットを使用して地表と最初のリターン サーフェスの両方を作成する場合は、地面ポイント用のフィーチャクラスと地上ポイント用のフィーチャクラスという 2 つの異なるマルチポイント フィーチャクラスに LIDAR ポイントを読み込みます。地表テレインは、地面ポイントだけを参照して定義されます。最初のリターン テレイン データセットは、地表テレインと同じ地面ポイント フィーチャクラスを参照し、さらに地上ポイントも参照します。つまり、2 つの異なるテレイン データセットが同じフィーチャクラスを参照できるということです。
ArcGIS 9.3 以降、テレイン データセットは、Z 許容値とウィンドウ サイズという 2 つのポイント間引きフィルタのどちらかを使用して、ピラミッド化できます。DEM を作成する場合は、ピラミッド タイプのどちらかを使用できます。フル解像度のポイント セットをラスタ化する場合は、大幅に高速できるため、ウィンドウ サイズ フィルタを使用してテレインを構築します。解析で間引きしたデータを使用する場合は(これは LIDAR データのサンプリング数が必要以上に多い場合は妥当です)、Z 許容値フィルタを使用します。時間はかかりますが、間引きされた表現の垂直方向の精度を推定するため、こちらの方が適しています。DSM を作成する場合は、[MAX] オプションを指定してウィンドウ サイズ フィルタを使用します。
[テレイン → ラスタ (Terrain to Raster)] ツールを使用して、ラスタ化した標高モデルを作成します。内挿方法、出力セル サイズ、テレイン データセットから使用するピラミッド レベルを指定できます。
[テレイン → ラスタ (Terrain to Raster)] ツールは、テレイン データセットからグリッド型標高モデルを作成します。
内挿法としては、Natural Neighbor 法が最善です。リニア内挿法ほど高速ではありませんが、一般的に、美しさと正確さの両方で優れた結果になります。LIDAR ポイントのサンプル密度を基準として出力セル サイズを設定します。平均ポイント間隔より大幅に小さいセル サイズを使用すると精度が落ちます。また、[環境] を使用して、適切な場合にサブセットを抽出する解析範囲を設定します。スナップ ラスタを使用すると、ラスタ出力の配置にも役立ちます。
ArcGIS で LIDAR ポイント データからラスタ DEM サーフェスを生成する手順の概要を次に示します。
まず ArcCatalog またはアプリケーション内のカタログ ウィンドウでテレイン データセットを作成したあと、ジオプロセシング ツールを使用してこのテレイン データセットをラスタ DEM に変換します。
1. テレイン データセットの作成
-
ソース データを決定し、そのデータがテレイン データセットにどのように使用されるかを決定します。
テレイン ソース データの表現方法の詳細については、「各種のフィーチャクラスによるテレイン ソース データの表現」および「テレイン データセットでサポートされるソース データのタイプ」をご参照ください。
注意:テレイン データセットを構築するには、すべてのソース データに同じ空間参照が必要です。
- ArcCatalog またはカタログ ウィンドウでファイル ジオデータベースを作成します。テレインを構築するフォルダを右クリックし、ショートカット メニューで [新規作成] → [ファイル ジオデータベース] の順にクリックします。
-
フィーチャ データセットを作成します。ファイル ジオデータベースを右クリックし、ショートカット メニューで [新規作成] → [フィーチャ データセット] の順にクリックします。
フィーチャ データセットの適切な生成方法の詳細については、「フィーチャ データセットの作成」をご参照ください。
- フィーチャクラスにソース計測値をインポートします。これらのフィーチャクラスは、ステップ 3 で作成したフィーチャ データセットの内部に生成されている必要があります。テレインのソース データをインポートする方法の詳細については、「テレイン データセット ソース計測値のインポート」をご参照ください。
-
[新規テレイン] ウィザードを使用して、ArcCatalog またはカタログ ウィンドウでテレイン データセットを構築します。
[新規テレイン] ウィザードにアクセスするには、フィーチャ データセットを右クリックしてショートカット メニューを表示し、[新規作成] → [テレイン] の順にクリックします。
[新規テレイン] ウィザードの使用方法の詳細については、「テレイン ウィザードを使用したテレイン データセットの構築」をご参照ください。
2. [テレイン → ラスタ (Terrain to Raster)] ジオプロセシング ツールの使用.
- [3D Analyst ツール] で、[テレイン → ラスタ (Terrain to Raster)] ジオプロセシング ツールをダブルクリックして開きます。
- [入力テレイン] の [参照] ボタンをクリックして、テレイン データセットを追加します。
- [出力ラスタ] の [参照] ボタンをクリックして、ラスタ データセットを作成する場所を指定します。
- オプションの [出力データ タイプ] パラメータは、32 ビット浮動小数点または 32 ビット整数に設定します。浮動小数点がデフォルト値です。
-
内挿法を [LINEAR] または [NATURAL_NEIGHBORS] に設定します。
これらの手法は、三角網テレイン サーフェスに適用される TIN ベースの内挿法です。[LINEAR] オプションは、各セルの中心を含む三角形を探し、三角形のノードの加重平均を適用して値を内挿します。[NATURAL_NEIGHBORS] オプションでは、セルの中心の Voronoi 隣接が使用されます。
テレイン サーフェスの内挿には、Natural Neighbor 法を検討してください。Natural Neighbor 内挿法は、処理に時間がかかりますが、生成されるサーフェスは、線形内挿法生成されるサーフェスよりもはるかに滑らかになります。また、三角網での小さな変更の影響も受けにくくなります。
-
[サンプリング距離] は、[OBSERVATIONS] または [CELLSIZE] に設定します。これは、ラスタの横方向の解像度を制御します。目的のメソッドを選択した後で、オプションの横にある値を指定します。
[OBSERVATIONS] では、設定値に基づいてセル サイズが計算されます。この数値は、ラスタ サーフェスの最長エッジのセル数を表します。[CELLSIZE] オプションを使用すると、セル サイズを明示的に設定することができます。
- 使用する解像度を設定します。解像度パラメータは、変換に使用するテレイン データセットのピラミッド レベルを示します。ラスタ データセットをフル解像度で出力するには、このパラメータを 0 に設定します。ピラミッド レベルは Z 許容値またはウィンドウ サイズを使用して定義し、フル解像度データに対して相対的なテレイン データセットの概算解像度を表します。
- 環境設定を使用して、生成する DEM の範囲を明示的に制御することを検討します。テレインのサブセットを抽出するには、ジオプロセシング ツールの下部にある [環境] ボタンをクリックします。[一般設定] タブをクリックして、出力 DEM の範囲を定義します。
[ポイント → ラスタ (Point to Raster)] または [テレイン → ラスタ (Terrain to Raster)] ジオプロセシング ツールを使用して、数億、数十億の LIDAR ポイントを高解像度のグリッド型 DEM と DSM に変換できます。これらのサーフェス モデルは、ArcGIS で解析に使用できる多数のラスタ ツールと一緒に使用できます。
マップの作成にも適しており(下図参照)、データ構造がシンプルであるため、共有するのも簡単です。