演習5 空間分布の表示

前回からはマンションの価格に周辺環境がどのように影響を及ぼしているか、明らかにしています。今回は周辺の「買物の利便性」に着目します。

1. データの準備  

(1)まずデータをダウンロードしましょう。

(2)ダウンロードしたzip ファイルを解凍します。解凍できない場合は、7-ZipLhasa32などのファイル圧縮・解凍ソフトウェアをインストールします。解凍したデータは演習1で作ったspatialanalysisというフォルダに格納します。

2. データの表示  
2.1 背景の表示

ただ点やポリゴンをプロットしても、それがどこなのかわかりません。そこで背景に地図を導入します。

(1) QGISを開きます。

(2) メニューバーから「プロジェクト」→「新規作成」を選びます。

(3) ブラウザウインドウの「XYZ Tiles」から「OpenStreetMap」を選択し、東京を拡大します。そうするとGoogle Mapのような背景が見えてきます。

(4) 左下の「レンダ」の右に「EPSG: ????」と書かれている場所があります。まずこれをクリックしましょう。そうすると「プロジェクトのプロパティ」が開きます。開いたら最近使用したCRSにEPSG:2451があれば、これを選択します。なければ検索欄に2451と入力し、あらかじめ定義されたCRSに出てきたEPSG2451をクリックして、右下のOKをクリックしましょう。。

2.2 皆さんが作成した住宅データとそのバッファの表示

みなさんが集めたデータや前回作ったデータをプロットしていきます。データソースマネージャを開き、前回ダウンロードしたデータの中からsuumo1k.shpとwalkablearea.shpを開きましょう。

ここまでできれば、準備はおしまいです

3. アドレスマッチング

お配りしたcsvはある施設の住所リストです。これをみただけでは、「ある施設」がどこに建っているのかわかりにくいでしょう。そこでこれをQGISに表示できる形にします。QGISで表示するには、座標データが必要です。ここでは住所から座標データに変換する方法について、練習しましょう。

3.1 住所を座標データに変換

(1) convenience.csvを開いてみましょう。

(2)開いたら住所が何列目にあるか覚えてください。今回はE列が住所なので5列目ですね。

(3)東京大学のアドレスマッチングCSV Geocoding Serviceを開いてください。

(4)このように入力できたら、送信を押します。入力するのは「住所を含むカラム番号」だけのはずです(ファイル登録はお忘れなく!)。

(5)ダウンロードされたデータを開き、緯度と経度のカラム名を確認して、自分の作業フォルダに「cvs.csv」として保存しましょう。

3.2 コンビニの表示

(6)10000件を超えるデータを緯度経度に変換するのは、結構時間がかかります。なので先に用意しておきました。3分クッキングと同じですね!

(7)cvs.csvを開いてみましょう。もしちゃんとやっていれば、できていたはずのデータです。おそらく15分くらいかかるかな、と思います。見てみると、fXとfYという列ができていますね。これが緯度経度です。もう一つ注目して欲しいのがiLvl。ここでジオコーディングの精度がわかります。7ならいいですが…

(8)今回はせっかくなので精度の高いデータを使います。データソースマネージャを開き、左側のメニューから「CSVテキスト」を選びます。先ほどのダウンロードしたデータから「csvXY.csv」を選び、エンコーディングをUTF-8にして、「追加(A)」をクリックします。(ジオメトリ定義でポイント座標になっているか、確認しましょう)

(9)下図のように表示されていればOKです。

(10)今まであまり気にしてきませんでしたが、本来座標系は揃えておく必要があります。cvsXYの座標系はEPSG4326にしていますね。しかしsuumo1kなどはEPSG2451です。レイヤーパネルで「cvsXY」を右クリックし、地物の保存に進みます。そこでファイル名をいつもの場所に「cvs.shp」都市、CRS(座標系)をEPSG2451とします。そしてOKをクリックします。

4. スーパーまでの距離の計測

では、各物件ごとに最寄のコンビニまでの距離を計算してみましょう。

(1)メニューバーから「ベクタ」→「解析ツール」→「距離行列」を選びます。

(2)入力点レイヤを「suumo1k」にし、入力点のIDを示す属性はIDにします。ターゲット点のレイヤは作ったばかりの「cvs」にします。計算する近傍点の個数を1に設定し、いつものファイルに「nearest.shp」という名前で保存してみましょう。

(3)nearestの属性テーブルを開いてみましょう。無事Distance列が生成されていますね。

5. 徒歩圏内の施設数

次に徒歩圏(400m)内のコンビニの店舗数を数えてみましょう。

(1)メニューバーから「ベクタ」→「解析ツール」→「ポリゴン内の点の数」を選びます。

(2)ポリゴンレイヤにwalkablearea、点レイヤにcvsを設定します。出力レイヤとして、いつものフォルダにnumber.shpを設定し、実行します。

(3)numberの属性テーブルを開いてみましょう。文字化けしていますので、プロパティから修正してあげましょう。エンコーディングをshift-JISにします。そしてもう一度属性テーブルを開いてみてください。そうすると、無事にできていることがわかります。

(4)numberとnearestのデータを一つにしましょう。そんな時はテーブル結合ですね。覚えていますか?

(5)今回は情報の多いnumberにnearestをつなげることにします。「number」を右クリックしてプロパティを開きます。

(6)左側のメニューからテーブル結合を選択し、左下にある[+]ボタンをクリックします。そうすると「ベクタ結合の追加」というポップアップが表示されるはずです。結合レイヤが「nearest」になっていることを確認したら、統合基準の属性とターゲット属性を入力します。結合基準とは後から繋げる側(nearest)のことで、ターゲットとは元になる方(number)のことです。それぞれキーとなる属性(InputIDとID)を入力しましょう。さらに「結合する属性の接頭辞」にチェックを入れ、「nearest_」といった文字が出てきますが、これを消し、「OK」をクリックします。そしてもう一度OKをクリックします。

(7)numberの属性テーブルを開いてみましょう。無事結合されていることがわかります。このデータを結果として保存しましょう。

(8)レイヤプロパティからnumberを右クリックし、「エクスポート」→「地物の保存」へ進みます。形式を「カンマで区切られた値[csv]」にし、いつもの場所にresult2.csvとして保存します。エンコーディングをShift_JISにするのをお忘れなく!

(9)前回と同様、excelでresult2.csvを開きいじってみてください。

(10)ここまできたらいつものように課題を準備して登録しましょう。またQGISもしっかり保存しておきましょう。お疲れ様でした。