gdal_grid

散在データから正規グリッドを作成します.

概要

gdal_grid [--help] [--help-general]
          [-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
          CInt16/CInt32/CFloat32/CFloat64}]
          [-oo <NAME>=<VALUE>]...
          [-of <format>] [-co <NAME>=<VALUE>]...
          [-zfield <field_name>] [-z_increase <increase_value>] [-z_multiply <multiply_value>]
          [-a_srs <srs_def>] [-spat <xmin> <ymin> <xmax> <ymax>]
          [-clipsrc <xmin> <ymin> <xmax> <ymax>|<WKT>|<datasource>|spat_extent]
          [-clipsrcsql <sql_statement>] [-clipsrclayer <layer>]
          [-clipsrcwhere <expression>]
          [-l <layername>]... [-where <expression>] [-sql <select_statement>]
          [-txe <xmin> <xmax>] [-tye <ymin> <ymax>] [-tr <xres> <yres>] [-outsize <xsize> <ysize>]
          [-a {<algorithm>[[:<parameter1>=<value1>]...]}] [-q]
          <src_datasource> <dst_filename>

説明

このプログラムは,OGR データソースから読み取られた散在データから正規グリッド(ラスター)を作成します.入力データは,値を持つグリッドノードを補間するために補間されます.さまざまな補間方法から選択できます.

処理を並列化するために GDAL_NUM_THREADS 設定オプションを設定することができます.指定する値はワーカースレッドの数,または ALL_CPUS でコンピュータのすべてのコア/CPU を使用します.

--help

このヘルプメッセージを表示して終了します

--help-general

一般的な GDAL コマンドラインオプションの使用方法を簡単に表示して終了します.

-ot <type>

出力画像バンドをドライバでサポートされている特定のデータ型に強制します.これは次のいずれかである可能性があります:Byte, Int8, UInt16, Int16, UInt32, Int32, UInt64, Int64, Float32, Float64, CInt16, CInt32, CFloat32 または CFloat64.

設定されていない場合,関連するドライバでサポートされていないデフォルトのタイプが使用される可能性があり,エラーが発生します.

-of <format>

出力フォーマットを選択します. GDAL 2.3 以降,指定されていない場合,フォーマットは拡張子から推測されます(以前は GTiff でした).短いフォーマット名を使用します.

-txe <xmin> <xmax>

作成される出力ファイルのジオリファレンス X 範囲を設定します.

-tye <ymin> <ymax>

作成される出力ファイルのジオリファレンス Y 範囲を設定します.

-tr <xres> <yres>

出力ファイルの解像度を設定します(ターゲットのジオリファレンス単位で). -tr-txe-tye からの有効な入力と組み合わせてのみ機能します

Added in version 3.2.

-outsize <xsize> <ysize>

出力ファイルのサイズをピクセルと行で設定します. -outsize-tr とは使用できません

-a_srs <srs_def>

出力ファイルの投影を上書きします. srs_def は通常の GDAL/OGR 形式,完全な WKT,PROJ.4,EPSG:n または WKT を含むファイルのいずれかである可能性があります.再投影は行われません.

-zfield <field_name>

Z 値を取得するために使用される地物の属性フィールドを識別します.この値は地物ジオメトリから読み取られた Z 値を上書きします(もちろん,ジオメトリに Z 値がある場合は,それ以外の場合は選択肢がなく,Z 値を含むフィールド名を指定する必要があります).

-z_increase <increase_value>

Z 値を取得するために使用される地物の属性フィールドに追加します.追加は Z 値と同じ単位である必要があります.結果値は Z 値 + Z 増加値 になります.デフォルト値は 0 です.

-z_multiply <multiply_value>

Z フィールドの乗算比率です.これは,例えばフィートからメートルへのシフトや標高から深さへの変換に使用できます.結果値は (Z 値 + Z 増加値) * Z 乗算値 になります.デフォルト値は 1 です.

-a {<algorithm>[[:<parameter1>=<value1>]...]}

補間アルゴリズムまたはデータメトリック名と(オプションで)そのパラメータを設定します.使用可能なオプションの詳細については, Interpolation algorithms および Data metrics セクションを参照してください.

-spat <xmin> <ymin> <xmax> <ymax>

