見出し画像

横浜は本当に坂だらけ?QGISで傾斜を可視化してみた!

QGISの機能をわかりやすく紹介!
今回取り上げるのは「傾斜」です。

標高DEMやゾーン統計などの扱い方を、
具体的なストーリー仕立てでお届けします。


プロローグ|ベビーカーと坂道

あなたは新居を探している。横浜市で。
夫婦と小さい子どもの3人暮らしだ。

条件はいくつもある。
保育園、小学校、駅距離、家賃、治安。
そして、地味だけど毎日効いてくる要素が一つ。

坂道。

内見の日、ベビーカーを押して5分歩いただけで分かる。
地図では「駅近」でも、体感はまるで別物だ。

不動産サイトにはこう書いてある。
「閑静な住宅街」
「高台につき眺望良好」

翻訳すると、だいたいこうなる。
坂がきつい。


感覚ではなく、地形で考えたい

問題は、坂の情報が定量化されていないことだ。

  • 坂が「ある」のか

  • 「どれくらい」あるのか

  • 子どもが成長しても通えるのか

これを感覚だけで判断するのは、少し心もとない。

そこでQGISを使って、
横浜市全体の「傾斜」を数値として可視化してみることにした。


今回やること(ざっくり)

画像

やることはシンプル。

  1. DEM(標高データ)から傾斜を作る

  2. 100mメッシュごとに平均傾斜を算出

  3. 横浜市全体を色分け表示

「どこが平らで、どこがしんどいか」を、
ベビーカー目線で俯瞰する。


QGISの準備|座標系は現実寄りに

QGISを起動し、プロジェクトのCRSを
EPSG:6677(JGD2011 / 平面直角座標系 IX) に設定する。

横浜市で距離や面積を扱うなら、これが一番無難。
「何メートル」を正しく扱えることが重要だ。

画像
QGIS起動後、画面右下のCRS設定ボタンを押下
横浜市の平面直角座標系「EPSG:6677」で検索し設定

行政区画データで横浜市を切り出す

画像
⚙️プロセッシングツールから、各機能を呼び出して使う
画面は、「レイヤの再投影(Reproject layer)」 を使うところ

国土数値情報から
神奈川県の行政区域データを取得し、QGISに読み込む。

  • 属性で横浜市を抽出;Extract by attribute(N03_004='横浜市')

  • 区ごとに融合;Dissolve(Dissolve fields = all)

  • ジオメトリの修復;Fix geometries

  • CRSの再投影;Reproject layer(Target CRS = 6677)

この辺は、後で泣かないための準備運動。

筆者はQGISを英語モードで使用していますが、
日本語モードでも同様の作業は可能です。

筆者は、QGISを英語モードで使うことをオススメしています。
日本語モードだと、一部機能に制限が生じたり、
バージョンによって表記揺れがあり情報が古くなりがちです。


DEMを取得する|ElevationTile4JP

次に、プラグイン ElevationTile4JP を使って
横浜市全域のDEM(標高値を値として持つラスタ)を取得する。

地理院DEMを範囲指定で持ってこれるので、
「標高データ集め」で消耗しなくて済む。

ここで得られるのは、ただの高さの数字。
だが、坂道の正体はすでにこの中に入っている。

プラグインのインストール方法

画像
メニューバー > Plugins > Manage and Install Plugins…
目的のプラグインを検索し、右下の Install Plugin からインストール
インストール後のプラグインは、プラグイン名の左チェックボックスに☑️

プラグインの実行

画像
プロセッシングツールボックスから起動
ズームレベル・CRS・作成範囲(レイヤ)を選択して実行
画像
実行後にDEMが生成される

傾斜ラスタを作る|「標高→傾斜」変換

DEM(標高)から Slope(傾斜) を作成する。

これで、
「ここは何度の坂か」がピクセル単位で分かる。

内見では見逃しがちな
微妙なアップダウンが、ここで浮かび上がる。

画像
プロセッシングツール「Slope」を使い、DEMから傾斜を計算
画像
傾斜が出力される(スタイル調整後)

100mメッシュを作る理由

次に、Japanese Grid Mesh プラグインで
100mメッシュを生成する。

