NEWS
Db2 for i & SQL活用 虎の巻 Db2 for i & SQL活用 虎の巻
2023.06.23

【虎】第12回「Db2 Web Query for iを使ったデータの地理コーディングと地図作成」

【虎】第12回「Db2 Web Query for iを使ったデータの地理コーディングと地図作成」
【虎】第12回「Db2 Web Query for iを使ったデータの地理コーディングと地図作成」
出荷した製品の現在位置の把握や地域ごとの売上げを地図と紐づけて分析するなど、地理空間データをビジネスアプリケーションで利用する手法が近年注目されています。あまり大きく宣伝されていませんが、IBM i 7.4や7.5にもDb2 for iで地理情報を取り扱うための地理空間関数がTechnology Refreshとして追加されています。今回は、地理データと地図情報を組み合わせてビジネスで活用する方法をWeb Query for iを使った例でご紹介します。(編集部)
地理コーディングは、テキストによる場所の記述を入力として地球上の位置を識別する地理座標を返します。これがIBM Db2 Web Query for i とどのように関係するのかを学びます。

12/15/2021 リック・フラグラー

手持ちのデータにマッピング技術を適用したいと思ったことはありませんか?GoogleやApple Mapsがポピュラーになって以降、他のベンダーはビジネス・インテリジェンス・データ分析用の基盤を提供するためにこのマッピング技術を使ってきました。

私の住む田舎のいくつかの街は、インターネット・アクセスを改善する方法を調査し始め、ケーブルまたは広帯域ファイバーによる高速インターネット・サービスについての入札を複数ベンダーに要請しました。私の住む街に関して言えば、ベンダーの1社が図1に示すように、各住所について高速サービスが提供されるか否かを示すこの地域の住所一覧を添えて回答しました。

▲図1

第1列に示されているYesまたはNoは、現在政府が高速と定義している下り25MB、上り3MBのサポートがその住所で利用可能かどうかを表しています。これが遠隔学習あるいは在宅勤務用として十分な早さであるかどうかについての論争がありますが、それについては誰か他の人に書いてもらうことにします。スプレッドシート内の私の住所を使い、私は地図を作るためにこのデータをちょっと地理コーディングしてみることにしました。

IBM Db2 Web Query for i (Express Editionまたは他の任意のEdition)の興味深い機能の1つが、地域用にマッピングの背景を選択して地図上に地点を描画する能力です。Web Query製品には、世界地図、米国地図および様々な州や県の地図が含まれています。それらの地図を活用するために、郵便コード、市、郡、州を含む様々なデータ型のパラメータを使います。しかし、本当に特定の場所を示すために、緯度と経度つまり地理的データポイントと呼ばれるものが使用できます。これにより、素早く地理コーディング業務に足を踏み入れることができます。

私は、ウェブには無料で住所リストをアップロードし、その緯度と経度の値を受け取れる場所が沢山あるという印象をもっていましたが、これは事実に反することが分かりました。私はウェブサイトに行って住所を指定しましたが、それらのサイトはデータを変換するためにしばしばアカウントの作成と支払いを求めました。最終的に、私は米国国勢調査のウェブサイトが無料で変換機能を提供していることを発見しました(訳注)。

単一またはバッチ方式で住所を入力できました。私の住所リストには約600の住所がありましたので、バッチ方式を選択しました。バッチは図2のようなウェブ形式で処理され、図3にあるように自分のデスクトップPCからファイルを選び、どの国勢調査レコードのオプションを使うかを指定することができました。

▲図2

▲図3

私は図1の様にフォーマットされたリストを選び、ボタンを押して待ちました。ちょっと経ってそれは失敗しました。問題は私の住所が単純な住所ではなく、通りの号数、通り、市、州そして郵便番号などが分離された個別のフィールドに記録されていたことでした。私はこれらのフィールドを結合し、もう一度試してみました。結果がダウンロードされ、これを開くと図4のようなデータがありました。

▲図4

この試みはより良いものに見えましたが、幾つかのミスマッチデータがありました。何故ならいくつかのデータの住所には郵便番号として5桁の数字が、別のいくつかのデータには郵便番号と4桁の数字(nnnnn-nnnn)という形式が使われていたからです。私はすべてのレコードが5桁の値を持つようにするためにダッシュ記号と4桁の数字を削除しました。今度は幾つかの更なる結果を得ました。ダウンロードした国勢調査ソフトには、元々の住所、一致(Match)か不一致(No_Match)かを示すフィールド、一致状態が厳密(Exact)か非厳密(Non_Exact)か、そして最後に最も興味深いデータ、関連する住所に対応するカンマ区切りの緯度と経度のペアが含まれています。

