事例176

GISを用いたデータの可視化と問題発見・解決(説明編)

埼玉県立川越南高校 春日井 優先生

第12回全国高等学校情報教育研究会全国大会より
第12回全国高等学校情報教育研究会全国大会より

「データの活用」を学ぶ上で重要なことは何か

 

初めに簡単な自己紹介をします。現任校は7年目で、これまで事例発表では、グループワークによる問題解決について扱ってきました。題材として、モデル化とシミュレーション、テキストマイニングと機械学習、データ活用(クロス集計やカイ2乗検定)を扱ったものです。

 

今回の発表と関係する経歴としまして、文部科学省の「情報Ⅰ」「情報Ⅱ」の教員研修用教材作成のワーキンググループの委員を務めました。

 

 

この教員研修用教材を作成した時の議論で、今回の内容と関係するものについてお話しします。

 

「データの活用」では、まずはデータの可視化をすることが重要です。そうすると、ついつい統計量を求めるところに行きがちなのですが、「まずはそのデータをさまざまな表現方法で可視化してデータの傾向が見えてくるということが重要ではないか」という議論がありました。

 

研修用教材ではデータの可視化がさまざまな形で行われているのがわかりますので、ぜひご覧ください。

 

また、複数のデータを重ね合わせたり、組み合わせたりすることが重要だという議論もありました。ギャップがあるところを詳しく見ていくと、重要なことが見つかります。また、散布図行列のような形で、複数の組み合わせが分かるような形で可視化をすると、項目間の相関の強弱が分かるということで、「データは単独で見るのではなく、重ねたり組み合わせたりというところも重要だ」ということも議論されました。

 

 

「情報システムが提供するサービス」~オープンデータを問題解決に活用する

 

今回の授業の概要です。「情報Ⅰ」の教員研修用教材の『学習20』にある『情報システムが提供するサービス』をもとに検討しました。ここには5つの項目がありますが、この全てではなく、『(2)オープンデータの重要性とその活用』、『(4)国や地方公共団体が提供するオープンデータ』、そして『(5)GISを用いたデータの可視化と問題発見』に関係する内容になっています。

 

 

こちらが現行の学習指導要領での授業の位置付けです。本校では1年生で「情報の科学」を実施しています。この中の、「(1)コンピューターと情報通信ネットワーク」の「問題解決の基本的な考え方」「情報システムの働きと提供するサービス」と、「(3)情報の管理と問題解決」の「情報の蓄積・管理とデータベース」の項目が、「情報I」と項目名も重なっており、内容もかなり近いものです。

 

「情報I」では、ここにさらに新しい内容が加わっていきますので、今回はこの新しい内容も含めた授業をやってみました。

 

 

[授業の展開]

 

■一斉授業でユーザ登録や基礎的な操作方法を学ぶ

 

授業の展開です。まず、この授業の前にデータベースの概要を学び、その後「データベースに蓄えられたデータを引っ張ってきて活用しよう」という授業を展開しました。

 

グループ学習をする前に、一斉授業としてe-Statのユーザ登録や、e-Statに登録されているデータの閲覧を1時間かけて行いました。

 

また、統計地図を作成できる機能がありますので、その作成も1時間で行いました。そして、オープンデータの取得や処理で1時間半、APIを活用した位置情報の取得で1時間半。そして、統計地図と位置情報の重ね合わせ、読み取りの作業について1時間かけて一斉授業を行いました。

 

 

■e-Statは政府統計のダウンロードのほか、グラフ作成や地図表示もできる

 

まずe-Statについて紹介します。

 

「政府統計の総合窓口」(※1)というサイトがありまして、政府統計を表示されており、ここからダウンロードすることができます。ここには、政府統計からグラフを作成したり、政府統計で位置に関係するものを地図と重ねて表示したりできる機能があります。

 

さらに、アカウントを登録することによって、e-StatのAPI機能が使えるようになったり、地図機能の中でもプロット機能、位置情報を用いてプロットを表示するという機能が追加できたりします。

 

  ※1 https://www.e-stat.go.jp/

 

 

今回は、特にe-Statの位置情報やプロット機能が使いたかったので、生徒にユーザ登録をさせました。埼玉県内の県立高校全校の生徒が、Google for Educationのアカウントを持っているので、本校もこれを使ってe-Statに登録を行いました。ネットの環境が少し順調でなく、途中でユーザ登録が止まってしまうといったトラブルもありまして、多少時間がかかった、という場面もありました。

 

 

■統計地図を作ってみる~描画の「クセ」に注意することも必要

 

次に、統計地図の作成を行いました。データとして、総人口、年齢層を絞った人口、世帯数を表示するといったものも使うことができます。

 