なぜ100mか。

  • 家一軒単位だと細かすぎる

  • 町丁目単位だと粗すぎる

  • 徒歩感覚に一番近いのが100m

「この一帯はどうか」を考えるには、
ちょうどいい粒度だ。

画像
Japanese Grid Meshプラグインを起動(インストールは省略)
座標系・出力範囲・メッシュサイズを選択して実行
# 見切れているが、メッシュサイズの設定は最下段の100mメッシュを設定しておく
画像
横浜市の範囲に100mサイズのメッシュが生成される
画像
後の処理のため、横浜市部分で切取り(Extract by location)、平面直角座標系に再投影(Reproject layer)を実行しておく。

Zonal Statisticsで「平均傾斜」を持たせる

Slopeと100mメッシュを組み合わせて、
Zonal Statistics を実行。

  • ラスタ:傾斜

  • 統計量:平均値

これで各メッシュに
「この100m四方の平均的なきつさ」
が属性として入る。

坂道が、感想からデータになる瞬間。

画像
ゾーン統計(Zonal statistics)で、Slopeの平均値をメッシュ単位で集計。
画像
新規レイヤが生成されて、100m四方単位で傾斜のキツさが可視化された。
(スタイル調整後)

色で一目で分かる地形

最後に地図を調整してみる。

画像
横浜市の傾斜分布図として作成してみた。
行政区単位でもゾーン統計回してランキング表を追加した。傾斜の順位が一目でわかる。
  • 傾斜が小さい:明るい色

  • 傾斜が大きい:濃い色

派手さは不要。
見る人が一瞬で判断できることが大事。

地図を眺めると、すぐ分かる。

  • 臨海部はほぼ平坦

  • 内陸部は細かく起伏が連続

  • 同じ「区内」でも、地区によって負担は全然違う


横浜市|区別「平均傾斜」ランキング

※値が大きいほど、坂がきつい傾向

🥇 坂がきつい上位グループ

1位 保土ケ谷区5.18°
2位 栄区5.01°
3位 港南区4.90°
4位 戸塚区4.52°
5位 青葉区4.21°

このあたりは
「高台の住宅地」「落ち着いた街並み」と引き換えに、
日常的に脚力を要求される区


🥈 中位グループ(場所による差が大きい)

6位 旭区    4.14°
7位 南区    3.99°
8位 緑区    3.90°
9位 磯子区   3.63°

エリア選び次第で、
「平坦で楽」も「想像以上にしんどい」も両立するゾーン。


🥉 比較的フラットなグループ

10位 金沢区   2.79°
11位 神奈川区  2.69°
12位 都筑区   2.61°

港北ニュータウン周辺など、
計画的に造成された地形の強さが出てくる。


🟢 かなり平坦なグループ

13位 泉区    1.62°
14位 瀬谷区   1.34°
15位 港北区   1.28°
16位 西区    0.96°
17位 中区    0.64°
18位 鶴見区   0.33°

ベビーカー、自転車、将来の通学。
日常移動の負担が最も小さいのはこのあたり。


この地図から分かること

この図は、
「どこが良い」「どこが悪い」を決めるものではない。

ただ、

  • 毎日ベビーカーを押す場所

  • 子どもが自転車で通る道

  • 将来、親が年を取ったときの動線

そういった生活の重さを、
事前に想像しやすくしてくれる。

不動産情報は嘘をつかないが、
言わないことが多すぎる

地形は、黙って全部教えてくる。

もう一歩踏み込めば、小学校の学区単位で傾斜のキツさを比較したり、道路単位で勾配を計算することもできる。ぜひ自分の町でお試しください。


出典:
国土数値情報(国土交通省)および基盤地図情報 数値標高モデル(国土地理院)を加工して作成

▼続編

いいなと思ったら応援しよう!

三田武(さんだたける) の位置情報研究室 土地家屋調査士 よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!

ピックアップされています

QGISの○○な話

  • 14本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
横浜は本当に坂だらけ?QGISで傾斜を可視化してみた!|三田武(さんだたける) の位置情報研究室 土地家屋調査士
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1