2017年08月27日

QGISでルートの最短距離を算出する  Routes and Zonesプラグイン

はじめに


 自治体のインターネット切り離しによって、GoogleMapYahoo地図などが使いづらくなっています。

 以前までは工事の設計などで運搬距離を算出するために、インターネットの地図サービスで経路検索を行っていましたが、いまは使えないことはないのですが、インターネットの接続に時間がかかったり、接続時間に制限があったりして、使いづらくなっています。

 オフラインで経路検索できないか、いろいろ探すと、QGISRoutes and Zonesプラグインが便利でしたので紹介します。

 QGISにはコアプラグインで「道路グラフプラグイン」という経路検索できるプラグインがありますが、「Routes and Zones」プラグインのほうが高速に、複数の経路検索ができるので便利でした。


2017_08_26_09.png




準備するもの


 Routes and Zonesプラグインを利用するには、次のものを準備する必要があります。


・道路などのラインデータ

 座標参照系はWGS84EPSG:4326)にします。OpenStreetMapなどの道路ラインデータを使って作成します。OpenStreetMapのデータは「bbbike.org」などでダウンロードできます。OpenStreetMapのデータには、歩道や自転車道などの車の通れない道路(bridlewaycyclewayfootwayなど)も記録されていますので、事前に削除しておきましょう。また、高速道路(motorwayを使わないでルート検索をする場合には、高速道路も削除しておくといいでしょう。


・出発点と目的地のポイントデータ

 座標参照系をWGS84EPSG:4326)にします。シェープファイルなどで新規に作ります。「IDフィールド(数値)」と「Nameフィールド(テキスト)」が必要です。


Routes and Zonesプラグイン

Routes and Zonesプラグインは「実験的なプラグイン」です。

 メニュー「プラグイン」→「プラグインの管理とインストール」の「設定」を選択し、「実験的プラグインも表示する」にチェックを付けてから、検索すると一覧に表示されるので、インストールします。




プラグインフォルダから必要なファイルをコピー


 経路検索をするためのプロジェクトファイルを作成します。そのために、データを一つのフォルダに保存します。

Routes and Zonesを利用するには、計算した結果を保存するためのレイヤが必要ですが、そのレイヤファイルは、プラグインをインストールしたフォルダにサンプルとして保存されています。

 通常は、「C:\Users\【ユーザー名】\.qgis2\python\plugins\raz\sample-data」に保存されています。サンプルデータのフォルダ内のraz data.sqliteをコピーして、経路検索のためのフォルダに保存します。

2017_08_26_02.png


 また、「道路ラインデータ」「出発点ポイントデータ」「目的地ポイントデータ」も同じフォルダに保存します。




レイヤを追加する


 経路検索プロジェクトにレイヤを追加します。道路ラインデータと出発点、目的地データは「ベクタレイヤの追加」でプロジェクトに追加します。

raz data.sqliteにはルート(Route)と検索用のデータベース(verylong)が格納されています。この2つのレイヤを次の手順でプロジェクトに追加します。


  • Spatialiteレイヤの追加」を選択し、「新規」ボタンをクリックします。
  • raz data.sqlite」を選択し、「接続」ボタンをクリックします。
    2017_08_26_04.png
  • 「ジオメトリを持たないテーブルもリストする」にチェックを付けます。
  • リストの中から「route」と「verylong」を選択して、「追加」ボタンをクリックします。(複数選択する場合は、CTRLキーを押しながら選択)
    2017_08_26_05.png

レイヤの追加に成功すると、下図のようになります。

2017_08_26_06.png




出発点と目的地を作図する


 出発点レイヤと、目的地レイヤに距離を計算したいポイントを作図します。地物を追加するときに、「ID」と「Name」フィールドにデータを入力しておきます。




Routeレイヤにもともとある地物を削除する


Routeレイヤには、サンプル用に記録されている地物があるので、事前に削除しておくといいです。




Routes and Zonesプラグインを実行する


 メニュー「プラグイン」→「Routes and zones calculate tool」→「Route calculate tool」を選択します。

2017_08_26_07.png


 「Layer source(from points)」には出発点ポイントを選択します。「ID field」にはIDフィールド、「Name field」にはNameフィールドを選択します。

 「Layer target(from points)」には目的地ポイントを選択します。「ID field」にはIDフィールド、「Name field」にはNameフィールドを選択します。

 出発地と目的地は、事前に選択した地物のみを対象にすることもできます。その際は「Only selected points」にチェックを付けます。

 「Map layer road network」には道路ラインレイヤを選択します。

 「Maximum route length(kilometers)」には、ルートを計算する最大距離を入力します。例えば100kmと入力すると、100kmまでの範囲にある目的地を検索します。

 「Map layer for calculated routes」には、routeレイヤを選択します。

 「Table routes,longer maximun」にverylongレイヤを選択します。

2017_08_26_08.png


 「Run」ボタンをクリックすると、出発点から目的地までの最短ルートを検索し、Routeレイヤに作図します。

2017_08_26_09.png


routeレイヤの属性データを確認すると、出発点と目的地の名前と距離(pathフィールド)が記録されています。


