FOSS4G Advent Calendar 2015 二個目 の記事として、2回にわたって投稿します。
CartoDBを使えば,お手持ちのデータやダウンロードして手に入るデータをもとに,気軽に空間的な可視化ができ,データの空間的な考察ができるようになること,そして,PostGISの機能を使うことでより深いデータ解析が行えることを見ていただければと思います。
CartoDB とは
CartoDB は,Location Intelligence (LI) のための,クラウド環境で使える新しいツールです。
従来のGISとは異なり,誰もが極めて手軽に LI を自分の課題に持ち込むことができます。
空間情報の可視化や解析,そのためのプロセッシング,データの共有を担うサービスであり,ユーザが課題の本質に集中できることも大きな特徴です。
CartoDB を始めよう
ユーザ登録
CartoDB で,ユーザ登録します。今回はフリープランで1行います。
データの準備(shpファイル 編)
今回は,国土交通省 国土数値情報 の 行政区域データ(埼玉県)をお借りして,読み込みます。
CartoDB では,shpファイル群 を含む zip を指定することで,shp を追加できます。
zipファイル名は shp と同一の必要があるので,違う場合は変更したり作り直したりして同じにしましょう。
Map の作成
CartoDB の dashboad で 右上の NEW MAP を クリックすると,Add datasets 画面になります。
ここで,Connect dataset を選び,先ほどの zip を画面にドラッグ&ドロップ し,行政区域のデータを追加します。
そうすると,Map の作成とともに,読み込んだデータがいいかんじで表示されます。
DATA VIEW と MAP VIEW
画面中央の上にあるボタンを見ると,現在 MAP VIEW になっているので,DATA VIEW に切り替えます。
そうすると,行政区域の属性データをみることができます。
Map layer wizard でラベルの表示
MAP VIEW に戻し,次は行政区域データの表示を少し変更します。
今表示されているローマ字の市町村名は背景図の OSM のものなので,属性データの市区町村名を表示します。
- 右側のサイドバーの筆のマーク(wizard)を開くと,デフォルトで SIMPLE という見た目に設定されていることがわかります。
- その一番下にある,Label Text を,n03_004(市区町村名)にして,
- Label Font を unifont Medium2 にします。
市町村名のラベルを表示できました3。
データの準備(csv 編)
次に,環境省 いきものログ の投稿情報の csv を使用させていただき,CartoDB に読み込みます。
- いきものログの「簡単に検索する」で,なにか好きな生きものの種名を入力し,埼玉県 を選び,検索
- 検索結果の一番下まで行き,「CSV形式」でダウンロード
- zip の中の,ikilog_yyyymmdd….txt (ファイル名が短い方)を Excel で開き,1行目が列名,2行目以降がデータになるよう整形し,csv として保存
少しややこしいので,整形済みの埼玉県のスズメ報告データを以下に置いておきます。
-
埼玉県スズメ報告データ
(『環境省いきものログ(埼玉県内のスズメ報告,2015.12.15 時点)』の一部の属性を抽出したものです)
データの追加
shpファイルは Map 作成と同時に読み込みをしましたが,今度は今の Map に追加します。
右側のサイドバーの一番上の + をクリックし,先ほどと同様に csv を ドラッグ&ドロップ してください4。
テーブル結合
行政区域とスズメのデータを読み込めたところで,試しにこの2つを結合してみたいと思います。
- 行政区域データを選択し,DATA VIEW に切り替える
- サイドバーの下から3つめ,Merge Datasets をクリック
- Column join(属性結合)を選択
- 左側:n03_004,右側:対象がスズメデータになっていることを確認し,county を選択して,NEXT STEP をクリック
- それぞれすべての属性が選択されているので必要なものを選び,MERGE DATA SETS をクリック
結合結果が出力されました。オレンジが重なって濃くなっているほど,スズメデータ数が多いようです。
DATA VIEW も見てみると,行政区域データは区名だけなのに対し,スズメデータは市+区名のため,一部がうまく結合されず別の行になってしまいました5。
参考サイト
- 地図DB:CartoDBに関するもっと詳細な情報を掲載しています。
-
データ権限が Public しか選べないので注意
SIGN UP で ユーザ名,メールアドレス,パスワードを入力して登録し,ログインします。 ↩ -
日本語データはこのフォントで表示できます。 ↩
-
OSMのラベルが気になる人は,左下の Change basemap で,CartoDB の左から3つめ,Positron (labels below) にしてください。 ↩
-
ここで「Encoding detection error」で追加できない場合は,メモ帳などで文字コード:UTF8で保存しなおしてみてください。
読み込めたら,DATA VIEW で確認します。 ↩ -
SQLでいうと FULL JOIN が実行されます。
これを解決するには,スズメデータをあらかじめ Excel で区名だけにしてもいいですが,「初めてのCartoDB その2」では,CartoDB 上で少し工夫して対処したいと思います。 ↩