その結果には不一致の項目が数多くありました。これは、その地域に新しい住宅が建設されたか、国勢調査のデータ収集の際にエラーが発生したためだと思われます。例えば、自分自身の住所は「非厳密だが一致」(Non-Exact Match)とリストされましたが、住所データは正しく見え、それでも結果には緯度と経度が含まれていました。2020年の国勢調査について質問された記憶はありませんが、郵送されてきた書類にはすべて回答しました。

90%の住所を地理コーディングしたので、データをIBM iサーバーにアップロードし、Web Queryでデータを見てみました。その結果、得たポイントをすぐにプロットすることができ、図5のような地図が得られました。

▲図5

この地図では、高速通信が利用可能な住所は比較的少ないので、住所は主に「NO」であると明確に示されています(Yes=赤い点、No=青い点)。
Googleマップと同様に、WQでは地図作成時に様々な背景を選択することができます。あなたの主題にとって重要と思われることに応じて、背景には通りの名前が含まれた地図(図5)、地形学的地図(図6)、地形図(図7)、衛星イメージオプション(図8)などが選べます。

▲図6

▲図7

▲図8

もちろん、図9の「ダウンタウン」の交差点と周辺道路に示されるように、どの地図も拡大・縮小して更に詳細にデータを見直すことができます。

▲図9

上述のブロードバンド利用可能状況に関する地図では、YESかNOの情報を各住所に1ドットだけ提供することを追求していました。

この例で話を続けると、ある通りでアクセスできる顧客とできない顧客の数を地図上に表示したい場合、通りごとの住所数をまとめ、その数をSIZE値として地図上にプロットし、通りごとの密度を描くことができます。このような地図を作成するためのデータを図10に示します。

▲図10

上記の図10のデータを地図に適用すると、地理的なエリアの地図に集計値に応じた大きさのバブルやドットを使って、持っている人と持っていない人の発生密度を表すことができました(図11参照)。大きな赤(Yes)のバブルにカーソルを合わせると、その通りにある高速回線を使用できる住所の数がポップアップで表示されます。

▲図11

多くのビジネスインテリジェンス・アプリケーションにとって、地図の位置に値を関連付けることが有益である可能性があります。例えば、ある地域の値を総売上高や総受注高などの値としてプロットする場合、国、州、都市、郵便番号などをデータ集約点として使用することができます。

次の図12の例では、全米の郵便番号別の店舗売上高がプロットされています。アメリカの中央部を見ると、地図上にオレンジや赤のマーカーが見えますが、これは様々な郵便番号の場所での収益値の大きさに対応しています。興味深いことに、地理コーディングされたドットの例とは異なり、郵便番号の地図はエリア全体を色付けしています。したがって、ある州の郵便番号データが完全に揃っていれば、各郵便番号に対応する値ですぐに色分けできます。

▲図12

この地図を拡大すると、図13に示すように、「地上に近い」ほどエリアが明確になり、地形が鮮明になります。

▲図13

地理コーディングとマッピングは、住所に基づくデータから新たな洞察を得るための強力な手法となり得ます。IBM Db2 Web Query for i は、幾つかの地図タイプ、柔軟な背景、地理的プロット機能によって、これらの洞察を得るのを支援するように位置付けられています。

ダッシュボードにテキストやチャートと共に、地図のような視覚的なデータキューを含めることで、ユーザーやビジネスアナリストが会社の重要な情報をよりよく把握するための様々な方法を提供できます。

注:日本の各市町村の緯度経度情報は、国土交通省のホームページ(位置参照情報 ダウンロードサービス (mlit.go.jp))からCSV形式で入手することができます。

いいねと思ったらシェア
twitter
facebook
hatena
Db2 for i & SQL活用 虎の巻 目次を見る

この連載は…

Db2 for i & SQL活用 虎の巻
関連記事
【虎の巻】第6回「SQL CASE式のユースケース」
【虎の巻】第6回「SQL CASE式のユースケース」
【虎の巻】第8回「Db2 for i 7.1のSQL配列(後編)」
【虎の巻】第8回「Db2 for i 7.1のSQL配列(後編)」
【虎の巻】第7回「Db2 for i 7.1のSQL配列(前編)」
【虎の巻】第7回「Db2 for i 7.1のSQL配列(前編)」
あなたにオススメの連載
できるIBM i 温故知新編
9記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP