Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OSGeo.JP: wata909         表示 2.1 日本 (CC BY 2.1)http://creativecommons.org/licenses/by/2.1/jp/
0     はじめに。        この文章は,FOSS4G Advent Calendar 2012 のネタで御座います。HTML で書くのがめんどくさいの      で,pdf のになってます。ごめんなさい(汗 あと,内容についてのご質問...
・データの下準備       :30%          ・分析の実施および図化    :20%     となって,実際の分析にはそんなに時間がかかりません。事前の準備がやっぱり重要です。あと,一    応こんな風に分けて書きましたが,実際は ...
2. つくば市域のデータの切り出しと座標変換  3. r.cost による分析の実施(と,そこに至るための下準備)      (ア) データのインポート      (イ) 福祉施設から最も近い道路の座標特定      (ウ) 福祉施設および道路...
ダウンロードしたファイルは,適宜解凍して下さい。この際,解凍先のフォルダー名やパスに日本語や空白を含めない様にしてください。今回の処理では問題が出ないかもしれませんが,欧米圏,すなわち1バイト文字を主に利用している欧米圏で開発された FOSS4...
行政界は,http://nlftp.mlit.go.jp/ksj/jpgis/datalist/KsjTmplt-N03.html からダウンロード出来ます。  ここからダウンロードするデータ,以前は独自フォーマットで,QGIS 等で使うために...
まず,OSM の道路(ibaraki_hiway.shp),国土数値情報の福祉施設データ(P14_08)および行政界(N03-12_08_120401.shp)を QGIS で開きます。なお,開く時の文字コードは,国土数値情報は SJIS,OS...
すると,下の様な「場所による選択」のウィンドが表示されます。 この「場所による選択」ツールは,あるレイヤーの中から(ここでは道路や福祉施設)の中で,あるレイヤーと重なり合っているモノ(ここでは市町村界のつくば市)を選択する,という機能を持ってい...
そうしたら,レイヤーの上で右クリックして,「選択を名前を付けて保存…」を選んで下さい。
すると,下の様な「ベクタレイヤに名前をつけて保存する…」が表示されます。
ここで上から,形式:ESRI Shapefile名前をつけて保存:保存場所を適宜選択。ここでもパスとかフォルダ,ファイル名に日本語は     使わないで下さい。私は point_utm54.shp としました。エンコーディング:UTF-8 をお...
い。
保存が終了したら,選択したファイルだけを表示してみます。一度 QGIS を終了し,新しく起動し直して,選択したファイルだけを表示してみて下さい。 上図のように,最初に比べてちょっと縦長に表示されていたら OK です。これで,使用するデータの準備...
ことを,草刈りと呼んでいます)。     3.4    r.cost による分析の実施(と,そこに至るための下準備)           3.4.1 mapset と location の作成             GRASS は様々な GI...
つぎに,「新しいロケーションの作成方法を選択」が出ますので,「地理参照ファイルを選択」を選んで下さい。 ここで先ほど作成した道路データについてつくば市の範囲で切り出したモノを選択します。
すると,以下のようにロケーションが設定されます。 ロケーションが作成されたら,次に mapset を作成します。GRASS の起動画面から「マップセットの作成」をクリックして,「新しいマップセットの作成」が出てきたら,「nige」と入力して下さい。
ここまできて,やっと起動準備が完了です。「利用可能なマップセット」から「nige」を選択して,「GRASS の起動」をクリックして下さい。 すると,GRASS が起動します。QGIS や某 A のつく GIS ソフトは 1 つのウィンドが立ち上...
3.4.2 データのインポート さて,起動が完了したら,データのインポートです。 レイヤーマネージャーから『ファイル,ベクトルデータのインポート,一般的なインポート形式[v.in.ogr] 』をクリックして下さい。すると,次の様なウィンドが出て...
ここで,「ソースタイプ」をディレクトリ,「ソース」の「ディレクトリ」で先ほど作成した shp が含まれるディレクトリを選ぶと,「OGR レイヤ一覧」にそのフォルダーに含まれる shp ファイルの一覧が表示されます。ここでインポートする shp,...
3.4.3 福祉施設から最も近い道路の座標特定 さて,ここからがちょっと面倒。まず,画面をズームしてみます。 黒い線が道路,赤い点が福祉施設になります。見てわかるように,福祉施設のデータが道路の上に乗っていません。r.cost の分析では,距離...
という,手順をで行う事にします。もしかするともうちょっと良い手順があるかもしれないのですが,見つかりませんでした。誰か,教えて(汗 とにかく,やります。まず,『データベース,データベース接続,列追加 [v.db.addcol] 』をクリックしま...
次に,レイヤーマネージャーから『ベクトル,近傍のフィーチャ [v.distance] 』を選択します。すると下の様なウィンドが表示されるので,「存在するベクトルマップ名 (from) 」で「point@nige」を,「存在するベクトルマップ名 ...
すると,福祉施設の点から最も近い道路の点の x, y 座標値が line_x と line_y に入力されます。 このデータを,一度外部に出力します。『ファイル,ベクトルマップのエクスポート,ASCII ポイント/GRASS ASCII ベクト...
ここで,出力したファイルを確認すると,一列目と二列目が元の XY 座標,3 列目が ID,四列目と五列目が道路上の XY 座標になります。
ここで,このテキストファイルをもう一度インポートすることにします。今度は,『ファイル,ベクトルマップのインポート,ASCII ポイント/GRASS ASCII ベクトルのインポート [v.in.ascii] 』を選択します。 インポートするファ...
そして入力ファイルのフォーマットで,フィールドセパレーターに「,(カンマ)」を,
ポイントで「Number of column used as X coordinate」とその下に,それぞれ4,5を入力して,次項をクリックします。出力されたデータを表示すると,元の位置から一番近い道路上に新し点(ここでは赤いまるで表示)が作成...
よし,ここまで来ればもう少しw3.4.4 福祉施設および道路のバッファーの生成およびのラスター化 r.cost を実施するためには,ラスターデータが必要になります。GRASS の場合,v.to.rast でベクターをラスターに変換するのですが,...
入力するマップとして「point_snap」,出力するマップとして「point_buff」を選択します。 次に,距離タブの「マップユニットの長軸に沿ったバッファー距離」に 5(すなわち 5m のこと)を入力します。これを実施すると、道路上に半径...
ラインに対しても同様に実施します。出力を highway_buff とし,実行したものを表示すると以下のようになります。この場合,道路の線の両脇に 5m の幅でバッファーが生成されています。
次に,このデータをラスタに変換します。 が,その前に。GRASS でラスタデータの分析を行う場合,region と呼ばれる分析範囲を指定する必要があります。この region が正しく設定されていないと,期待する結果を得ることができません。とい...
ラスタの変換は,『ファイル,マップタイプの変換,ベクトル→ラスター [v.to.rast] 』です。「入力するベクトルマップ名」を point_snap,出力するラスターマップ名を start_point としました。ラスター値のソースは「va...
同じく,highway_buff も変換します。こちらは,output は highway_buff のままでよいかと思います。道路のバッファーをラスタに変換したものの表示例は以下になります。
3.4.5 r.cost の実行         やっと,ここまで来た・・・。         はい,r.cost の実施です。r.cost が何かとかは,         マ ニ ュ ア ル ( http://grass.osgeo.org/...
あとは,計算が終わるのを待つだけです。60 秒と出てますが,まぁ,180 秒ぐらいはかかったかもしれません。でも,これで終わりです。このように,準備が長い。これが GIS というものです,はい。
データを表示すると,こんな感じです。大体出来上がりなんですけど,色合いがちょと違います。あと一歩です!!!
3.4.6 逃げ地図にあわせた色の指定 さて逃げ地図ですが,優れた点の一つが「老人の方の移動時間に合わせて地図を色分けする」ことにあると思います。具体的には下の様な色分けになっています。                         http...
必須タブで先ほど作成した highway_cost_dist を選択します。次に,色タブの「または対話的に値を入力します」の所に,以下のテキストを貼り付けて下さい。
0 0:155:99             26 0:155:99             26 121:191:89             52 121:191:89             52 247:218:9           ...
以上の分析結果を QGIS の上で基盤地図 25000WMS 配信サービスと重ねたものが下になります        黒いところは,福祉施設まで歩いて 24 分以上かかるところとなります。つくばは旧集落と新しい      住宅地が混在する地域にな...
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
Upcoming SlideShare
Loading in …5
×

FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!

5,651 views

Published on

QGIS、GRASS、OpenStreetMapを使って,逃げ地図のようなものをつくるためのマニュアル(仮)(ってか,手抜き)

FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!

  1. 1. OSGeo.JP: wata909 表示 2.1 日本 (CC BY 2.1)http://creativecommons.org/licenses/by/2.1/jp/
  2. 2. 0 はじめに。 この文章は,FOSS4G Advent Calendar 2012 のネタで御座います。HTML で書くのがめんどくさいの で,pdf のになってます。ごめんなさい(汗 あと,内容についてのご質問は大歓迎ですが,正確さにつ いては,保証しかねます。あしからず,ご了承下さい。 あと,このマニュアル,今のところ未完成で QGIS や GRASS を使い慣れてる人向けに可成り説明を省 略しています(主に時間が間に合わなさそうなため)。時間ができたら細かく追記する予定ですが,誰か 修正してくれたり,追記してくれたりするのも大歓迎です。ライセンスはクリエイティブコモンズの「表示 2.1 日本」ですので,ご自由にご利用下さい m(__)m なお本チュートリアルでは道路データとして,OpenStreetMap1を,福祉施設および行政界として国土 数値情報2を使用した。1 「逃げ地図」って? 日建設計さまのボランティア部が考えられた,津波が起きたときに何処まで逃げればいいか,どれくら いの時間がかかるのか,それを地図化したものです。そして,ワークショップでこの地図を作り,これから の街作りを考える資料とする活動です。詳しくは下のサイトを見てください。 http://www.nigechizuproject.com/ この逃げ地図は主に防災目的でつくられましたが,「逃げる」だけでなく,例えば公共機関へのアクセ スなど,広い意味での街作りを評価するための資料としても使えるものです。そして,このような地図を手 作業で作るのは,自分の住んでいる街の実情を知り,それを材料として論議することはとても重要です。 ただ一方で,この地図をつくるのはそれなりに手間がかかるので,何度も作るのはちょっと大変です。 一方で,こういう分析は GIS の得意分野です。なので,GIS を使うとどんな風に逃げ地図ができるか。そ れを説明してみたいと思います。ここでは,つくば市を例として,「福祉施設までのアクセスマップを作る」 ということにチャレンジしてみたいと思います。 (まぁ,手作業で作るとの GIS で作るのと,どっちが手間かという話もありますが(;´Д`))2 作業を始める前に GIS で作業をするといっても,GIS のソフトの中に「逃げ地図を作る」というボタンがあるわけではありま せん。ということは,いろいろな作業を組み合わせてやる必要があります。 つーことで,とてもおおざっぱにいうと,GIS の分析は以下の様な流れで行われます。 ・分析の流れを決める ・データの下準備 ・分析の実施および図化 という感じになります。ここでかかった時間をまとめると,実は ・分析の流れを決める :50%1 http://www.openstreetmap.org/2 http://nlftp.mlit.go.jp/ksj/
  3. 3. ・データの下準備 :30% ・分析の実施および図化 :20% となって,実際の分析にはそんなに時間がかかりません。事前の準備がやっぱり重要です。あと,一 応こんな風に分けて書きましたが,実際は 1 大まかな流れを決める ↓ 2 データの下準備をする ↓ 3 頭の中で考えた分析方法で実施する ↓ 4 データが足りなくて,またダウンロードする ↓ 5 1 に戻る(ここまでを何度か繰り返す) ↓ 6 分析のパラメータを調整する(何度か繰り返す) ↓ 7 できあがり!! となっていて,きれいに分かれているわけではありませんし,トライ&エラーでやり方を探すことになり ます。なので,実際にどうやっているかを説明するのと,実際に作業をしているときとは,結構中身が違っ ています。そのあたりをちょっと頭に置いて,あとの説明をお聞きください。3 では,実際に作業するよ! 3.1 まず,分析の流れを決めよう! まずは分析の流れを決めます。 はじめに,必要なデータを考えてみます。今回の場合,「福祉施設へのアクセスマップ」ですから,福 祉施設のデータと,道路のデータが必要になります。また,分析対象をつくば市としているので,つくば 市の境界データも必要になります。ここでは,福祉施設とつくば市のデータは,国土数値情報から,道 路のデータは OpenStreetMap を利用することにしました。 次に,逃げ地図を作る場合,道路に沿った距離を分析する必要があります。こういった分析を行う ツールとして,GRASS の r.cost というモジュールがあります。なので,このツールを使うことにします。 ただし,ここでちょっと問題があります。GRASS で距離の分析をするためには投影座標系である必要 がありますが,今回取得するデータは地理座標系です。なので,GRASS で分析するためには,地理座 標系を投影座標系に変換する必要があります。また,上でもいったようにデータをつくば市に絞ることも 必要になります。 以上の流れをまとめると,分析の流れは以下の様になります。 1. データのダウンロード
  4. 4. 2. つくば市域のデータの切り出しと座標変換 3. r.cost による分析の実施(と,そこに至るための下準備) (ア) データのインポート (イ) 福祉施設から最も近い道路の座標特定 (ウ) 福祉施設および道路のバッファーの生成 (エ) 上記バッファーのラスター化 (オ) r.cost の実施 (カ) 逃げ地図にあわせた色の指定 となります。 作業環境は Windows7 64bit, QGIS (NextGIS 版),GRASS6.4.2 になります。 QGIS (NextGIS 版):http://nextgis.ru/en/nextgis-qgis/ GRASS6.4.2-2:http://grass.osgeo.org/grass64/binary/mswindows/native/ 以降,具体的に説明したいと思います。3.2 データのダウンロードだ! まずは,OpenStreetMap(OSM)で道路データをダウンロードします。ここでは Cloud.me から shp を落として使用しました。以下のアドレスから,ibaraki.shapefiles.zip をダウンロードして下さい。 http://downloads.cloudmade.com/asia/eastern_asia/japan/ibaraki#downloads_breadcrumbs
  5. 5. ダウンロードしたファイルは,適宜解凍して下さい。この際,解凍先のフォルダー名やパスに日本語や空白を含めない様にしてください。今回の処理では問題が出ないかもしれませんが,欧米圏,すなわち1バイト文字を主に利用している欧米圏で開発された FOSS4G の場合,ファイルを開いたり,保存したりする際に日本語(をはじめとする 2 バイト文字や空白)が含まれる場合,エラーが出る場合があります。 実際に,なにがしかの問題にぶち当たったときに,原因がどこかを考えなければいけないのですが,その時に上記のようにフォルダーやパスに日本語等が含まれていると、そこが原因になる可能性があります。なので,できるだけそれらは含めない方がいいでしょう。 つぎに,国土数値情報ダウンロードサービス(http://nlftp.mlit.go.jp/ksj/index.html)から,行政界と福祉施設のデータをダウンロードします。福祉施設は, http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P14.html
  6. 6. 行政界は,http://nlftp.mlit.go.jp/ksj/jpgis/datalist/KsjTmplt-N03.html からダウンロード出来ます。 ここからダウンロードするデータ,以前は独自フォーマットで,QGIS 等で使うためには shp 形式に変換しなくてはいけなかったのですが, 最近は shp ファイルの変換したモノをダウンロード出来ます。便利なのはよいのですが,河川流路データとか,流域界データとか,shp 形式特有のエラーが出る場合も多いので,ちょいと面倒くさいこともあります。ダウンロードしたファイルは OSM の zip ファイルと同様に解凍して下さい。同じフォルダに入れておいた方が便利かと思われます。3.3 データの切り出し さて,3.2 でダウンロードしたデータは,茨城県全域が対象となっています。なので,今回の分 析対象であるつくば市だけを切り取った方が便利です。また,今回ダウンロードしたデータは データの単位が緯度経度(ようするに度,分,秒)の地理座標系のデータですが,逃げ地図のよう に距離を測りたい場合には,投影座標系(単位がメートル)に変換する必要があります。ということ でここでは,OSM の道路データと,国土数値情報の福祉施設データを,つくば市だけ切り抜きま す。
  7. 7. まず,OSM の道路(ibaraki_hiway.shp),国土数値情報の福祉施設データ(P14_08)および行政界(N03-12_08_120401.shp)を QGIS で開きます。なお,開く時の文字コードは,国土数値情報は SJIS,OSM は UTF-8 ですので,ご注意下さい。 そして,行政下の中からつくば市を「選択」します。表示すると以下のような感じ。 つぎに,【ベクタ,調査ツール,場所による選択】の順で選択して下さい。
  8. 8. すると,下の様な「場所による選択」のウィンドが表示されます。 この「場所による選択」ツールは,あるレイヤーの中から(ここでは道路や福祉施設)の中で,あるレイヤーと重なり合っているモノ(ここでは市町村界のつくば市)を選択する,という機能を持っています。レイヤー全体に対して処理することも可能ですし,今回の例のようにレイヤーの中の 1つのオブジェクト(例えば,つくば市,など)に限定して処理を行う事も可能です。 日本語訳がちょっとわかりにくいのですが,上の「中の地物を選択する」が選択する対象(道路や福祉施設)で,下の「交差する地物が中にある」が選択範囲として使うレイヤー(ここでが行政界)です。「選択された地物のみを使う」を選択すると,たとえばここの例のように福祉施設データを選ぶときに,行政界のなかで選択したつくば市のデータだけを利用することができます。設定が完了したら OK を押します。すると,以下のような感じになります。上手く行けば,点も選択されて黄色になると思います。
  9. 9. そうしたら,レイヤーの上で右クリックして,「選択を名前を付けて保存…」を選んで下さい。
  10. 10. すると,下の様な「ベクタレイヤに名前をつけて保存する…」が表示されます。
  11. 11. ここで上から,形式:ESRI Shapefile名前をつけて保存:保存場所を適宜選択。ここでもパスとかフォルダ,ファイル名に日本語は 使わないで下さい。私は point_utm54.shp としました。エンコーディング:UTF-8 をお勧めします。CRS:CRS は座標参照系の略のことです。ここでは JGD2000 UTM54 を使用します。ブラウズを クリックして下の様な画面が出てきたらフィルタに「3100」と入力すると「JGD2000 / UTM Zone 54N」というのが表示されるので,それを選択して OK をクリックして下さい。 他の地域の UTM ゾーンと EPSG コードを知りたい場合,gisbox さんに pdf で早見表が 御座います。そちらをご参考に https://sites.google.com/site/gistoolboxes/以上がすんだら OK を押します。下の様に表示されたら OK です。つづけて,道路のデータからも同様につくば市内の道路を選択し,名前をつけて保存して下さ
  12. 12. い。
  13. 13. 保存が終了したら,選択したファイルだけを表示してみます。一度 QGIS を終了し,新しく起動し直して,選択したファイルだけを表示してみて下さい。 上図のように,最初に比べてちょっと縦長に表示されていたら OK です。これで,使用するデータの準備はできました。これからが本番の草刈りです(個人的に,GRASS を使って四苦八苦する
  14. 14. ことを,草刈りと呼んでいます)。 3.4 r.cost による分析の実施(と,そこに至るための下準備) 3.4.1 mapset と location の作成 GRASS は様々な GIS データの処理ができる非常に強力な FOSS4G ですが,shp や GeoTiff と いったデータをそのまま使えない,location や mapset という独自の概念を理解する必要がある,と いうことで,ちょっと初心者にはハードルが高い部分もあります。 初心者向けの資料としては,http://www.slideshare.net/wata909/foss4g-2012-tokyo-grass があっ たりするので,そちらもご参考ください。また,OSGeo 財団日本支部の Web サイトにも各種資料があ ります。 http://www.osgeo.jp/foss4g-mext/ こちらもご参考にして下さい。 さておき,作業をしてみましょう。まず,GRASS を起動します。 GRASS を使用する場合,「GIS データディレクトリ」を指定する必要があります。これは任意の ディレクトリで良いのですが,例えば「c:¥nige¥GRASS」とします3 。これを指定したら「ロケーション ウィザード」をクリックします。まず,「プロジェクトロケーション」を「tukuba」とします。3 上記では違うディレクトリになってるけど,気にしない。
  15. 15. つぎに,「新しいロケーションの作成方法を選択」が出ますので,「地理参照ファイルを選択」を選んで下さい。 ここで先ほど作成した道路データについてつくば市の範囲で切り出したモノを選択します。
  16. 16. すると,以下のようにロケーションが設定されます。 ロケーションが作成されたら,次に mapset を作成します。GRASS の起動画面から「マップセットの作成」をクリックして,「新しいマップセットの作成」が出てきたら,「nige」と入力して下さい。
  17. 17. ここまできて,やっと起動準備が完了です。「利用可能なマップセット」から「nige」を選択して,「GRASS の起動」をクリックして下さい。 すると,GRASS が起動します。QGIS や某 A のつく GIS ソフトは 1 つのウィンドが立ち上がるだけですが,GRASS は 2 つのウィンドが立ち上がります。1 つは,レイヤの一覧表示やコマンドを選択する「GRASS GIS レイヤーマネージャー」(左)で,もう一つはデータが表示される「GRASS GISマップ表示」(右)になります。
  18. 18. 3.4.2 データのインポート さて,起動が完了したら,データのインポートです。 レイヤーマネージャーから『ファイル,ベクトルデータのインポート,一般的なインポート形式[v.in.ogr] 』をクリックして下さい。すると,次の様なウィンドが出てくると思います。
  19. 19. ここで,「ソースタイプ」をディレクトリ,「ソース」の「ディレクトリ」で先ほど作成した shp が含まれるディレクトリを選ぶと,「OGR レイヤ一覧」にそのフォルダーに含まれる shp ファイルの一覧が表示されます。ここでインポートする shp,ここでは「highway_utm54.shp」と「point_utm54.shp」の横にチェックを入れ,マップ名を「highway」と「point」と指定します。ここで「インポート」をクリックすると,ファイルが GRASS にインポートされます。インポートされたファイルを表示すると,次のようになります。ちょっと見えにくいですが,ズームすると福祉施設のポイントデータもインポートされています。
  20. 20. 3.4.3 福祉施設から最も近い道路の座標特定 さて,ここからがちょっと面倒。まず,画面をズームしてみます。 黒い線が道路,赤い点が福祉施設になります。見てわかるように,福祉施設のデータが道路の上に乗っていません。r.cost の分析では,距離測定の開始点,つまり福祉施設の位置は,道路の上にある必要があります。本来は,福祉施設の入り口の位置がわかれば良いのですが,それが難しいので,「福祉施設の点から一番近い道路の位置」を仮想的に福祉施設の位置として扱います。 ここでは, v.distance コマンドを使って一番近い地点の座標を決定する ↓ v.out.ascii をエクスポートする ↓ v.in.ascii で再度読み込む といった手順で分析を行います。ただし,v.distance コマンドは,既存のテーブルの列に値をアップデートするという使い方しかできません。なのでまず,値をアップロードする列を追加する必要があります。なので, v.db.addcol で列を追加 ↓ v.distance コマンドを使って一番近い地点の座標を決定する ↓ v.out.ascii をエクスポートする ↓ v.in.ascii で再度読み込む
  21. 21. という,手順をで行う事にします。もしかするともうちょっと良い手順があるかもしれないのですが,見つかりませんでした。誰か,教えて(汗 とにかく,やります。まず,『データベース,データベース接続,列追加 [v.db.addcol] 』をクリックします。 そうすると v.db.addcol ウィンドが開くので,上で「point@nige」を,下で「line_x double, line_ydouble」と入力します。これは,「point」という地図に,「line_x という列を小数点形式で,同じく line_yという列を小数点形式で追加」する,ということになります。
  22. 22. 次に,レイヤーマネージャーから『ベクトル,近傍のフィーチャ [v.distance] 』を選択します。すると下の様なウィンドが表示されるので,「存在するベクトルマップ名 (from) 」で「point@nige」を,「存在するベクトルマップ名 (to) 」で「highway」を選択し,「x coordinate of the nearest point on the`to` feature (to の地物の最も近い地点の x 座標)」と「y coordinate of the nearest point on the `to`feature (to の地物の最も近い地点の y 座標)」を選択します。そして,「upload オプションによって・・・」に,「line_x, line_y」と入力して実行をクリックします。
  23. 23. すると,福祉施設の点から最も近い道路の点の x, y 座標値が line_x と line_y に入力されます。 このデータを,一度外部に出力します。『ファイル,ベクトルマップのエクスポート,ASCII ポイント/GRASS ASCII ベクトルのエクスポート[v.out.ascii] 』を選択します。 必須で「point@nige」を選択,ポイントで区切り文字を「,(カンマ)」,エクスポートする属性列名に「line_x, line_y」と入力,オプションで出力ファイルを指定して下さい。
  24. 24. ここで,出力したファイルを確認すると,一列目と二列目が元の XY 座標,3 列目が ID,四列目と五列目が道路上の XY 座標になります。
  25. 25. ここで,このテキストファイルをもう一度インポートすることにします。今度は,『ファイル,ベクトルマップのインポート,ASCII ポイント/GRASS ASCII ベクトルのインポート [v.in.ascii] 』を選択します。 インポートするファイルとして先ほどの point.txt を,出力するマップ名として point_snap を指定します。
  26. 26. そして入力ファイルのフォーマットで,フィールドセパレーターに「,(カンマ)」を,
  27. 27. ポイントで「Number of column used as X coordinate」とその下に,それぞれ4,5を入力して,次項をクリックします。出力されたデータを表示すると,元の位置から一番近い道路上に新し点(ここでは赤いまるで表示)が作成されたのが見られます。
  28. 28. よし,ここまで来ればもう少しw3.4.4 福祉施設および道路のバッファーの生成およびのラスター化 r.cost を実施するためには,ラスターデータが必要になります。GRASS の場合,v.to.rast でベクターをラスターに変換するのですが,線や点データをそのままラスターに変換した場合,ちょっと見栄えが悪くなります。そこでここでは,線や点からバッファーを発生させる→そのデータをラスターに変換する,という手順で作業を行います。 まず,『ベクトル,バッファリング [v.buffer] 』をクリックします。
  29. 29. 入力するマップとして「point_snap」,出力するマップとして「point_buff」を選択します。 次に,距離タブの「マップユニットの長軸に沿ったバッファー距離」に 5(すなわち 5m のこと)を入力します。これを実施すると、道路上に半径 5m の円ができます。
  30. 30. ラインに対しても同様に実施します。出力を highway_buff とし,実行したものを表示すると以下のようになります。この場合,道路の線の両脇に 5m の幅でバッファーが生成されています。
  31. 31. 次に,このデータをラスタに変換します。 が,その前に。GRASS でラスタデータの分析を行う場合,region と呼ばれる分析範囲を指定する必要があります。この region が正しく設定されていないと,期待する結果を得ることができません。というか,分析したはいいけど,結果が真っ白!!,ということが頻発します。ということで,region の設定を行います。『設定,領域,領域設定 [g.region] 』をクリックしてください。既存領域タブの「ベクトルマップに一致するように領域を設定します」で「highway_buff」を選択,解像度タブの「グリッド解像度」に「5」を入力します。これはすなわち,「分析対象は highway_buff と同じ範囲で,ラスタデータの解像度(細かさ)は 5m です」と指定したことになります。
  32. 32. ラスタの変換は,『ファイル,マップタイプの変換,ベクトル→ラスター [v.to.rast] 』です。「入力するベクトルマップ名」を point_snap,出力するラスターマップ名を start_point としました。ラスター値のソースは「val」とします。これで実施すると,点データがラスタに変換されます。
  33. 33. 同じく,highway_buff も変換します。こちらは,output は highway_buff のままでよいかと思います。道路のバッファーをラスタに変換したものの表示例は以下になります。
  34. 34. 3.4.5 r.cost の実行 やっと,ここまで来た・・・。 はい,r.cost の実施です。r.cost が何かとかは, マ ニ ュ ア ル ( http://grass.osgeo.org/grass64/manuals/r.cost.html ) や , こ ち ら の ス ラ イ ド シ ェ ア (http://www.slideshare.net/wata909/rcost)をご参考にして下さい。4 r.cost は「ラスター,地形解析,表層断面図5」 ここの必須タブの「グリッドセルのコスト情報・・・」を highway_buff,「出力するラスターマップ名」を highway_cost_dist としました。次に,スタートタブの「開始ラスター点のマップ名」を start_point,オ プションタブの「精度を上げる」にチェックを入れ,実行を押します。4 すみません,だんだん説明する気力が・・・5 うーん訳が・・・。
  35. 35. あとは,計算が終わるのを待つだけです。60 秒と出てますが,まぁ,180 秒ぐらいはかかったかもしれません。でも,これで終わりです。このように,準備が長い。これが GIS というものです,はい。
  36. 36. データを表示すると,こんな感じです。大体出来上がりなんですけど,色合いがちょと違います。あと一歩です!!!
  37. 37. 3.4.6 逃げ地図にあわせた色の指定 さて逃げ地図ですが,優れた点の一つが「老人の方の移動時間に合わせて地図を色分けする」ことにあると思います。具体的には下の様な色分けになっています。 http://www.nigechizuproject.com/?page_id=27 より引用 ということで,色分けを逃げ地図に合わせます。GRASS のラスター地図の色指定は,『ラスター,カラー調整,カラーテーブル [r.colors] 』から行います。
  38. 38. 必須タブで先ほど作成した highway_cost_dist を選択します。次に,色タブの「または対話的に値を入力します」の所に,以下のテキストを貼り付けて下さい。
  39. 39. 0 0:155:99 26 0:155:99 26 121:191:89 52 121:191:89 52 247:218:9 78 247:218:9 78 243:152:9 104 243:152:9 104 232:52:12 130 232:52:12 130 107:22:134 156 107:22:134 156 14:110:184 182 14:110:184 182 0:0:0 1200 0:0:0 nv 255:255:255 default 255:255:255 これは,最初の数字がラスタの値あとの数字が RGB になります。例えば,最初の二行は「0 から26(セルの解像度が 5m なので,130m)までは緑色」ということを指定しています。これで表示すると,逃げ地図をほぼ同じ色合いになります。
  40. 40. 以上の分析結果を QGIS の上で基盤地図 25000WMS 配信サービスと重ねたものが下になります 黒いところは,福祉施設まで歩いて 24 分以上かかるところとなります。つくばは旧集落と新しい 住宅地が混在する地域になりますが,歩いて 30 分以内となると,なかなかきつい感じのようです。 あとは,これを全国に実施して,福祉施設の配置の分析に使うとか,何とか・・・。4 おわりに すみません,時間ぎりぎりなので,結構はしょりました。先ほども申しましたように、このドキュメントは 「CC-BY 2.0 日本」でライセンスしています。 だれか,清書して下さいwww ここまで目を通してくれた方,ありがとうございます m(__)m

×