回答:
概念的には、どのピクセル値がデータのないセルを表すかを把握してから、カラーテーブルを編集して、そのセル値に対してカラーテーブル内のRED、GREEN、BLUE(RGB)値を255,255,255に割り当てる必要があります。
Arcでこれを行うための適切なライセンスがない場合は、gdal_translateツール(gdal / ogrコマンドラインツールの1つ)を使用できます。
tifのカラーテーブルをXMLファイルとしてエクスポートします。
gdal_translate -of VRT myImage.tif outColorTable.vrt
テキストエディタで.vrtファイルを開き、データなしピクセルの値のエントリを見つけます。セル値にはインデックス番号がないため、正しいエントリまでカウントダウンする必要があります。
この値を編集して <Entry c1="255" c2="255" c3="255" c4="255"/>
次に、新しいカラーテーブルに基づいて新しいtifを作成します
gdal_translate outColorTable.vrt newCorrected.tif
(以下のコメントに基づいて追加された例)
上記の項目#2でコマンドを実行し、テキストエディターで.vrtファイルを開くと、XMLコンテンツが表示されます。
ファイルの一部には次のような行が含まれていますが、ほとんどの行は省略しています。
このための小さなgdal pythonスクリプト、gdalsetnull.pyを作成しました。これは、新しいラスターを作成せずに、指定されたラスター値NODATAを設定する単純なコマンドラインプログラムです。WindowsにGDALをインストールする最も簡単な方法は、OSGeo4Wを使用することです。例:
python gdalsetnull.py foobar.tif 0 # pure black is transparent
python gdalsetnull.py foobar.tif 0 255 0 # pure green is
python gdalsetnull.py foobar.tif 50 23 77 100 # arbitrary value in 4 band image
処理のオーバーヘッドを気にせず、その場で編集するのではなく新しい画像を作成する場合は、gdal_calcもあります。これにより、メタデータを更新するだけでなく、実際にセルの値を変更できます。
ゼロ以下の値をnullに設定します。
gdal_calc.py -A input.tif --outfile=result.tif --calc="A*(A>0)" --NoDataValue=0
nodata
ているセルと私で0
あると言うセルには違いがあり、アプリケーションはそれまたは他の値を無視するかどうかを決定します。ArcGISはgdalsetnull.pyの結果を尊重します。GeoServerの経験がありません。
新しいSLDファイルを作成しないことを希望したことに加えて、GeoTIFFの内部カラーマップをSymbologyEncoding / SLDに変換し、そこで別の色を定義する方法に関するブログエントリがあります。派生SLDでは、100%透明色でレンダリングする値を正確に定義するのは簡単です。