2017_08_26_10.png




まとめ


QGISのコアプラグインである道路グラフプラグインは、道路ラインの地物が多いとエラーになることも多いですが、Routes and Zonesプラグインは、道路レイヤの地物数が多くても、高速で検索を行うことができます。

 インターネット地図であるGoogleMapYahoo地図でもルート検索ができますが、いちいち地点を選択しなければならない手間もありますし、地図の利用規約により、印刷して仕事で利用できない場合もあります。

 そのような場合には、OpenStreetMapなどのデータを使った地図を使うと自由に利用することもできます。

 便利なプラグインですので、利用してみてください。



注:32bitのOSだと、道路レイヤの地物数が多いとクラッシュダンプする場合があるようです。

 その場合は、道路の地物数を減らして、再度実行してみてください。



posted by kouichi at 01:09| Comment(9) | QGIS | このブログの読者になる | 更新情報をチェックする

2017年07月16日

写真の位置をQGISに表示しよう(Photo2KMZプラグイン)

スマートフォンやGPS付きデジカメで撮影した位置情報の付いた写真がある場合、その位置情報を使ってQGISにポイントを作成するには「Photo2Shape」プラグインがあります。

Photo2Shapeプラグインのエラー対処法

写真とGPSをリンクさせてQGISで写真を表示する方法


しかし、Photo2Shapeプラグインは、「Exifread」という別のファイルをQGISのインストールフォルダ(しかもかなり深い場所)にコピーしなければなりません。また、ExifreadのバージョンによってはPhoto2Shapeが動作しないなどの問題もあります。(2017年7月現在もExifreadのバージョンの違いでエラーが出ます。エラーが出る場合には、Exifreadを最新版に更新してください。)


たまたまPhoto2Shapeを更新しようと思って、QGISの「プラグインの管理とインストール」で「Photo」と検索するとPhoto2KMZというプラグインを発見しました。


試してみると、写真フォルダ、ファイル名を半角英数字にしなければいけないのはPhoto2Shapeと一緒ですが、Exifreadなどの別のファイルも必要ないし、GoogleEarthでも利用できるKMZファイルと、ファイル名と座標値が記録されたCSVファイルが作成されるので、Photo2Shapeよりもこちらのほうが使いやすい人という方もいると思います。



Photo2KMZの使い方




  1. 位置情報が記録された写真を準備します。写真の保存フォルダ、ファイル名は、半角英数字のみにしてください。

  2. メニュー<プラグイン>→<Photo2KMZ>を選択して、Photo2KMZプラグインを起動します。

  3. Select Folder」ボタンをクリックして、写真が保存されているフォルダを選択します。

  4. Save File Name〜」に作成するKMZファイルのファイル名を入力します。
    KMZ
    ファイルとCSVファイルは、写真と同じフォルダに作成されます。

  5. OK」ボタンをクリックすると、KMZファイルの作成が始まります。

  6. KMZファイルが作成されると、メッセージが表示され、GoogleEarthがインストールされていれば、GoogleEarthが起動して、写真のポイントが表示されます。



作成されたKMZファイル




Photo2KMZプラグインで作成されたKMZファイルのは写真も同梱されます。そのため、ファイルサイズが大きくなります。

GoogleEarthで利用するのであれば、写真が同梱されたKMZファイルは便利ですが、QGISではポイントデータのみのkmlファイルがあればOKです。

KMZファイルは、zip圧縮されたファイルですので、zipファイルと同様に展開して、kmlファイルのみコピーすることでkmlファイルをのみを保存できます。



作成されたCSVファイル




KMZファイルと一緒に作成されるCSVファイルは、QGISの「デリミティッドテキストレイヤの追加」でポイントレイヤとして地図に表示できます。




ラベル:QGIS Photo2KMZ 写真
posted by kouichi at 16:54| Comment(0) | QGIS | このブログの読者になる | 更新情報をチェックする

2017年07月07日

北部九州地方の2017年7月5日〜6日にかけての24時間等雨量線をつくりました

2017年7月6日の記事で等雨量線の作り方を紹介しました。

この記事は、7月3日くらいから作っていたのですが、たまたま公開した日に北九州での大雨災害がありました。災害にあわれた方には、心よりお見舞い申し上げます。


7月7日に気象庁のWebサイトで5日、6日の九州の雨量をダウンロードできるようになりましたので、2017年7月5日午前11時から6日午前10時までの24時間雨量の等雨量線を作成してみました。

ここからダウンロードできます。

QGISのプロジェクトファイル「九州等雨量線作成.qgs」をQGISで開くと、等雨量線が表示されます。

背景はOpenStreetMapを利用しています。

Image 2017_07_07_212608.png 


24時間最大雨量は観測点によって違いますが、今回は最も雨量多かった、「朝倉」の最大24時間雨量を基準にしました。

なお、等雨量線が示す雨量は、観測所の観測雨量から推測したものですので、実際の雨量とは異なります。


お役に立てるかわかりませんが、自由に利用してください。


ラベル:QGIS 等雨量線 災害
posted by kouichi at 21:48| Comment(0) | QGIS | このブログの読者になる | 更新情報をチェックする