[GDAL]GeoTiffファイルの容量をLZW等で小さくする

GDALでGeoTIFF等のラスタを作成する際に、以前のサンプルのようにGDAL.DatasetのコンストラクタのオプションをNullにした場合だと、データが全く圧縮されないために猛烈に重たくなってしまいます。この場合、LZWなどのアルゴリズムを使って圧縮すればデータ量を小さくすることが出来ます。
今まではGDALでは圧縮できないと思い込んでいたのですが、ちょっと調べたらDatasetクラスのコンストラクタのオプションを使えば圧縮できるということがわかったので備忘録的に。

使える圧縮形式とオプションの内容はGDAL公式の「gdal-driver-options.txt」に書かれていますが、ここではC#のラッパーを使って圧縮する場合の具体的なコードを書いてみます。

//オプションの設定
string[] sOptions = new string[] { "COMPRESS=LZW", "PREDICTOR=2" };

//出力ファイル:ファイル名・幅・高さ・バンド数・ピクセルのデータ型、オプション(null)
using (GDAL.Dataset dsOut = drv.Create(OutFile, iW, iH, 1, GDAL.DataType.GDT_Float64, sOptions))
{
    //中身の処理(略)
}

この記事の作成には下記のサイト(ページ)の情報を参考にさせて頂きました。

https://gist.github.com/yeesian/9468a9100fb1f08ec64a21c20dcc4af9