また、描画方法として、行政区分や「大字(おおあざ)」や「何丁目」といった、細かい住所表記に応じて描画する機能もありますし、緯線・経線を基準にマス目に区切られたメッシュ地図で人口などのデータを表示する機能もあります。 

 

 

 

特に小地域ごとの分布では、面積の大小によって描画される色が大きく塗られたり小さく塗られたりしますが、見た目の大小と実際の人数の印象に違いが出てくる場合があります。

 

さらに、描画する際に、5段階のランキングで色分けされるもので、その段階の付け方で人数が同じずつ増えていないというものもあります。そのあたりについての注意も行った上で、いろいろな形でデータの描画表示をさせました。

 

 

■オープンデータの取得・処理~使う際に注意すること

 

次に、オープンデータの取得・処理を行いました。本校は埼玉県にあるので、埼玉県のオープンデータポータルを紹介して、その中で幾つかの市町村のデータを見て、機械判読性についても触れました。幾つかの自治体ではPDFファイルが掲載されていて、データはあっても機械判読や加工などがしづらい、ということも説明しました。

 

 

次に、川越市の公共AED設置場所のデータの取得を行いました。この活動は、教員研修用教材にも載っています。教員研修用教材作成時には、UTF-8のデータだけが公開されていたのですが、作成から1~2年たったところで、実際に授業をやってみましたら、Shift-JISが追加されておりました。

 

これによって、Excelで簡単に表示することができるようになったのですが、その後、グループワークをするときに、UTF-8のデータが出てきた場合の問題、というのが発生しました。この辺りは、最後に課題としてお話しします。

 

そして、取得したデータの処理や地図表示ができるように、表計算ソフト(今回はExcel)を使って、e-Statの形式に合わせて列の移動や削除を行って、e-Statで読める形にしてプロットを作る、という活動を行いました。

 

 

■APIを用いたデータの取得~位置情報の取得はプログラミングでできるが…

 

続いて、APIを用いたデータの取得を行いました。ここは教員研修用教材では触れてはおりませんが、活動の内容を説明していきます。

 

施設などの位置情報は、全てオープンになっているかというと、決してそうではなく、むしろオープンになっていない方が多いです。そのような場合には、プログラムを使って位置情報取得することができます。これをジオコーディングといいますが、これができるように、PythonのプログラムからAPIを呼び出して、緯度や経度を取得するということを行いました。なお、WebAPIの活用では、利用規約の確認が必要ですので、ご注意ください。

 

このときの環境は、Google Classroomを使ってサンプルファイルを配布しました。生徒は、Google Colaboratoryでライブラリをインストールして、ジオコーディングができる環境を用意しました。そして、配布したプログラムの一部を書き換えて、緯度や経度を取得することを経験させました。これによって、オープンデータになっていないものも、緯度・経度を取得し、リスト化すれば、先ほどのe-Statで読める形になります。

 

 

ここで、プログラムを用いて位置情報を取得する際の注意です。何も考えずにやってしまうと、少し危ないなと思っているところがあります。

 

例えば、プログラムの繰り返し(for、while)によってサーバに負荷がかかってしまうこと。位置情報を取得するためにAPIを使用するときに、ループの回数が多くなりすぎると、相手のサーバのほうに負荷をかけてしまいます。

 

また、施設等の一覧表を作るとき、今回授業ではやりませんでしたが、webスクレイピングを行って、さまざまなデータをかき集めるという方法が考えられます。ただ、webスクレイピングも読み込みの回数が多くなると、相手のWebサーバに迷惑を掛けてしまいますので、この辺りは注意しなければいけないなと思っています。 

 

 

 

さらに、得られた実行結果には吟味が必要になります。これは同名の別の施設が存在する場合があります。得られた緯度・経度が近隣と比較して大きく離れているときは、恐らく違う市町村から同じ名前の施設を取っているということが考えられます。

 

また、APIを使って位置情報を取得するということを、プログラムを書く練習にする、ということも考えらますが、実際はあまり練習にはならないかと思います。これは、確実にプログラムを動作させないと、データが取得できません。そうするためには、どうしても写経になってしまいます。

 

そして、一つの緯度・経度を取得するためのプログラムだけであれば、ほんの2~3行で書けてしまいます。ですから、簡単に順次処理を行うためにはよいですが、数行のライブラリを読み込んで、緯度・経度を取得して表示する、という程度のプログラムになってしまうため、プログラムを書くことの練習にはなりにくいと考えられます。

 

 

■統計地図と位置情報の読み取りを問題解決につなぐ

 

次に、統計地図と位置情報による読み取りを行いました。人口や世帯数といった統計地図に位置情報を重ねて表示させるものです。ここでは、人口と施設の分布のギャップを読み取らせて、どういったところに課題が考えられるかを考えさせました。

 