(xmin, ymin) - (xmax, ymax) で記述されるバウンディングボックスに含まれる地物のみを選択するための空間フィルタを追加します.

-clipsrc [<xmin> <ymin> <xmax> <ymax>]|<WKT>|<datasource>|spat_extent

指定されたバウンディングボックス(ソース SRS で表現される)または WKT ジオメトリ(POLYGON または MULTIPOLYGON)に含まれる地物のみを選択するための空間フィルタを追加します. spat_extent キーワードを使用すると,データソースまたは -spat オプションの空間範囲に対して使用できます.データソースを指定する場合,通常は -clipsrclayer, -clipsrcwhere または -clipsrcsql オプションと組み合わせて使用することになります.

-clipsrcsql <sql_statement>

SQL クエリを使用して必要なジオメトリを選択します.

-clipsrclayer <layername>

ソースクリップデータソースから指定されたレイヤを選択します.

-clipsrcwhere <expression>

属性クエリに基づいて必要なジオメトリを制限します.

-l <layername>

入力地物に使用されるデータソースからのレイヤを示します.複数回指定できますが,少なくとも 1 つのレイヤ名または -sql オプションを指定する必要があります.

-where <expression>

入力レイヤから処理する地物を選択するために適用されるオプションの SQL WHERE スタイルのクエリ式.

-sql <select_statement>

データソースに対して評価される SQL ステートメントで,処理される地物の仮想レイヤを生成します.

-oo <NAME>=<VALUE>

Added in version 3.7.

ソースデータセットのオープンオプション(フォーマット固有)

-co <NAME>=<VALUE>

多くのフォーマットには,作成されたファイルに関する特定の情報を制御するために使用できる1つ以上のオプションがあります.たとえば,GeoTIFF ドライバは,圧縮を制御する作成オプションやファイルをタイル化するかどうかを制御する作成オプションをサポートしています.

利用可能な作成オプションはフォーマットドライバによって異なり,一部のシンプルなフォーマットには作成オプションが全くありません.フォーマットでサポートされているオプションのリストは,コマンドラインオプション --formats でリストできますが,フォーマットのドキュメントがドライバ作成オプションに関する情報の決定的なソースです.各フォーマットの有効な作成オプションについては, ラスタードライバー フォーマット固有のドキュメントを参照してください.

-q

進行状況モニターとその他のエラー以外の出力を抑制します.

<src_datasource>

OGR でサポートされている読み取り可能なデータソース.

<dst_filename>

GDAL でサポートされている出力ファイル.

補間アルゴリズム

選択できる補間アルゴリズムがいくつかあります.

これについての詳細は GDALグリッドチュートリアル にも記載されています

不一致

