地理院タイルをArcGIS Proでグレースケールにする方法

**実行環境**
[ArcGIS Pro](https://www.esrij.com/products/arcgis-pro/) 3.3

## はじめに

[ArcGIS活用法](https://qiita.com/advent-calendar/2024/arcgis) アドベントカレンダーの さかのぼり投稿 です。

主題図を作成する際、背景をグレースケールにすると主題が目立つので効果的です。

背景としてのラスタデータは、自前で画像データを準備して使うこともできますが、配信されている地図タイルを使う方法が手っ取り早いです。

なかでも、国土地理院の地理院タイルは日本のオフィシャルな地図という意味合いが強く、国内で広く使われています。

https://maps.gsi.go.jp/development/ichiran.html

ただ、地理院タイルはカラー版のみの提供で、グレースケール版はありません。

通常のラスタであれば、画像ファイルそのものを RGB からグレースケールにしてしまうか、ArcGIS Pro の [グレースケール関数](https://pro.arcgis.com/ja/pro-app/latest/help/analysis/raster-functions/grayscale-function.htm) を適用するなどすればよいです。

一方で、配信されている地理院タイルについては ArcGIS Pro 上でグレースケール化するのにひと工夫が必要になります。

今回は [ArcGIS Pro](https://www.esrij.com/products/arcgis-pro/) で読み込んだ地理院タイルをグレースケールにする方法のひとつを紹介します。

![map_gray.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/c4800412-869b-8312-d55f-f2c582b6f017.png)

## マップの場合

[マップ](https://pro.arcgis.com/ja/pro-app/latest/help/mapping/introduction/maps-in-arcgis-pro.htm) の場合と [レイアウト](https://pro.arcgis.com/ja/pro-app/latest/help/layouts/layouts-in-arcgis-pro.htm) の場合に分けて書きます。

まず、マップを（マップタブから）直接見る場合です。

**1. 地理院タイルを読み込む**

パスからのデータの追加で配信URLを入力して地理院タイルをマップに読み込みます。

レイヤ名は適宜変更します。

ここでは、地理院タイルの標準地図を使っています。

![add_data_from_path.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/c8ef6582-5bcb-924c-16f0-4312a3524d71.png)


**2. レイヤーのブレンドで「輝度」を指定する**

ここがキモです。

「輝度」という選択肢は、色の組み合わせモードの中にあります。

この処理の詳細については後述します。

![layer_blend.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/bcce6ec8-e007-36ff-ee41-6663b74b6ead.png)

**3. レイヤを最下層に配置する**

地理院タイルを一番下のレイヤにします。

もっと目立たなくしたいときは透過率を上げてください。

## レイアウトの場合

続いて、レイアウトから [マップフレーム](https://pro.arcgis.com/ja/pro-app/latest/help/layouts/add-and-modify-map-frames.htm) 越しにマップを見る場合です。

条件によっては、マップでグレースケールに見えてもレイアウトだとカラーになってしまう場合があります。

レイアウトからみた地理院タイルをグレースケールにするには、先述のマップでの設定に加えて、レイアウト上のマップフレームの設定が必要です。

マップとマップフレームは別物なので、混同しないようにしましょう。

**4. 「マップの背景色の使用」のチェックを外す**

オプションから設定できます。

![map_background_color.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/c03cd40f-b77d-461f-2730-9712f98b6501.png)

**5. マップフレームの背景を白にする**

リボンのマップフレームから現在の選択セットに「背景」を指定して、背景の塗りつぶしを白にします。

![mapframe_background_color.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/1df3b5ab-ea1a-2e86-6a6a-9ca90cb1240e.png)

***

以上で、レイアウトからみた地理院タイルもグレースケールで見えるようになります。

ちなみに「マップの背景色の使用」にチェックを入れてマップの背景を白にしてもよいです。

## レイヤーのブレンドの輝度とは

レイアウトの設定はひと手間ありますが、基本的にはレイヤに「レイヤーのブレンド」の「輝度」を適用することで、地理院タイルをグレースケールにしています。

https://pro.arcgis.com/ja/pro-app/latest/help/mapping/layer-properties/apply-visual-effects.htm

レイヤーのブレンドを設定すると、設定したレイヤとその下に見える色同士で指定の処理が行われます。

「輝度」というのは、そのなかのひとつの処理の名前です。（光学における物理量ではないです）

色をデータで扱う際、RGB の三原色を各8ビット（0~255）で捉えることが多いですが、「輝度」では HSL カラーで色を考えます。

HSL は以下の単語の頭文字で表される3要素です。

+ H: Hue （色味）
+ S: Saturation （鮮やかさ）
+ L: Luminosity （明るさ）


輝度は、この中の Luminosity のことです。

「輝度」を設定したレイヤの明るさの要素と、その下にある色の色味と鮮やかさの要素で、ひとつの色が構成される仕組みです。

| 色のもと | H: Hue （色味） | S: Saturation （鮮やかさ） | L: Luminosity （明るさ） |
|:-----------:|:--:|:--:|:--:|
| 地理院タイル | - | - | ○ |
| その下の色 | ○ | ○ | - |

なお、HSL は HSV (V: Value) という場合もあります。

## なぜグレースケールになるのか

「輝度」を適用した地理院タイルの下の色が白だからです。

白は色味も鮮やかさもゼロなので、結果的に「輝度」設定されたレイヤの明るさの要素のみで色が決まるという理屈です。

| 色のもと | H: Hue （色味） | S: Saturation （鮮やかさ） | L: Luminosity （明るさ） |
|:-----------:|:--:|:--:|:--:|
| 地理院タイル | - | - | ○ |
| その下の色 | なし | なし | - |

ただしレイアウトの場合で見たように、白ではなく無色設定になっていると効果が適用されないので気を付けましょう。

なお、わかりやすく白と書きましたが、実際には黒や灰色など無彩色（R=G=B）であれば同様の効果となります。

無彩色は、文字通り色味も鮮やかさもゼロのためです。

逆に、マップ（マップフレーム）の背景を赤などの有彩色にするとその色の濃淡の背景ができます。（使いどころが難しいですが）

下の図は、赤い標準地図で作成した世界文化遺産位置図（クリスマス配色版）です。

![map_red.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/4eb0f269-437b-55b1-aaff-7178684b5e89.png)

## マップフレーム上のクレジット表記について

ここからは色の話ではないのですが、地理院タイルをパスから追加すると、レイアウトのマップフレームの右下にクレジットが自動で追加されます。

![map_color_osmcredits.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/845d1f77-df45-c3b4-f9c5-2c9cbd7e45d1.png)

![osm_credit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/e1809094-01b7-740e-06bd-2b5ef8c3ba8d.png)

このクレジットはオープンストリートマップ用のものなので地理院タイルには使えません。

このクレジットを消す2つの方法を紹介します。

**1. スケールや凡例等のオブジェクトで隠す**

用紙の右下にオブジェクト用のスペースを確保しなくてはいけないためレイアウトの制約が発生しますが、楽な方法です。

併せて、地理院の [利用規約](https://www.gsi.go.jp/kikakuchousei/kikakuchousei40182.html) に則り、出典を記載します。

![gray_scalebar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/5124df21-7723-78a0-3d55-76fb93b51ddf.png)

**2. ダイナミックテキスト「サービスレイヤーの著作権」にクレジットを移す**

レイアウトにダイナミックテキスト「サービスレイヤーの著作権」を配置すると、こちらにオープンストリートマップのクレジット表記が移り、マップフレームからは表記が消えます。

このオブジェクトは、「グラフィックとテキスト」タブからレイアウトに挿入できます。

![service_layer_credits.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/378020e9-ecb0-a8a8-95bd-a34c4cf8b7c1.png)

その後、このダイナミックテキストをレイアウト用紙外に移動するか非表示にします。

少し回りくどいですが、レイアウトの制約がなくなるのでオススメです。

![gray_dynamictext.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1409923/06414ccc-cc14-c461-ef75-b3b1b091ccd6.png)

図では説明上分かりやすいようにダイナミックテキストを表示しています。

地理院の出典の記載もお忘れなく。


## おわりに

地理院タイルは背景図として作成されているものではありません。

読み込んだ地図タイルの見え方をアプリケーション側で容易に変更できないのも、オリジナルの仕様を尊重しようという意図だと思います。

それを承知の上で、ユーザ都合でグレースケール化して背景図としていることに留意してください。

また、背景としてラスタではなくベクタを使用するという選択もありますので、状況によって使い分けましょう。

なお、ここでは地理院タイルを例に挙げましたが、[OpenStreetMap](https://www.openstreetmap.org/) など他の地図タイルでも今回紹介の方法で同様にグレースケール化できます。

最後の紹介になってしまいましたが、地理院タイルをグレースケール化する別の方法が本家 [ArcGISブログ](https://blog.esrij.com/2024/05/21/post-57384/) にも載っていましたので、気になる方はそちらもご確認ください。