ArcGISでは、単バンド(1ビット、もしくは8ビット)のラスタ データセットに限ってカラーマップというセル値を表現する色をあらかじめデータ内に格納しておくことができます。
ラスタ セルの各色を表現するには任意のRGBを割り当てないといけませんが、1ビットや8ビットのラスタだとRGBを表現することはできません。通常はモノクロ、もしくはグレースケールで表現されてしまうところですが、ラスタの解析ではセルの値に関心があるわけで、セルの色はその表現手法に他ならず(単バンドは特に)、グレースケールで表現すると表現が貧弱で結果が分かりにくい場合があります。
ArcMapでは適当な遷移色を割り当てたりするレンダラ(シンボル タブ)も用意されてますが、特定のセル値に割り当てたい色が決まっている場合はカラーマップであらかじめ定義しておくのが便利です。
ただ、このカラーマップの設定はArcGISの標準GUIで用意されてません。
うーん困った。そこでArcObjectsの出番です。
Private Sub Run() 'アクティブ データ フレームの最上位レイヤにラスタ レイヤを配置 Dim pMxDocument As IMxDocument Set pMxDocument = ThisDocument Dim pRasterLayer As IRasterLayer Set pRasterLayer = pMxDocument.FocusMap.Layer(0) 'カラーマップの割り当て Dim lOLE_COLOR(1) As OLE_COLOR lOLE_COLOR(0) = vbBlack 'セルの0値に黒を設定 lOLE_COLOR(1) = vbWhite 'セルの1値に白を設定 CreateRasterColorMap pRasterLayer, lOLE_COLOR End Sub Private Sub CreateRasterColorMap(RasterLayer As IRasterLayer, OLE_COLORs() As OLE_COLOR) 'ColorMapの作成 Dim pRasterColorMap As IRasterColormap Set pRasterColorMap = New RasterColormap pRasterColorMap.Colors = OLE_COLORs '対象レイヤの取得 Dim pDataset As IDataset Set pDataset = RasterLayer Dim pName As IName Set pName = pDataset.FullName 'カラーマップを変更 Dim pRasterDatasetEdit As IRasterDatasetEdit Set pRasterDatasetEdit = pName.Open ' pRasterDatasetEdit.DeleteColormap 'カラーマップの削除 pRasterDatasetEdit.AlterColormap pRasterColorMap 'カラーマップの追加 End Sub