クラウドGIS「ArcGIS Online」での主題図作成
【1】はじめに 本記事のスコープ
この記事では以下の内容をスコープに含みます。
本記事に含まれるもの:
・クラウド型GIS(ArcGIS Online)で主題図を作成する操作を学ぶ
・ArcGISで主題図(図形表現図・階級区分図)を作成する仕組みを学ぶ
本記事に部分的に含まれるもの:
・ArcGISで主題図(図形表現図・階級区分図)を作成するために必要なデータの入手方法を知る
本記事に含まれないもの:
・主題図とは何かを知る
・主題図の正しいデザインを学ぶ
なおいずれの情報も2021年5月現在の情報に基づきます。特に各WebサービスのUI・機能については、提供者側からの機能更新が行われ、本記事の記載と異なる場合がありますのでご注意ください。
また、主に中高地理教育現場でGISを活用しようとしている方々を主な読者として想定しています。
【2】「主題図」とはなにか
前述の通り、私はこの記事を書くにあたって「主題図とはなにか」を語ることから全力で逃げているわけですが、とはいえ記事の前提条件として触れたほうが良いとは思うので、簡単に(あくまで簡単に!)触れます。
「主題図」は「特定の目的のために、特定の事象を意図的に取り上げて表現した地図」(山川出版社「地理用語集 第2版A・B共用」)と定義されるのだそうです。対義語は「多目的に用いる一般的な地図」である「一般図」です。Google Mapsや地理院地図などが典型的な例ですね。
また主題図も、表現する「特定の事象」によって
・定性的な情報を表現する主題図
・定量的な情報を表現する主題図
に区分されます。
更に「定量的な情報を表現する主題図」も、情報の特性や伝えたい意図によって、階級区分図、図形表現図、カルトグラム、等値線図、流線図・・・などに分類されます。
各主題図の詳細な説明からは逃げることにして、この記事で取り上げる2つの主題図のタイプについて紹介します。
・階級区分図
単位地域・地物(国や都道府県など)を、紐付いた情報の数量に応じて塗り分けることで、情報の大小を表現した主題図です。人口密度など、面積で正規化された情報や、地域感の差など、相対的な値を表現することに長じています。逆に、人口別に塗り分けたときに、ロシアや北海道など、面積の単位地域(国・都道府県など)が過大評価されてしまう、などの理由で絶対数の表現には適さないことが多いとされます。
例えば以下で公開している「生産年齢人口の推移マップ」は、過去10年の各国の生産年齢人口の増減で国を塗り分けた階級区分図と言えますね。(等積図法ではないWebメルカトル図法で作成していることの弊害については後述します)
・図形表現図
単位地域・地物に紐付いた情報の数量を、円やイラストなどのサイズ、色、線の太さなどで表現したものです。階級区分図のように、面積の広い地域の過大評価を誘発しづらいため、絶対数を表現する際に用いられるとされます。一方で、表現する図形が各地域の代表点(ポリゴンの場合は重心など)に表示されるため、その代表点に数値が集約されているようなミスリーディングを誘発しうる、などの注意点があると言われます。ネガティブな情報(例えば市町村ごとの犯罪発生数など)を表現する際には特に注意すべき欠点かと思います。
図形表現図の例ですが、同じく私が作成した世界三大穀物の生産量を示したマップがそれに当たります。(こちらも同じく等積図法ではない図法で以下略)
主題図のデザインにあたっては、色合い(例えば「人口減少率」などのネガティブな傾向は青色などの寒色系の色合いで表現することが望ましい)や、階級・図形の表現のしきい値の設定、用いる投影法(前述の通り、単位地域の面積は、情報に印象に強く寄与するため、等積図法を用いることが望ましい)など「主題図はこうあるべき」というデザインの「作法」がいくつかあります。
地理学やGISなどを体系的に学ぶ機会があれば、こうした作法にふれる人がほとんどだと思います。私もこうした作法を学んだ一人ですし、またこれらの作法の多くには同意するところですが、前提として(おそらく地理関係者の中では異端です)「そもそもが地図という情報媒体は現実世界のすべての情報を内包することは少なくとも現時点で技術的に不可能であり、完全な客観性を持つ地図は存在し得ないため、主題図というものは(おそらくは一般図も)作者の主観を反映してしまう。この前提に立てば、主題図に厳密な客観性を期待すること自体ナンセンスである。だから主題図には製作者の意図を伝えるという役割だけが期待されるべきであり、それはかならずしも教科書に記載のある作法に機械的に従うことで得られるものではない。」という思想の持ち主であり、主題図のデザイン作法を語る資格のない人間だと思いますので、よろしければ以下のような、しっかりとまとめられた文献を参照されることを推奨します。
『GISを使った主題図作成講座-地域情報をまとめる・伝える』 https://www.amazon.co.jp/dp/4772241876/ref=cm_sw_r_tw_dp_CBX16TC4PANZ59DXY6B5
※業界の方に誤解を招かないように補足しますが、主題図のデザインにおいていたずらに最低限の作法にすら従わないことは、相手のミスリーディングを誘発し、情報を伝える媒体という地図の本質的な役割を損なうことにほかならないので、批判されるべきです。ですがあえて「情報を正しく伝えない」意図が込められた地図も世の中には溢れているのは事実で、それが地図の面白さなんだと思います。ところで私は地図屋さんではありませんので本題に戻ります。
これくらい前置きしておけば本題に進んでも怒られませんね!
(怒られそうな気がする)
【3】単位地域のデータと、主題データを用意する
さて、前章で、この記事では主題図のうち「階級区分図」と「図形表現図」をの作成方法を取り上げます、と述べました。この記事では知人にリクエストを頂戴したEsriのクラウドGIS「ArcGIS Online」を用いて、これらの主題図を作成する手順を紹介します。
本記事で用いているArcGIS 製品は、個人の研究・学習目的で使用しており、本Noteもその成果を公開することを目的としていることをお断りしておきます。EsriのArcGIS Onlineは、小学校・中学校・高等学校の教員の方であれば、ESRIジャパンの「小中高教育における GIS 利用支援プログラム」に登録いただくことで、無償で使うことができるそうです。いいないいなうらやましいな
詳細はこちら → https://www.esrij.com/products/k-12-grant/
すぐに使ってみたいという方は、研究・開発目的のライセンスも無償で取得できますのでお試しください。
登録はこちら → https://developers.arcgis.com/
※なお本記事は何かしらの営利目的で作成しているものではないことを改めてお断りします。
話を戻しますが、「階級区分図」や「図形表現図」を作成するためには、
・単位地域の図形データ
・単位地域に紐づく主題情報データ
の2つのデータが必要になります。
厳密には、この2つの主題図は「地域」以外の地物も対象となりえますが(例:鉄道路線を、1日あたりの運行本数で塗り分ける)、話をシンプルにするため、以下地域(都道府県・国など)を対象とします。
都道府県ごとのデータを作るのであれば、総務省統計局のe-Statなどで行政界の図形データと、各統計の主題データが配布されているので重宝しますね。私も長年お世話になっています。(数値型のカラムに「-」みたいな文字列を混ぜるのはやめてほしい)
中高地理の教員の方だと、国ごとの主題図を作成する機会が多いと思います。国のデータはいくつかありますが、最近私がよく使っているのは、世界銀行が配布している国境線データです。
サンプルとして、ArcGIS Onlineにアップしたフィーチャサービスがこちらです。
各国の名称・情報が、3文字コードや各国語名称(日本語含む)などで格納されているのがとても便利です。
ただし、世界銀行という公開者の性質上、係争地(西サハラ中印国境など)などは「どこの国にも属さない」としてデータが欠落しています。それを良しとするかは人それぞれだと思いますが、必要に応じて補完する必要がありますね。
主題情報のデータも、国際機関などを中心に情報の公開が進んでいます。先日Noteでも、FAO(国際連合食糧農業機関)の統計データ入手方法を紹介しました。
今回は、国境線と同じ世界銀行が公開している人口データを使用してみましょう。私も最近使い始めましたが、以下ページで、世界銀行が提供している各統計データを、対象の国・地域や主題、統計年を選択して出力できて便利です(画像にリンクを貼ってあります)。
上図は、今回のNote用にエクスポートしてきたファイルです。ちなみにアップロードしたファイルは以下に共有してありますので演習用にお使いください。
今回は人口総数、女性人口、男性人口を出力しました。国・地域は世界銀行が提供しているすべてのものを出力していますが、地域ごとの集計行(East Asia & Pacific とか)が混ざっているので、図形データと必ずしも1対1で対応するわけではありません。
次の工程で必要になりますので、図形データ・主題データともにArcGIS Onlineの「フィーチャサービス」として公開します。
いくつか手段はありますが、簡単な操作手順を紹介します。主題データとして人口データ(CSVファイル)を公開したときの画面ですが、他のファイル形式でもおおよそ似た感じです。
①ArcGIS Onlineの[コンテンツ]画面を開き、[アイテムの追加]→[コンピュータから]をクリックします。
②[コンピュータからアイテムを追加]ダイアログが立ち上がったら、アップロードしたいファイルを選択し、タイトルおよびタグ情報を記入します。
タイトルは半角英数字でつけることを推奨します(後で日本語名称に変更可能です)。またタグも、後で「あのレイヤーどこ行ったっけなあ」となることを防ぐためにいくつかつけておくとよいです(一応システム側では最低1個つけないと進めないはずです)
③アップするデータの内容を定義します。
[フィーチャの検索]では、地理情報を含むカラム(列)を指定します。
住所情報をもとに地図にプロットすることもできますが、ArcGIS Onlineのジオコーダーを使うのでサービスクレジットをゴリゴリ消費します。
今回は主題データのアップロードだけで、地理情報は図形データと紐付けますので[なし。テーブルとして追加]を選択します。
④[フィールドタイプ]が表示された場合、各カラムのデータ型を定義します。階級区分図・図形表現図を作成するには、Integer(整数型)やDouble(小数型)など、数値型の属性が必要です。ところが、世界銀行から落としてきたCSVをそのまま読み込むと、数値型であってほしい「Population_Male~(男性人口)」などがString(文字列型)になっているので、「Integer」に設定し直します。
本来数値型であるべきセルに「-」などの文字が入っている、などによりデータ型が誤って認識され、あとの処理が出来ない、ということが多発します。それを避けるためにExcelなどで事前にデータ型に合ったデータが格納されているように修正する必要があります。
今回は触れませんが、テーブルデータの整形やデータ型を整える作業は、GISに限らずデータ分析屋さんが皆さん困っているネタなので、ネットの海を漁れば他にもノウハウが出てきますので、お手元の環境や自身のスキルに応じて色々試されると良いと思います。
⑤ここまで設定ができたら、[アイテムの追加]をクリックして、フィーチャサービスの作成を実行します。
これで図形データと主題データが揃ったので、次はこの2つのデータを紐付ける仕組み・操作に触れようと思います。
【4】単位地域データと主題データを紐付ける
1)紐付けの仕組み
主題図の作成にあたって、前章で容易した「図形データ」と「主題データ」の紐付けを行う必要があります。ArcGIS製品にも、それを行うための機能が搭載されています。デスクトップGISの経験がある方は「テーブル結合」という名称で馴染みがあるかもしれません。
例えば上記のように、都道府県名・都道府県コードを属性に含む図形データと、都道府県ごとのある企業の売上情報を含むテーブルデータがあったとします。この2つのテーブルを、「都道府県コード」という共通のカラム(列)をもとに紐付ける処理です。 (1対多の紐付けなども存在しますが割愛)
ここで重要になるのは、2つのテーブルを紐付けにどのカラムを用いるかです。「都道府県コード」ではなく「都道府県名」も一見良さそうに見えますが、図形データ側で「鹿児島県」となるべき箇所が「鹿児島」となっているため、うまく紐付かずエラーのもととなります。
鹿児島「県」が抜けるのは極端な例ですが、私も例えば
市区町村ごとの小学校数を集計しようとしたが、区の名称が「中区」となっているデータが複数あったので、紐付けがうまく行かなかった。
「コートジボワール(Côte d'Ivoire)」が何回やっても紐付かず、おかしいと思ったら図形データ側は英語名称(Ivory Coast)が格納されていた。
などのトラブルに出会ったことがあります。
なので、何かしらの一意のコードで紐付けることが推奨されます。例えば国内の行政界であればJISに都道府県・市区町村のコードの定めがあります。
今回用意したデータでは、主題データ側(人口)の「Country Code」が、図形データ側の「ISO A3 EH」というISO標準の3文字コードに対応している様です。
↑人口データ
↓図形データ
2)紐付けの手順
ArcGIS Onlineでは、テーブル結合に相当する機能が「データの集約ーフィーチャの結合」という解析ツールとして提供されています。
①ArcGIS Onlineの「Map Viewer Classic」を立ち上げる
この画面です。先日のArcGIS Onlineのアップデートで、次世代版の「Map Viewer」がリリースされましたが、まだまだこの画面でしか出来ない作業も多く、現役ですね。
②紐付ける「図形データ」レイヤーと「主題データ」をマップに追加する
Map Viewer 左上の[追加]→[レイヤーの検索]で、ArcGIS Online上のレイヤーを追加出来ます。
外部のArcGIS Onlineユーザーがアップロードしたレイヤーを読み込む場合は、検索先を[ArcGIS Online]とします。例えば今回は「主題図202105」という検索ワードを入力しましょう。前述した世界銀行の国境線データが出てきます。表示されたレイヤーサムネイル右下の「+」をクリックすると、そのレイヤーがマップに追加されます。
自分でアップロードしたデータを追加する場合は、検索先を[マイコンテンツ]とすると見つかりやすいです。例えばここでは前章でアップロードした「WorldBank_Population」を追加します。
マップに、紐付けたい「図形データ」と「主題データ」が読み込まれました。主題データである「WorldBank_Population - Sheet1」には図形情報が含まれませんので、現時点では、地図上には国境図形だけが表示されています。
③「フィーチャの結合」ツールを実行する
Map Viewer 左上の[解析]メニューをクリックし、[データの集約]→[フィーチャの結合]をクリックします。
[フィーチャの結合]ツールの実行に必要な設定を行います。
・ターゲットレイヤーの選択
→紐付ける元の図形データ、ここでは「国境線(世界銀行)」
・ターゲットレイヤーに結合するレイヤーの選択
→紐付ける先の主題データ、ここでは「WorldBank_Population - Sheet1」
・結合タイプの選択
→ここでは「結合するフィールドの選択」を選びます。
→さらに紐付けるカラムを入力します。今回は【4】ー1)で触れた様に、「ISO_A3_EH」と「Country_Code」を選択します。
・結合方法の選択
→1対1で紐付かないデータを扱う際に設定します。今回は無視します。
・結合レイヤーの名前
→半角英数字に書き直してください。
・表示されていない地域も結合させたい場合は「現在のマップ表示範囲を使用」のチェックを外します。
・「クレジットの表示」で、この処理で消費されるArcGIS Onlineのサービスクレジットが確認出来ます。図形データ・主題データ両方とも自分でアップロードしている場合は、もう一つの「結果をホスト フィーチャレイヤー ビューとして使用」にチェックを入れることで、クレジットを消費せずに処理を回すことが出来るみたいです。「ビュー」はストレージでもクレジットを消費しませんので、サービスクレジットの節約になりますね。
マスターとなる国境線データは1つだけアップロードし、授業で用いるために別の主題データを紐付けることで、教材用データの管理を効率化する、といった運用ができそうです。
ここまで設定出来たら、[分析の実行]をクリックします。
無事に結合出来た結果です。属性テーブルを開くと、たしかに人口データが紐付いています。長い道のりでしたが、ようやく主題図作成の材料が整いました。あとは本調理です。
【5】主題図に起こしていく
1)とりあえず描いてみよう
試しに、同じデータで「階級区分図」「図形表現図」を両方作ってみましょう。
先程結合したレイヤーの[スタイルの変更]をクリックします。
[表示する属性を選択]で、表示したい主題のカラム(フィールド)を選択すると、そのフィールドのデータ型に応じた表示メニューが表示されます。「数と量(色)」が階級区分図、「数と量(サイズ)」が図形表現図に相当します。とりあえずなにも設定せずに、ありのままを表示した例がこちらです。
・数と量(色)、階級区分図
・数と量(サイズ)、図形表現図
どんな印象を抱くでしょうか。
例えばロシアは、階級区分図では広大なシベリアが濃紺に塗られていますが、図形表現図ではシベリアの中央に小さな円が配置されているだけで、受ける印象が大きく異なると思います。
・人口という絶対数を階級区分図で表現しているせいでロシアのような面積の多い地域が過大評価される
・等積図法ではないWebメルカトル図法(高緯度地域が特に過大評価されている)で、ロシア・グリーンランド・カナダなどが特に大きく表現されている
・ロシアの人口はウラル山脈以西(ヨーロッパ側)に偏っているはずなのに、まるでシベリアに大都市があるような印象を与えてしまいかねない
など、考えられるこの地図の欠点はいくつもありますね。先述の様に、地図の制作意図をきちんと伝えるために、主題図を整えて行く必要があります。
2)階級区分図を整える
例えば階級区分図であれば、絶対数ではなく相対的な値を表現するのに向いています。各国の人口に占める男性の割合を可視化してみましょう。
[スタイルの変更]メニューの[①表示する属性を選択]で「カスタム(条件式)」を選択します。
条件式を入力するダイアログが立ち上がるので、以下の様に入力します。
$feature["Population__male"]/$feature["Population__total"]
「Population_male(男性人口)」を「Population_total(総人口)」で割った値でシンボルを表示するように設定しています。ダイアログ右部でフィールドを直接クリックしても追加されますし、もう少し複雑な条件式を設定することも可能です。この条件式は、Arcadeという式言語で記述されていますので、このあたりに詳細な解説があります。
カスタム値で可視化した地図です。成人男性の出稼ぎにより、アラブ諸国で男性人口の割合が高くなっている傾向がわかりますね。
「データの分類」でシンボルを非連続的に分類すると、データの傾向差をもう少し強調して表現することも出来ます。例えばしきい値(シンボルが変わる境界の値)を、0.55(100人中55人が男性)と0.5に設定した例です。
3)図形表現図を整える
図形表現図だと、特に強調したい国(例えば人口上位国)以外は割愛をしても良いかもしれません。
レイヤーの[フィルター]をクリックすると、表示するデータを絞り込むことができます。
例えば上記のように入力すると、人口1億人以上の国だけが表示されます。
次に人口1億人以上の国の国名もわかるようにしてみましょう。
[ラベルの作成]メニューをクリックして、
[テキスト]を「NAME_JA」(日本語国名)、
[ハロー]にチェックを入れた例です。
最後に、投影法についても触れましょう。我々が日常で触れるWeb地図のほとんどには「Webメルカトル図法」が採用されていますが、この投影法は面積の歪みが大きいため、面積が印象に与える影響が大きい主題図には向いていないと言われます(とはいえ実装上のハードルの低さから、Webメルカトル図法の主題図は巷に溢れています)。
ArcGIS Onlineでは、ベースマップの投影法に合わせてレイヤーを投影することが出来るので、任意の投影法の背景地図を用意することで、主題図の投影法を変更することができます。任意の投影法の背景地図を作成する方法は、この記事がわかりやすいのでぜひお試し下さい。
今回は、以下の投稿で作成した地図から、モルワイデ図法の背景地図を用意しました。
この背景地図に、先ほどの主題図を重ねたものがこちらです。
【6】おわりに
以上、クラウド型GIS「ArcGIS Online」での主題図の作成方法について紹介してきました。主題図の作成というと、まだArcGIS Desktop やMANDARAなど、デスクトップ向けのGISが主流なのかな、と思いますが、授業での提示や、動的な表示・複数主題の重ね合わせを念頭に置くと、クラウド型GISを活用することの意味もあるのかな、と思っています。
この記事が、特に教育の現場でArcGIS製品を使用されている方たちを中心に、主題図作成にチャレンジしようとしている方々の少しでも役に立てば幸いです。
軽く書くつもりだったのに1万文字!