また、次のグループワークの導入として、他の組み合わせを考えさせました。人口とAED(automated external defibrillator: 自動体外式除細動器)の設置場所について例題を行った後、それ以外に何か役に立ちそうな組み合わせを考えてもらいました。

 

 

続いて、グループで問題解決の授業を行いました。こちらは授業時間、6時間ほどかかっています。

 

まず、個人で人の分布と施設の配置の組み合わせを考えさせました。いきなりグループにしてしまうと、最初に発言した生徒、もしくは、声の大きい生徒に流れていってしまうので、まずはそれぞれの生徒が意見を持つためです。

 

続いて、グループで相談してテーマを決定しました。ここではどのような問題が考えられるかを発見し、それを解決するための人や施設の組み合わせを考えさせました。

 

その後、位置情報を集めて地図に描画し、発表資料を作成し、現時点ではまだここまでたどり着いておりませんが、最終的には発表をさせるという形で考えています。

 

グループの人数は3~4名として、1人当たり少なくとも2つの組み合わせの地図の描画をノルマとして課しました。これは位置情報と人口のデータの取得を複数回経験させることを狙いとして設定したノルマです。

 

 

生徒が考えたテーマが下図です。

 

「交通事故のない安全な街にしたい」ということで、交通事故に遭いやすい子どもや高齢者の人口の分布と、交通事故の発生現場の位置情報を4つの市について描いて、問題を発見しようというものがありました。

 

別のグループでは、高校生向けに飲食店を作るにはどうしたらよいか、ということで、高校生に当たる人口(これは、「高校生の人口」というデータは取れないので、それに近いものとして該当する年齢の人口を取りました)とファストフード店2種類の位置情報を重ねることを4つの地域について行いました。これは、小地域で行うと、なかなか高校生の通学範囲ということにはならないので、市の単位で色を塗るということで行っていました。

 

「高齢者が住みやすい街」というテーマを設定したグループはけっこうありました。ここでは、高齢者の人口と、病院・公園などの施設の位置、それを3つの市町村で行ったグループがありましたが、この位置情報のところが、老人ホームであったり、バス停であったりとバラエティがありました。

 

 

テーマ設定から見られる傾向として、高校生にとって身近な話題(下校時や進学先などに関するもの)、商圏といったビジネスにつながりそうなテーマ、さらに高齢化問題や少子化問題、交通安全、教育格差といった社会的な問題を考えていることがわかりました。

 

また、地元と「○○ランキング」の上位の市区町村と比較することによって、自分たちの街はどうなんだろうといったような街づくりを考えるきっかけにもなりました。

 

 

本授業の課題~生徒側にも、データの性質にも課題があることを踏まえておこう

 

本授業を行って見えてきた課題を3つほどお伝えします。

 

まず、生徒が都市の規模と施設の数の見通しが十分でないまま課題を考えてくるということがかなり多く見られました。

 

特に、人口の多い市と比べようということで、人口の多い市の代表として横浜市(370万人)を選んでくる生徒がかなりいました。本校がある川越市の人口が35万人ですから、その10倍あるような市と比較しても無理があるよ、といったことを説明して、テーマを再検討してもらいました。ちなみに横浜市は、区の単位で考えてもかなり人口が多いので注意が必要です。

 

逆に、人口が少ない市町村の場合は、公園や駅といった施設そのものがない場合もあります。そのため、比較するときにどうしようとかなり悩んでいる生徒もいました。

 

次に、取得したオープンデータの形式の違いというものが問題で、うまくデータを開くことができないということが発生しました。

 

具体的には、文字コードの違いで、UTF-8のcsv形式のファイルはエクセルで開く場合には少し工夫が必要です。また、カンマ区切りではなく、タブ区切りといったような区切り文字が違うような形式のデータも見られて、授業で学んだ時とはデータの形式が違うため、このデータを見つけた生徒には個別に説明する必要というのが出てきました。

 

そして、e-Statでは地形の情報は扱いにくいという問題もあります。地図表示で「地形図」を選ぶことはできますが、これがちょっと分かりにくい。「避難所を考える」というテーマ設定をしたグループがありましたが、本来避難所の場所を考える際には、河川の情報や標高、崖の有無などといったことも考えていかなければなりません。しかし、今回はツールを限定して授業を行ったので、地形についての十分なデータが取れず、単に人数×施設の数の分析となってしまったということがありました。

 

以上が授業の内容の説明です。実際の活動の様子も撮影していますので、併せてご覧ください。

 

「GISを用いたデータの可視化と問題発見・解決(授業編)」動画はこちらから

 

神奈川県高等学校教科研究会情報部会 情報科実践事例報告会2020オンライン 実践事例報告