べき乗の逆距離.これがデフォルトのアルゴリズムです.次のパラメータがあります:

  • power: 重み付け係数 (デフォルト 2.0).

  • smoothing: スムージングパラメータ (デフォルト 0.0).

  • radius1: 検索楕円の最初の半径(X 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius2: 検索楕円の 2 番目の半径(Y 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius: 最初の半径と 2 番目の半径を設定します(radius1 と radius2 とは相互排他です).デフォルトは 0.0 です. GDAL 3.6 で追加されました

  • angle: 検索楕円の回転角度(度単位,反時計回り,デフォルト 0.0).

  • max_points: 使用するデータポイントの最大数.この数より多くのポイントを検索しないでください.これは検索楕円が設定されている場合のみ使用されます(両方の半径がゼロでない).ゼロは,見つかったすべてのポイントを使用することを意味します.デフォルトは 0 です.

  • min_points: 使用するデータポイントの最小数.見つかったポイントの数が少ない場合,グリッドノードは空と見なされ, NODATA マーカーで埋められます.これは検索楕円が設定されている場合のみ使用されます(両方の半径がゼロでない).デフォルトは 0 です.

  • max_points_per_quadrant: クォードラントごとに使用するデータポイントの最大数.デフォルトは 0 です. GDAL 3.6 で追加されました.指定された場合,これは実際には invdistnn 実装を使用します.

  • min_points_per_quadrant: クォードラントごとに使用するデータポイントの最小数.デフォルトは 0 です. GDAL 3.6 で追加されました.指定された場合,これは実際には invdistnn 実装を使用します.

  • nodata: 空のポイントを埋めるための NODATA マーカー(デフォルト 0.0).

invdistnn

Added in version 2.1.

最近傍探索を伴うべき乗の逆距離, max_points が使用されている場合に理想的です.次のパラメータがあります:

  • power: 重み付け係数 (デフォルト 2.0).

  • smoothing: スムージングパラメータ (デフォルト 0.0).

  • radius: 検索円の半径,ゼロでない必要があります.デフォルトは 1.0 です.

  • max_points: 使用するデータポイントの最大数.この数より多くのポイントを検索しないでください.重み付け時に,見つかったポイントは最も近い距離から最も遠い距離までランク付けされます.デフォルトは 12 です.

  • min_points: 使用するデータポイントの最小数.見つかったポイントの数が少ない場合,グリッドノードは空と見なされ, NODATA マーカーで埋められます.デフォルトは 0 です.

  • max_points_per_quadrant: クォードラントごとに使用するデータポイントの最大数.デフォルトは 0 です. GDAL 3.6 で追加されました.指定された場合,アルゴリズムは補間されるポイントに対して右上,左上,右下,右上の各クォードラントごとに最大 max_points_per_quadrant ポイントまでしか考慮しません.

  • min_points_per_quadrant: クォードラントごとに使用するデータポイントの最小数.デフォルトは 0 です. GDAL 3.6 で追加されました.その数に達しない場合,補間されるポイントは NODATA マーカーで設定されます.指定された場合,アルゴリズムは補間されるポイントに対して右上,左上,右下,右上の各クォードラントごとに少なくとも min_points_per_quadrant ポイントを収集します.

  • nodata: 空のポイントを埋めるための NODATA マーカー(デフォルト 0.0).

min_points_per_quadrant または max_points_per_quadrant が指定された場合,検索は補間されるポイントに最も近いポイントから始まり,最初のクォードラントから補間されるポイントに最も近いポイント,2 番目のクォードラントから補間されるポイントに最も近いポイントなど,4 番目のクォードラントまで続き,最初のクォードラントの次に最も近いポイントなど,``max_points`` および/または max_points_per_quadrant のしきい値に達するまで続きます.

平均

移動平均アルゴリズム.次のパラメータがあります:

  • radius1: 検索楕円の最初の半径(X 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius2: 検索楕円の 2 番目の半径(Y 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius: 最初の半径と 2 番目の半径を設定します(radius1 と radius2 とは相互排他です).デフォルトは 0.0 です. GDAL 3.6 で追加されました

  • angle: 検索楕円の回転角度(度単位,反時計回り,デフォルト 0.0).

  • max_points: 使用するデータポイントの最大数.この数より多くのポイントを検索しないでください.重み付け時に,見つかったポイントは最も近い距離から最も遠い距離までランク付けされます.デフォルトは 0 です. GDAL 3.6 で追加されました. min_points_per_quadrant または max_points_per_quadrant のいずれかまたは両方が指定されている場合のみ考慮されます

  • min_points: 使用するデータポイントの最小数.見つかったポイントの数が少ない場合,グリッドノードは空と見なされ, NODATA マーカーで埋められます.デフォルトは 0 です.

  • max_points_per_quadrant: クォードラントごとに使用するデータポイントの最大数.デフォルトは 0 です. GDAL 3.6 で追加されました.指定された場合,アルゴリズムは補間されるポイントに対して右上,左上,右下,右上の各クォードラントごとに最大 max_points_per_quadrant ポイントまでしか考慮しません.

  • min_points_per_quadrant: クォードラントごとに使用するデータポイントの最小数.デフォルトは 0 です. GDAL 3.6 で追加されました.その数に達しない場合,補間されるポイントは NODATA マーカーで設定されます.指定された場合,アルゴリズムは補間されるポイントに対して右上,左上,右下,右上の各クォードラントごとに少なくとも min_points_per_quadrant ポイントを収集します.

  • nodata: 空のポイントを埋めるための NODATA マーカー(デフォルト 0.0).

移動平均法には検索楕円を設定することが重要です.これは,グリッドノードの値を計算する際に平均化されるウィンドウです.

min_points_per_quadrant または max_points_per_quadrant が指定された場合,検索は補間されるポイントに最も近いポイントから始まり,最初のクォードラントから補間されるポイントに最も近いポイント,2 番目のクォードラントから補間されるポイントに最も近いポイントなど,4 番目のクォードラントまで続き,最初のクォードラントの次に最も近いポイントなど,``max_points`` および/または max_points_per_quadrant のしきい値に達するまで続きます.

最近傍

最近傍アルゴリズム.次のパラメータがあります:

  • radius1: 検索楕円の最初の半径(X 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius2: 検索楕円の 2 番目の半径(Y 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius: 最初の半径と 2 番目の半径を設定します(radius1 と radius2 とは相互排他です).デフォルトは 0.0 です. GDAL 3.6 で追加されました

  • angle: 検索楕円の回転角度(度単位,反時計回り,デフォルト 0.0).

  • nodata: 空のポイントを埋めるための NODATA マーカー(デフォルト 0.0).

線形

Added in version 2.1.

線形補間アルゴリズム.

線形法は,点群のデラニ三角形分割を計算し,点が三角形のどこにあるかを見つけ,三角形内のバリセントリック座標から線形補間を行うことで線形補間を実行します.点がどの三角形にも含まれていない場合,半径に応じて,アルゴリズムは最も近い点の値または nodata 値を使用します.

次のパラメータがあります:

  • radius: 補間される点がデラニ三角形分割の三角形に適合しない場合,最大距離を使用して最近傍を検索するか,それ以外の場合は nodata を使用します.-1 に設定すると,検索距離は無限です.0 に設定すると,常に nodata 値が使用されます.デフォルトは -1 です.

  • nodata: 空のポイントを埋めるための NODATA マーカー(デフォルト 0.0).

データメトリクス

補間機能に加えて,指定されたウィンドウと出力グリッドジオメトリを使用して,いくつかのデータメトリクスを計算するために gdal_grid を使用できます.これらのメトリクスは次のとおりです:

  • minimum: 検索楕円グリッドノード内の最小値.

  • maximum: 検索楕円グリッドノード内の最大値.

  • range: 検索楕円グリッドノード内で見つかった最小値と最大値の差.

  • count: 検索楕円グリッドノード内で見つかったデータポイントの数.

  • average_distance: グリッドノード(検索楕円の中心)と検索楕円グリッドノード内で見つかったすべてのデータポイントとの平均距離.

  • average_distance_pts: 検索楕円グリッドノード内で見つかったデータポイント間の平均距離.楕円内の各ペアのポイント間の距離が計算され,すべての距離の平均がグリッドノード値として設定されます.

すべてのメトリクスには同じオプションセットがあります:

  • radius1: 検索楕円の最初の半径(X 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius2: 検索楕円の 2 番目の半径(Y 軸,回転角が 0 の場合).このパラメータをゼロに設定して,全点配列を使用します.デフォルトは 0.0 です.

  • radius: 最初の半径と 2 番目の半径を設定します(radius1 と radius2 とは相互排他です).デフォルトは 0.0 です. GDAL 3.6 で追加されました

  • angle: 検索楕円の回転角度(度単位,反時計回り,デフォルト 0.0).

  • min_points: 使用するデータポイントの最小数.見つかったポイントの数が少ない場合,グリッドノードは空と見なされ, NODATA マーカーで埋められます.これは検索楕円が設定されている場合のみ使用されます(両方の半径がゼロでない).デフォルトは 0 です.

  • max_points_per_quadrant: クォードラントごとに使用するデータポイントの最大数.デフォルトは 0 です. GDAL 3.6 で追加されました.指定された場合,アルゴリズムは補間されるポイントに対して右上,左上,右下,右上の各クォードラントごとに最大 max_points_per_quadrant ポイントまでしか考慮しません.

  • min_points_per_quadrant: クォードラントごとに使用するデータポイントの最小数.デフォルトは 0 です. GDAL 3.6 で追加されました.その数に達しない場合,補間されるポイントは NODATA マーカーで設定されます.指定された場合,アルゴリズムは補間されるポイントに対して右上,左上,右下,右上の各クォードラントごとに少なくとも min_points_per_quadrant ポイントを収集します.

  • nodata: 空のポイントを埋めるための NODATA マーカー(デフォルト 0.0).

min_points_per_quadrant または max_points_per_quadrant が指定された場合,検索は補間されるポイントに最も近いポイントから始まり,最初のクォードラントから補間されるポイントに最も近いポイント,2 番目のクォードラントから補間されるポイントに最も近いポイントなど,4 番目のクォードラントまで続き,最初のクォードラントの次に最も近いポイントなど,``max_points`` および/または max_points_per_quadrant のしきい値に達するまで続きます.

カンマ区切り値の読み取り

しばしば,作業するためのカンマ区切り XYZ 値のリストを含むテキストファイル(いわゆる CSV ファイル)があります. gdal_grid でその種類のデータソースを簡単に使用できます.必要なのは,CSV ファイルの仮想データセットヘッダ(VRT)を作成し, gdal_grid の入力データソースとして使用するだけです. VRT フォーマットの詳細については, VRT -- Virtual Format 説明ページを参照してください.

以下に小さな例を示します. dem.csv という CSV ファイルが含まれているとします.

Easting,Northing,Elevation
86943.4,891957,139.13
87124.3,892075,135.01
86962.4,892321,182.04
87077.6,891995,135.01
...

上記のデータに対して,以下の内容の dem.vrt ヘッダを作成します:

<OGRVRTDataSource>
    <OGRVRTLayer name="dem">
        <SrcDataSource>dem.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="Easting" y="Northing" z="Elevation"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

この記述は,3 つの座標 X, Y, Z を持ついわゆる 2.5D ジオメトリを指定します. Z 値が補間に使用されます.これで dem.vrt をすべての OGR プログラムで使用できます(ogrinfo から始めて,すべてが正常に動作するかどうかをテストしてください).データソースには,CSV ファイルの値から構築されたポイントフィーチャで構成された "dem" という名前の単一レイヤが含まれます.このテクニックを使用すると,3 列以上の CSV ファイルを処理したり,列を切り替えたりすることができます.では,最後のステップです:

gdal_grid dem.vrt demv.tif

または,VRT ファイルを使用したくない場合:

gdal_grid -l dem -oo X_POSSIBLE_NAMES=Easting \
-oo Y_POSSIBLE_NAMES=Northing -zfield Elevation dem.csv dem.tif

CSV ファイルに列ヘッダが含まれていない場合,以下の方法で VRT ファイルで処理できます:

<GeometryField encoding="PointFromColumns" x="field_1" y="field_2" z="field_3"/>

Comma Separated Value (.csv) 説明ページには,GDAL/OGR でサポートされている CSV フォーマットの詳細が記載されています.

マルチバンドファイルの作成

gdal_grid で直接マルチバンドファイルを作成することはできません.1 つのファイルあたり 1 バンドを作成するために複数回 gdal_grid を使用し,次に gdalbuildvrt -separate を使用してから gdal_translate を使用することができます:

gdal_grid ... 1.tif; gdal_grid ... 2.tif; gdal_grid ... 3.tif
gdalbuildvrt -separate 123.vrt 1.tif 2.tif 3.tif
gdal_translate 123.vrt 123.tif

または,1 バンドファイルを 1 つのファイルに結合するために gdal_merge を使用することもできます:

gdal_grid ... a.tif; gdal_grid ... b.tif; gdal_grid ... c.tif
gdal_merge -separate a.tif b.tif c.tif -o d.tif

C API

このユーティリティは, GDALGrid() を使用して C からも呼び出すことができます.

次のコマンドは,逆距離べき乗法を使用して, Reading comma separated values セクションで説明されている VRT データソースからラスター TIFF ファイルを作成します.補間する値は,ジオメトリレコードの Z 値から読み取られます.

gdal_grid -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 \
    -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff

次のコマンドは,前のコマンドと同じことを行いますが,**-zfield** オプションで指定された属性フィールドから補間する値を読み取ります.この場合, X と Y 座標はジオメトリから取得され,Z は "Elevation" フィールドから取得されます.計算を並列化するために GDAL_NUM_THREADS も設定されています.

gdal_grid -zfield "Elevation" -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 \
    -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt \
    dem.tiff --config GDAL_NUM_THREADS ALL_CPUS