【QGIS】枠外にラベルを置くときにラベルまでラインを引く方法
【林業QGIS本】Amazonで予約できます
雨量の等高線【等雨量線】をQGISで作る
はじめに
その際、災害発生現場が雨量観測所から離れている場合、観測所からの距離配分で現場の雨量を推測しますが、紙の地図で自作するのは面倒なものです。
そこで、QGISを使うと、下の図のような雨量の等高線「等雨量線」を簡単に作成することが可能です。
図 等雨量線を作成した地図
この記事で作成する、雨量ラスタレイヤの作成方法は、2017年6月30日に開催されたFOSS4G HokkaidoのQGISラスタ中級編ハンズオンで行われた内容をヒントにしています。
データの準備
l アメダス地域気象観測所一覧データ(気象庁)
CSVファイルでダウンロードできます。
緯度経度の度と分が別のフイールドになっているので、一つのフィールドに修正します。
度分秒も10進数に直しておくと後で扱いやすいと思います。
図 雨量観測所の座標を10進数に修正した表
l 雨量データのCSV(気象庁)
必要な観測地点を選択して、必要な期間と必要なデータを選択します。今回は2016年8月17日の北海道十勝地方のデータを利用してみます。
観測所のCSVをQGISに読み込む
QGISでは「デリミティッドレイヤの追加」でCSVファイルを選択します。すると、次のような画面が表示されるので、「Xフィールド」に「経度」、「Yフィールド」に「緯度」を選択します。
図 デリミティッドテキストの画面
「OK」ボタンをクリックすると、マップキャンバスに観測所のポイントが表示されます。
その際、「CRSが定義されていません」とエラーが表示されるので、レイヤを右クリックして「レイヤのCRSを設定する」を選択し「WGS84(EPSG:4326)」を選択します。
必要な観測所のみを保存する
自分に必要なポイントのみ選択して、レイヤを右クリックして「名前をつけて保存する」を選択します。
「形式」は、今回はシェープファイルに保存しますので「ESRI Shapefile」を選択します。
座標系は、WGS84のままでもいいですし、平面直角座標系に変更しても構いません。
「選択地物のみ保存する」にチェックを付けて、「OK」ボタンをクリックすると、選択したポイントだけを新しいファイルで保存できます。
必要な雨量データを準備する
しかし、ここでダウンロードできるCSVファイルは、観測地点が列になって、データが行になっています。
このあとで、先程作った観測所レイヤに雨量データを結合したいのですが、これでは行列が逆になっています。
Excelなどの表計算ソフトでは、行列を入れ替えてコピーすることができるので、その機能を利用して、行列を入れ替えたデータを作ります。
行列を入れ替えたあと、不要なデータを削除して、観測所の名前と雨量のみにして、Excel2003形式ファイル(xls)で保存します。複数シートが有る場合は、シート名をわかりやすくしておくといいです。
図 雨量データの例
ここでCSVファイルではなくExcelファイルを利用するのは、数字を数字としてQGISに読み込ませるためです。
雨量データをレイヤに追加する
図 Excelファイルをレイヤに追加するときにシートを選択する
図 レイヤに追加されたExcelデータ
ExcelファイルをQGISのレイヤに追加すると、文字コードが「UTF-8」でなければなりません。レイヤを右クリックして、プロパティを選択し、一般情報の「データソースエンコーディング」を「UTF-8」にします。
観測所データと雨量データを結合する
観測所ポイントデータを右クリックして、プロパティを選択します。「結合」を選択して、「+」ボタンをクリックして、結合ダイアログを表示します。
「レイヤの結合」に雨量データを選択します。「フィールドを結合する」で、雨量データの観測所名フィールドを選択します。「ターゲットフィールド」で観測所データの観測所名を選択します。
「フィールドの接頭辞」にチェックを付けて、テキストボックスの中を空白にします。
「OK」ボタンをクリックすると、結合ルールが登録されます。
結合ルールはいつでも編集できます。
観測所データの属性テーブルを確認すると、雨量データが追加されています。
結合したレイヤを名前をつけて保存
雨量を結合した観測所レイヤを右クリックして、「名前をつけて保存する」を選択します。
ファイルの保存先を選択して、「OK」ボタンをクリックすると、新しいレイヤが作成されます。
紛らわしいので、元のレイヤは削除しておきましょう。
図 雨量観測所に雨量データを結合した新しいレイヤ
「変換プラグイン」の確認
「メニュー「プラグイン」→「プラグインの管理とインストール」で「インストール済み」を選択し、「変換プラグイン」にチェックがついているか確認します。チェックが付いていなければチェックを付けます。
「データ補間」で雨量ラスタを作成
メニュー「ラスタ」→「データ補間」→「データ補間」を選択します。
「入力」の「ベクタレイヤ」に観測所レイヤを選択し、「補完する属性」で雨量データのフィールドを選択します。
「追加」ボタンをクリックすると、リストに選択したレイヤとフィールドが追加されます。
リストに追加されると、その範囲の座標が自動入力されます。
「出力」の「カラム数」「行数」を設定します。範囲の大きさで適切な数値を設定してください。数字を大きくすると、ラスタのメッシュが小さくなり、メッシュ数が多くなります。
「出力ファイル」で、ラスタレイヤを保存するファイルを指定します。ここで指定するフォルダ名、ファイル名は半角英数字のみとして、日本語を含まないようにしてください。
「OK」ボタンをクリックすると、ラスタレイヤが作成されます。
ラスタレイヤのファイルは拡張子「asc」と「prj」というファイルが作成されます。
等雨量線を作成する
そこで同じ雨量を結んだ線(ライン)の「等雨量線」をベクタレイヤで作成します。
メニュー「ラスタ」→「抽出」→「等高線」を選択します。
「入力ファイル(ラスタ)」に雨量ラスタレイヤを選択します。
「等高線(ベクタ)を出力するファイル名」で保存するベクタレイヤのファイル保存先を設定します。
この時、入力ファイル、出力ファイルともにフォルダ名、ファイル名は半角英数字のみとし日本語は使わないでください。
「属性カラム名」にチェックを付けてください。フィールド名は変更しなくても構いません。フィールド名は半角英数字のみとしてください。
「OK」ボタンをクリックすると、「処理が完了しました」とメッセージが表示され、等雨量線が作成されます。「閉じる」ボタンで終了します。
等雨量線のシェープファイルは、上で指定した出力ファイルで指定したフォルダ内に「contour」という名前のシェープファイルで保存されます。
レイヤの順序を設定して、見やすいようにします。
等雨量線のスタイルとラベルの設定
ラインのスタイルは見やすい色と太さを選択してください。
ラベルは「ELEV」フィールドを選択して、線上に表示します。「バッファ」か「背景」を設定すると見やすいでしょう(画像は背景を楕円で設定した例)。
(画像では、雨量ラスタレイヤも「単バンド疑似カラー」でグラデーション分類しています)
おわりに
記事で作成したプロジェクトファイルとレイヤファイルもここに置いておきますので参考にしてください。
北部九州地方の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を利用しています。
24時間最大雨量は観測点によって違いますが、今回は最も雨量多かった、「朝倉」の最大24時間雨量を基準にしました。
お役に立てるかわかりませんが、自由に利用してください。
写真の位置をQGISに表示しよう(Photo2KMZプラグイン)
スマートフォンやGPS付きデジカメで撮影した位置情報の付いた写真がある場合、その位置情報を使ってQGISにポイントを作成するには「Photo2Shape」プラグインがあります。
しかし、Photo2Shapeプラグインは、「Exifread」という別のファイルをQGISのインストールフォルダ(しかもかなり深い場所)にコピーしなければなりません。また、ExifreadのバージョンによってはPhoto2Shapeが動作しないなどの問題もあります。(2017年7月現在もExifreadのバージョンの違いでエラーが出ます。エラーが出る場合には、Exifreadを最新版に更新してください。)
たまたまPhoto2Shapeを更新しようと思って、QGISの「プラグインの管理とインストール」で「Photo」と検索すると「Photo2KMZ」というプラグインを発見しました。
試してみると、写真フォルダ、ファイル名を半角英数字にしなければいけないのはPhoto2Shapeと一緒ですが、Exifreadなどの別のファイルも必要ないし、GoogleEarthでも利用できるKMZファイルと、ファイル名と座標値が記録されたCSVファイルが作成されるので、Photo2Shapeよりもこちらのほうが使いやすい人という方もいると思います。
Photo2KMZの使い方
位置情報が記録された写真を準備します。写真の保存フォルダ、ファイル名は、半角英数字のみにしてください。
メニュー<プラグイン>→<Photo2KMZ>を選択して、Photo2KMZプラグインを起動します。
「Save File Name~」に作成するKMZファイルのファイル名を入力します。
KMZファイルとCSVファイルは、写真と同じフォルダに作成されます。「OK」ボタンをクリックすると、KMZファイルの作成が始まります。
KMZファイルが作成されると、メッセージが表示され、GoogleEarthがインストールされていれば、GoogleEarthが起動して、写真のポイントが表示されます。
作成されたKMZファイル
Photo2KMZプラグインで作成されたKMZファイルのは写真も同梱されます。そのため、ファイルサイズが大きくなります。
GoogleEarthで利用するのであれば、写真が同梱されたKMZファイルは便利ですが、QGISではポイントデータのみのkmlファイルがあればOKです。
KMZファイルは、zip圧縮されたファイルですので、zipファイルと同様に展開して、kmlファイルのみコピーすることでkmlファイルをのみを保存できます。
作成されたCSVファイル
KMZファイルと一緒に作成されるCSVファイルは、QGISの「デリミティッドテキストレイヤの追加」でポイントレイヤとして地図に表示できます。
QGISでルートの最短距離を算出する Routes and Zonesプラグイン
はじめに
自治体のインターネット切り離しによって、GoogleMapやYahoo地図などが使いづらくなっています。
以前までは工事の設計などで運搬距離を算出するために、インターネットの地図サービスで経路検索を行っていましたが、いまは使えないことはないのですが、インターネットの接続に時間がかかったり、接続時間に制限があったりして、使いづらくなっています。
オフラインで経路検索できないか、いろいろ探すと、QGISの「Routes and Zones」プラグインが便利でしたので紹介します。
QGISにはコアプラグインで「道路グラフプラグイン」という経路検索できるプラグインがありますが、「Routes and Zones」プラグインのほうが高速に、複数の経路検索ができるので便利でした。
準備するもの
Routes and Zonesプラグインを利用するには、次のものを準備する必要があります。
・道路などのラインデータ
座標参照系はWGS84(EPSG:4326)にします。OpenStreetMapなどの道路ラインデータを使って作成します。OpenStreetMapのデータは「bbbike.org」などでダウンロードできます。OpenStreetMapのデータには、歩道や自転車道などの車の通れない道路(bridleway、cycleway、footwayなど)も記録されていますので、事前に削除しておきましょう。また、高速道路(motorway)を使わないでルート検索をする場合には、高速道路も削除しておくといいでしょう。
・出発点と目的地のポイントデータ
座標参照系をWGS84(EPSG:4326)にします。シェープファイルなどで新規に作ります。「IDフィールド(数値)」と「Nameフィールド(テキスト)」が必要です。
ただし、出発地と目的地はデリミティッドテキストレイヤだと計算されませんので、シェープファイルに変換してください。
・Routes and Zonesプラグイン
Routes and Zonesプラグインは「実験的なプラグイン」です。
メニュー「プラグイン」→「プラグインの管理とインストール」の「設定」を選択し、「実験的プラグインも表示する」にチェックを付けてから、検索すると一覧に表示されるので、インストールします。
プラグインフォルダから必要なファイルをコピー
経路検索をするためのプロジェクトファイルを作成します。そのために、データを一つのフォルダに保存します。
Routes and Zonesを利用するには、計算した結果を保存するためのレイヤが必要ですが、そのレイヤファイルは、プラグインをインストールしたフォルダにサンプルとして保存されています。
通常は、「C:\Users\【ユーザー名】\.qgis2\python\plugins\raz\sample-data」に保存されています。サンプルデータのフォルダ内の「raz data.sqlite」をコピーして、経路検索のためのフォルダに保存します。
また、「道路ラインデータ」「出発点ポイントデータ」「目的地ポイントデータ」も同じフォルダに保存します。
レイヤを追加する
経路検索プロジェクトにレイヤを追加します。道路ラインデータと出発点、目的地データは「ベクタレイヤの追加」でプロジェクトに追加します。
「raz data.sqlite」にはルート(Route)と検索用のデータベース(verylong)が格納されています。この2つのレイヤを次の手順でプロジェクトに追加します。
- 「Spatialiteレイヤの追加」を選択し、「新規」ボタンをクリックします。
- 「raz data.sqlite」を選択し、「接続」ボタンをクリックします。
- 「ジオメトリを持たないテーブルもリストする」にチェックを付けます。
- リストの中から「route」と「verylong」を選択して、「追加」ボタンをクリックします。(複数選択する場合は、CTRLキーを押しながら選択)
レイヤの追加に成功すると、下図のようになります。
プロジェクトの座標系を投影座標系にする
※2017年12月10日追記
レイヤの座標系をすべて同じにしておく必要がありますが、レイヤの座標系は地理座標系でも投影座標系でも構いません。
しかし、プロジェクトの座標系は投影座標系でなければ、正しく距離が計算されないようです。
プロジェクトの座標系が地理座標系の場合、オンザフライCRS変換を有効にして、プロジェクトの座標系(CRS)を平面直角座標系などの投影座標系に変更してください。
出発点と目的地を作図する
出発点レイヤと、目的地レイヤに距離を計算したいポイントを作図します。地物を追加するときに、「ID」と「Name」フィールドにデータを入力しておきます。
Routeレイヤにもともとある地物を削除する
Routeレイヤには、サンプル用に記録されている地物があるので、事前に削除しておくといいです。
Routes and Zonesプラグインを実行する
メニュー「プラグイン」→「Routes and zones calculate tool」→「Route calculate tool」を選択します。
「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レイヤを選択します。
「Run」ボタンをクリックすると、出発点から目的地までの最短ルートを検索し、Routeレイヤに作図します。
routeレイヤの属性データを確認すると、出発点と目的地の名前と距離(pathフィールド)が記録されています。
まとめ
QGISのコアプラグインである道路グラフプラグインは、道路ラインの地物が多いとエラーになることも多いですが、Routes and Zonesプラグインは、道路レイヤの地物数が多くても、高速で検索を行うことができます。
インターネット地図であるGoogleMapやYahoo地図でもルート検索ができますが、いちいち地点を選択しなければならない手間もありますし、地図の利用規約により、印刷して仕事で利用できない場合もあります。
そのような場合には、OpenStreetMapなどのデータを使った地図を使うと自由に利用することもできます。
便利なプラグインですので、利用してみてください。
注:32bitのOSだと、道路レイヤの地物数が多いとクラッシュダンプする場合があるようです。
その場合は、道路の地物数を減らして、再度実行してみてください。
QGIS3からはGeopackageが使いやすいぞ!脱シェープファイル!
この記事は、FOSS4G Adventカレンダー2017に参加した記事です。
2017年の12月中にQGIS3.0がリリースされるという噂があり、毎日のようにQGISのオフィシャルホームページをチェックしていますが、2017年12月17日現在ではまだリリースされていません。12月中にリリースされれば、年末年始はサワサワ触りまくってやるのにと思っていましたが・・・。
そこで、予行演習も兼ねて、OSGeo4wで利用できる開発版の2.99(内容はほぼ3.0と同じと思われる)を最近触ってみています。
(これ以降はQGIS2.99をQGIS3.0として書いていきます。)
QGIS3ではGeopackageがデフォルトになる?
ファイルの入出力や、プロセッシングツールなどを見ていると、いままでは、シェープファイルがデフォルトになっていましたが、QGIS3.0ではGeopackageがデフォルトになっています。
ここからわかるように、QGISもやっと脱シェープファイルを考えているのだと思われます(多分ですよ、多分)。
昨年のFOSS4G AdventカレンダーでもGeopackageの記事がありましたが、QGIS2ではまだまだ使える状況ではありませんでした。
QGIS3からは、GeopackageをQGISのデフォルトのファイル形式としましょうということなのでしょう。
Geopackageってなに?
Geopackageとは、「オープンで標準に準拠したプラットフォームに依存しない、移植性の高い自己記述型のコンパクトなフォーマット」ということで、SQliteデータベースに様々なGISデータを格納できるファイルです。私自身はSpatialiteとどこが違うのかはよくわかっていませんが、Geopackageは、ベクタデータはもちろん、ラスタや、Mbtilesなどさまざまなデータを格納でき、ひとつのファイルにすることができます。
ArcGISでもArcGIS10.2.2からGeopackageをサポートしているとのことです。QGISで作成したものがArcGISで利用できるかは不明ですが、多分大丈夫なような気がします。
Geopackageにデータを追加する
QGIS3では、ブラウザパネルのGeopackageファイルにレイヤパネルからレイヤをドラッグ&ドロップするだけで、Geopackageにデータを追加できます。(Geopackageファイルのパスに2バイト文字が含まれるとエラーになります)
ラスタレイヤもドラッグ&ドロップで追加することができます。
レイヤを名前をつけて保存することでもGeopackageにデータを保存できます。
(名前をつけて保存したレイヤは、ブラウザパネルの「Geopackage」で表示されない場合があるようです)
Geopackageファイルには、様々なGISデータを格納できるので、地図を作るためのファイルの数を非常にコンパクトにすることができます。
今まではシェープファイルやラスタファイルを複数使って地図を作った場合、数十個のファイルを必要としていましたが、Geopackageでは一つでいいのです。
ファイルサイズ自体はそれほど変わらないと思いますが、ファイル数が少なくなるのはいいことです。
Geopackageにはレイヤスタイルも保存できる
Geopackageには、レイヤスタイルを保存することができます。Geopackageから追加したレイヤのレイヤプロパティを表示して「シンボロジー」の「スタイル」ボタン→「スタイルを保存」に「データベースに保存(Geopackage)」があります。
ここでスタイルをGeopackageファイルの保存すると、そのレイヤのデフォルトのスタイルとして登録することもできます。
(QGIS2.99では、スタイルを保存するとQGISが落ちますが、保存はされているようです)
まとめ
QGIS2までは、シェープファイルがデフォルトのようだったので利用していましたが、フィールド名の文字数の縛りや、文字コードの問題、ファイルの数が多いなどいろいろな問題がありました。これが今後はGeopackageで解決していけば、非常に良いことだと思います。
シェープファイルには、安室奈美恵と一緒に引退していただき、新たな世代にその座を譲っていただきましょう。
QGIS2.99では日本語だとうまく行かなかったり、Geopackageにラスタを追加すると、削除できなかったりするようなので、もうすこし熟成が必要かもしれませんが、今後さらに進化していくことが楽しみです。
QGIS3.0 Hackfestが各地で開催されます
[札幌](https://qgis.connpass.
必見!「Web 地図画像の利用と著作権法」
平成30年北海道胆振東部地震 厚真町 正射画像の崩壊地をトレースしました
トレースしたGISデータはGitHubで公開しています。
【市町村向け】北海道オープンデータジオデータベースを作りました
緯度経度付きJpegから緯度経度付きのCSVを作る
Sub wiaImage()
'ファイル一覧取得
Dim D_fileName As String
Dim D_count As Long
Dim D_folderName As String
Dim x As Object 'WIA.ImageFile
Dim p As Variant
Dim i As Integer
Dim D_id As Long
D_count = 0
Worksheets("JPEG一覧").Cells.Cle
'フォルダ指定
MsgBox "位置情報付きのJpegファイルが保存されているフォルダを指
With Application.FileDialog(msoFile
If .Show = True Then
D_folderName = .SelectedItems(1)
End If
End With
'ファイル一覧を取得
D_fileName = Dir(D_folderName & "\*.jpg")
'列名を入力
Worksheets("JPEG一覧").Cells(1, 1) = "FolderName"
Worksheets("JPEG一覧").Cells(1, 2) = "FileName"
Do While D_fileName <> ""
i = 0
D_count = D_count + 1
Worksheets("JPEG一覧").Cells(D_c
Worksheets("JPEG一覧").Cells(D_c
'exif情報をコピー
Set x = CreateObject("Wia.ImageFile")
x.LoadFile D_folderName & "\" & D_fileName
On Error Resume Next
'Exif情報を記入
For Each p In x.Properties
i = i + 1
D_id = p.propertyid
Worksheets("JPEG一覧").Cells(1, i + 2).Value = p.Name '列名を記入
If p.propertyid = 2 Or p.propertyid = 4 Then
Worksheets("JPEG一覧").Cells(D_c
Else
Worksheets("JPEG一覧").Cells(D_c
End If
Next
On Error GoTo 0
Set x = Nothing
D_fileName = Dir() 'ファイル名をクリア
Loop
Worksheets("JPEG一覧").Select
Call CSV出力
Worksheets("メイン").Select
End Sub
Function getGPS(p As Variant) As Double
getGPS = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600
End Function
Dim D_ws As Worksheet
Set D_ws = ThisWorkbook.Worksheets(2)
MsgBox "CSVファイルの保存先を指定してください。", vbInformation
Dim D_csvFilepath As String
'ファイル指定ダイアログ
D_csvFilepath = Application.GetSaveAsFilename(
'CSVファイルを作成
Open D_csvFilepath For Output As #1
Dim gyou As Long
Dim retu As Long
Dim D_Data
'CSVへ書きだし
gyou = 1
Do While D_ws.Cells(gyou, 1).Value <> ""
retu = 1
Do While D_ws.Cells(1, retu + 1).Value <> ""
D_Data = D_ws.Cells(gyou, retu).Value
Print #1, D_Data & ","; 'データを記入
retu = retu + 1
Loop
Print #1, D_ws.Cells(gyou, retu).Value & vbCrLf; '改行コードを記入
gyou = gyou + 1
Loop
Close #1
MsgBox "CSVファイルを保存しました。確認してください。"
End Sub
2019年2月27~28日 北海道林務QGIS研修会
「業務で使うQGIS Ver3 完全使いこなしガイド」発売開始!
2019年9月9日発生台風15号被害の空中写真(朝日航洋)
ライセンスはCC-BY-NC-SAですので、出典明示、商用利用不可、ライセンスの継承が利用条件となります。
過去記事を非公開にしました(しまい方を考える)
QGISで「CS立体図」の「立体図」を作ってみた
注意!この記事はかなり古い情報です。現在のQGISとは操作方法が違いますので注意してください
「CS立体図」という地図をご存知でしょうか?
CS立体図は、傾斜図と曲率図と標高図を組み合わせた地図で、長野県林業総合センターで開発した、微地形を判読しやすくされた立体地図です。
・地形判読を行いやすくする立体図法
(http://www.pref.nagano.lg.jp/ringyosogo/documents/iku_cs.pdf)
・数値地形データを用いた「微地形図」の作成方法
(http://www.pref.nagano.lg.jp/ringyosogo/seika/documents/bichikei.pdf)
私も最近知ったのですが、林業の路網選定などには、非常に役に立つ地図のようです。
長野県林業総合センターでは、ArcGISでの作成方法が紹介されています。この中では、「立体図」と「曲率図」を作成して重ね合わせる手法が紹介されていますが、「立体図」だけでもかなり立体的に見えるので、ここではQGISで作る、CS立体図のうちの立体図の作成方法を紹介します。
図:ニセコアンヌプリ周辺の立体図
※今回作成する立体図の、曲率については、「Profile Curvature」という計算方法を使用していますが、これが本当に正しいのか、著者はわかっていません。もし他にいい方法があれば情報をください。
「Profile Curvature」で作成した地図は、等高線上の地形のシワが強調されて表現されます。
1. 標高DEMを準備する
- 標高DEMを基盤地図情報などからダウンロードします。株式会社エコリスの変換ツールを使って標高DEM(Tiffファイル)を作成します。
- 作成したファイル(merge.tif)は、日本語を含まないフォルダ、ファイル名にして保存します。
2. QGISのレイヤに標高DEMを追加する
- 標高DEMをQGISに追加します。標高DEMのファイルをマップキャンバスにドラッグ&ドロップするとレイヤに追加することができます。
図:レイヤに追加した標高DEM
3. プロセッシングツールで傾斜と曲率を計算
- プロセッシングツールを使って、標高DEMから傾斜図と曲率図を作成します。メニューに「プロセッシング」が表示されていない場合は、「プラグイン」→「プラグインの管理とインストール」で「Processing」を有効にしてください。
- メニュー「プロセッシング」→「ツールボックス」を選択して、プロセッシングツールボックスを表示します。
- 「SAGA」→「Terrain Analysis - Morphometry」→「Slope aspect Curvature」を選択します。
- 表示されたダイアログの「Elevation」に標高DEMレイヤを選択します。「Method」「Slope Units」「Aspect Units」は、デフォルト設定で構いません。
- このコマンドは、たくさんのレイヤを作成する事ができますが、必要なのは「Slope」「Profile Curvature」の2つだけですので、それ以外の「アルゴリズムの実行後に出力ファイルを開く」のチェックを外します。
- 「Run」ボタンをクリックすると、処理が開始され、新しいレイヤ「Slope」「Profile Curvature」が作成されます。
図:「Slope aspect Curvature」のダイアログ
4. レイヤを名前をつけて保存する
- 作成されたレイヤは、一時レイヤに作成されます。そのため、QGISを終了したら削除されてしまいます。
- レイヤを右クリックして、「名前をつけて保存する」を選択します。
- 「出力モード」を「生データ」にします。
- 「形式」を「GTiff」にします。
- 「パス」の「参照」ボタンをクリックして、ファイルの保存先を設定します。
- 座標参照形を設定する必要がある場合は、「CRS」で選択します。
- 「OK」ボタンをクリックすると、ファイルが保存されて、レイヤに追加されます。
- 元のレイヤ(Slope、Profile Curvature)は削除します。
図:「名前をつけて保存する」のダイアログ
5. 傾斜レイヤのスタイルを設定する
- 傾斜レイヤのプロパティを開いて、「スタイル」を選択します。
- 「レンダータイプ」を「単バンド疑似カラー」にします。
- 「色」を「Reds」にします。自動的にリストに数値が分類されます。
- 「カラーレンダリング」の「混合モード」を「乗算」にします。
- 「OK」ボタンをクリックするとスタイルの設定ができます。
図:傾斜レイヤのプロパティのスタイル設定
6. 曲率レイヤのスタイルを設定する
- 曲率レイヤのプロパティを開いて、「スタイル」を選択します。
- 「レンダータイプ」を「単バンド疑似カラー」にします。
- 「色」を「Blues」にします。自動的にリストに数値が分類されます。
- 今回は、マイナス側を青にしたいので、「反転」にチェックを付けます。
- 「カラーレンダリング」の「混合モード」を「乗算」にします。
- 「OK」ボタンをクリックするとスタイルの設定ができます。
図:曲率レイヤのプロパティのスタイル設定
7. 必要であれば、地理院地図などを背景に追加する
長野県林業総合センターの資料では、標高DEMも重ねていますが、標高DEMは重ねなくても立体的でわかりやすいと思います。
図:地理院地図を重ねた立体図
CS立体図は、赤色立体地図よりも地すべりなどの地形が見やすいように感じます。
長野県では、1mメッシュDEMを利用していますので、かなりの微地形を確認することができるようですが、基盤地図情報の10mメッシュDEMでも十分地形判読を行うことができます。
地質図や地すべり位置図などを重ねることで、更に地形判読を行いやすくなると思います。
~2016年11月24日追記~
長野県林業総合センターのCS立体図の中の人から、ご連絡をいただきました。
CS立体図の作成方法は、オープンなので自由に紹介して使ってほしいとのことです。CS立体図の普及によって、林業がもっと発展すれば嬉しいとのことでした。大変素晴らしい考え方です。
また、長野県では全国の10mメッシュDEMを使って、CS立体図を作成済みとのことです。そのうち、自由にダウンロードできるようになると思いますので、非常に楽しみです。
ダウンロードできるようになれば、また紹介したいと思います。
知床半島の立体図(CS立体図)を作成してみた
注意!この記事はかなり古い情報です。現在のQGISとは操作方法が違いますので注意してください
2016年11月19日放送の「ブラタモリ」で、知床の地形について説明していたので、知床の立体図を作成してみた。
図 知床の羅臼岳周辺の立体図
また、2016年8月24日に大雨の影響で、羅臼において土砂崩れが発生しています。
この箇所の地形を立体図でアップにしてみました。10mメッシュですので少し荒いですが、地形がよくわかります。
土砂崩れした箇所は、マウスカーソルの十字がある場所です。
QGISのプロセッシングツール「SAGA」→「Slope aspect corvature」コマンドで作成できる様々な地図を傾斜図に重ねてみました。
図 傾斜図(Slope)のみ
図 傾斜図(Slope)+Profile Curvature
図 傾斜図(Slope)+Longitudinal Curvature
図 傾斜図(Slope)+Maximal Curvature
図 傾斜図(Slope)+Cross-Sectional Curvature
図 傾斜図(Slope)+General Curvature
どうでしょうか?
様々な立体図で見ると、土砂崩れした斜面の上流部には、沢地形があり、崖の手前で大きく南に曲がっています。かなり水の集まりやすい地形ですね。
このような地形は、大規模な土砂崩れが発生する可能性が高いので気をつけなければいけません。特に北海道の海岸沿いで、隆起した地形はこのような地形が多いかもしれませんね。
立体図で見ると、このような地形がよく分かるのでいいですね。
「Cross-Sectional Curvature」や「General Curvature」で見ると、隠れた水道(みずみち)も地図で見ることができるようですね。
このような立体図は、10~30分程度で簡単に作成することができます。
災害後の復旧計画にも、立体図を参考にすることができそうです。基盤地図情報の10mメッシュでも十分使えそうですね。
自治体のホームページで安心して使える地図の作り方
注意!この記事はかなり古い情報です。現在のQGISとは操作方法が違いますので注意してください
この記事は、FOSS4G Advent Calendar 2016へ参加した記事です!
2016年11月に香川県のホームページで地図の利用規約違反があったことを受けて、他の自治体でもホームページの地図の利用について確認や注意喚起が行われていることと思います。
ホームページで安易に紙地図をスキャンしたものや、GoogleMapのスクリーンショットなどを使うと、利用規約違反になります。
また、香川県での事例でも多かったのが「出典を明示していない」「承認番号を明示していない」という利用規約違反でした。出典さえ明示していれば自由に使える「地理院地図」や「OpenStreetMap」も、利用規約違反となってしまいました。(地理院地図の場合はサイズや枚数に制限があります)
そこで、今後自治体のホームページで地図を掲載する場合、どのように地図をつくれば良いのか、紹介したいと思います。(自治体だけでなく、一般の会社などでも利用できます)
ここで紹介する方法は、ホームページにラスタ地図を画像として貼り付けたり、地図のPDFファイルをホームページにアップするときの方法になります。
はじめに結論を言っちゃいます |
ある程度の見やすさと使いやすさのある地図の中で、申請をしなくてもホームページで使える地図は「OpenStreetMap」一択です。
画像サイズによっては、「地理院地図」も使えますが、300x400を超える場合にはWebページ全体での枚数(5枚)に制限があるので、ほぼ使えません。
(地理院地図のWebページ全体(会社や組織全体)で5枚という制限は、非常に残念。組織が大きくなるほど使いづらい!)
申請事務を行っても良いのであれば、やはり「地理院地図」がいいとおもいます。
それでは、もう少し細かい内容を説明していきましょう。
ホームページで使ってはいけない地図 |
まずは、ホームページで基本的に使ってはいけない地図を確認しておきましょう。
GoogleMapやYahoo地図などのWeb地図のスクリーンショット
(埋め込み地図で動くようになっていればOK)ゼンリン地図、昭文社のMAPPLE、地理院の地形図など、紙地図をスキャンしたもの
出典の明示が条件の地図に出典を明示しないで使う
国土地理院に測量法第29条の複製申請して作成した地図だけど、Webで使う申請はしていない地図(詳しくはこちらを参考にしてください。)
(測量法第30条の使用申請を行って作成した地図は、作成者の許可があれば新たな申請なしに利用することができます)その他、二次利用が許可されていない地図
イラスト的な地図は使ってもOK |
地図がイラスト的な場合は、自分で作ったものや所属する会社や組織が所有するものであれば、ホームページに利用することができます。写真やイラストと同じ扱いですので、他人のものを盗用しない限りOKです。
例えば、都道府県の区画のみをデフォルメしたものや、県内の市町村の白地図をデフォルメしたものなどは、精度がありませんので、イラストとして扱われます。
フリー素材でもダウンロードすることができます。有名な「いらすとや」さんでも各都道府県のイラストなどがあります。
いらすとやの都道府県地図
申請をしなくてもホームページで利用できる地図 |
申請をしなくてもホームページで利用できる地図は、次の地図になります。
自分で作った地図(GoogleMapなどをトレースしてはいけません!)
1枚のラスタ画像のサイズが300x400ピクセル以下の地理院地図
300x400ピクセルを越える地理院地図の場合、Webページ全体(会社や組織のページ)で5枚まで
PDFなどの報告書の一部に引用された地理院地図(全体ページのうちの割合に制限があり)
作成者から使用許可を受けた地図
自分で地図を作るのも大変だし、地理院地図の場合、サイズと枚数に制限があり、これを越えると複製申請が必要です。→参考:承認申請Q&A
そのため、自由に利用できて、簡単に地図を作成できる「OpenStreetMap」が一番ホームページに使う地図としては利用しやすいでしょう。
OpenStreetMapを使う場合の注意事項 |
OpenStreetMapをホームページに使う際には、次のことに注意が必要です。
<出典の明示>
OpenStreetMapは自由に使えますが、出典の明示が必要です。
出典の明示は、利用した地図の一部又は同じページに「OpenStreetMap and contributors CC-BY-SA」または、「背景地図にOpenStreetMapを利用しています。CC-BY-SA」などと記入します。
「CC-BY-SA」とは、「クリエイティブコモンズのCC-BYライセンスを継承しなさい」という意味です。
<地図の正確性>
OpenStreetMapは、地図のWikipediaといわれるように、誰でも自由に編集を行えます。地図を作成するソースも空中写真であったり、自分で記録したGPSデータなどです。
そのため、地図には正確でない情報や古い情報も含まれます。
ただし、正確でない情報は自分が編集者となって編集を行うことができます。そこもOpenStreetMapのいいところだと思います。(編集にはアカウント登録が必要です。また、編集した内容が直ちに反映されるわけではありません)
<地図のデザイン>
OpenStreetMapは、地図タイルで配信されています。地図タイルのデザインは様々なものがありますが、地図のデザイン自体を変更することはできません。
自分なりに見づらいデザインでも、そこは我慢する必要があります。
地図を切り替えて、デザインを選ぶことはできます。
<領土問題>
OpenStreetMapは、世界中の方が編集に参加しています。そのため、日本の領土問題に関する部分(北方領土、竹島、尖閣諸島、日本海など)には、国の方針と違う地名や地物の編集が行われている可能性があります。また、OpenStreetMapとしては、個別の領土問題には関知しないという方針のため、日本独自の名称などを登録することも現状はできません。(日本名に修正しても、速攻で元に戻されるかもしれません)
デリケートな問題のため、その部分の地図をOpenStreetMapで利用するときには注意が必要です。
OpenStreetMapで位置図を作ろう |
OpenStreetMapを利用して位置図を作ってみましょう。
Webで簡単に作成する場合 |
Web地図を利用した位置図の作成には、地理院地図のUIにOpenStreetMapを表示できるようにした次のページを利用します。
「地理院地図でOpenStreetMap(https://koukita.github.io/gsimaps)」
地理院地図のUIは非常に使いやすく、簡単に地物を追加できたり、GeojsonやKMLなどのデータを表示することもできます。
ただし、この方法では、細かい縮尺を指定することはできません。規定のズームレベルの縮尺のみ指定できます。
●目的の位置にマーカーを追加する
アイコンをクリックすると、アイコンを変更できます。名称、属性(項目名、値)が必要であれば入力します。
「確定」ボタンでマーカーを登録できます。他に追加するマーカーがあれば、同じ手順で追加します。
追加するマーカーがなければ、「終了」ボタンで終了します。
●ポリゴンやライン、テキストなどを追加する
「作図・ファイル」ではポリゴンやライン、テキストを追加することもできます。
●追加した作図を保存する
作図した図形をファイルに保存しておくことができます。保存するファイルは、「KML」と「Geojson」で保存できます。「KML」はGoogleEarthでも利用できます。
作図はファイルに保存しないとWebページを閉じると削除されます。
●地図を切り替える
登録された地図から、ベースマップを選択することができます。
右上の「情報」ボタンをクリックします。
「+情報追加/ベースマップ切替」ボタンをクリックします。
「ベースマップ」をクリックして、表示したい地図を選択します。
2016年12月現在では4種類の地図を登録しています。今後増えていく可能性もあります。
●作成した地図を印刷する
「機能」→「ツール」→「印刷」で作成した地図を印刷するできます。プリンタにPDFプリンタを選択するとPDFファイルに保存することもできます。
印刷画面の地図も自由に拡大縮小、移動を行えます。ちょうどよい位置に調整してください。
「印刷」ボタンをクリックすると、ブラウザの印刷画面が表示されます。プリンタなどを指定して、印刷を行ってください。
印刷画面をそのままスクリンショットや画像として保存し、ホームページに利用することもできます。
ただし、OpenStreetMapを利用するには、出典の明示が必要です。印刷した地図やスクリーンショットを行った場合にも、右下の「OpenStreetMap contributors CC-BY-SA」は削除しないでください。利用したい範囲に右下の出典表示が入らない場合には、新たに出典表示を明記してください。
QGISで作成する場合 |
QGISにOpenStreetMapを表示するには、インターネットに接続されている必要があります。地図をインターネット経由でマップキャンバスに表示します。
従来であれば、「Openlayersプラグイン」などのプラグインを利用してOpenStreetMapをマップキャンバスに表示していましたが、今回は、WMTSレイヤを使って地図をレイヤに追加します。
Openlayersプラグインを利用すると、印刷時に地図が小さくなるとか、地図が表示されないなどの現象がありましたが、WTMSレイヤではそのような不具合は発生しません。
QGISで地図を作成すると、縮尺を細かく指定して地図を印刷することができます。
●WMTSレイヤにOpenStreetMapを追加する
「新規」ボタンをクリックして、「名称」に「OpenStreetMap」、「URL」に「http://koukita.github.io/experimental_wmts/osmtiles_wmts.xml」と入力します。
設定したら「OK」ボタンをクリックします。- 「接続」ボタンをクリックすると、レイヤに追加できる地図のリストが表示されるので、追加したい地図を選択して「追加」ボタンをクリックします。
●出典の明示を地図に追加する
出典の明示を地図に追加します。
印刷時のコンポーザには反映されないので別途ラベルを追加する必要があります。
「著作権ラベルを有効にする」にチェックを付けて、著作権ラベルに「OpenStreetMap and contributors CC-BY-SA」と入力します。
文字の色と表示位置は自由に設定してください。
地理院地図をWebページで表示する |
地理院地図のラスタの1枚画像を、申請無しでホームページに利用するのには、サイズや枚数に制限がありますが、地理院タイルをWebで動かせる状態であれば、ホームページに利用できます。
地理院地図(http://maps.gsi.go.jp/)にアクセスして、前述のOpenStreetMapに作図した方法と同じ方法で、必要な図形などを地図に追加します。
その後、「機能」→「ツール」→「共有」で地図を共有できます。
●リンクを取得
リンクを取得して、メールなどで送信することで同じ地図の位置を送信者に送ることができます。リンクからは作図した図形は表示されないので、図形は「KML」か「Geojson」で保存して別に送信します。
●サイトに埋め込み
下の地図のようにWebサイトに地図を埋め込むことができます。表示されたHTMLをWebページのHTMLソースに直接貼り付けます。
こちらも作図した図形は表示されません。
Webページに埋め込んだ地理院地図
●名前をつけて一時保存
作図した図形を含めたHTMLを保存できます。ブラウザで表示すると作図した図形も再現できます。保存したHTMLをWebサイトのサーバーにアップしてリンクを作成するか、WebページのHTMLソースにHTML文をコピーして地図を表示します。
まとめ |
ホームページにラスタ画像やPDFファイルを公開する場合には、次の地図を使うといいでしょう。(著者の個人的見解です。全ての地図についてこれに従う必要は全くありません。)
申請を行わない場合=OpenStreetMap
申請を行っていい場合=地理院地図
自治体などのホームページで利用する地図は、特に著作権や利用規約に注意する必要があります。使いたい地図がどのような利用規約であるかよく確認しましょう。
できるなら申請事務の手間を減らして、簡単に安全な地図を使いたいと思います。そのような場合には、「OpenStreetMap」を利用しましょう。
ただし、OpenStreetMapは、正確性や領土問題などに対応していない場合もあります。自分で編集することもできますので、ぜひ地図の編集に参加してみてください。
複製申請をおこなっても良いのであれば「地理院地図」が地図の表現や更新頻度、最新の道路などが反映されているなど使い勝手が良いでしょう。
地理院地図や基盤地図情報の複製、使用申請は、書面での申請もできますが、Webサイトの「測量成果ワンストップサービスサイト」からも申請できます。利用する地図の種類などわかっていれば比較的簡単に申請できます。
同じ使用目的であれば、1年間の申請を一括で行うこともできるようなので、国土地理院に問い合わせてみるのもいいと思います。
申請して利用する地理院地図には、承認番号などを記載します。
以上、著作権に配慮して、ホームページに正しい地図の利用を行いましょう!
間違いや、こうしたら良いなど意見がありましたらコメントへお願いします。
また、このページで紹介している「地理院地図でOpenStreetMap」「OpenStreetMapのWMTS接続用のxml」などは予告なく変更される場合がありますのでご了承ください。
北海道のCS立体図を作成しました
注意!この記事はかなり古い情報です。
国土地理院の基盤地図情報数値標高モデル10mDEMを利用して、QGISで北海道のCS立体図を作成しました。
※2017年2月15日にアドレスが変更になりました。
この地図は、この地図の作成に当たっては、国土地理院長の承認を得て、同院発行の基盤地図情報を使用した。(承認番号 平28情使、第830号)
CS立体図は、長野県林業研究総合センターで開発された立体的に見える地図です。
QGISでCS立体図の作成方法は、こちらの記事に記載しています。
今回のCS立体図は、曲率図を「Profile Curvature」ではなく、「General Curvature」を使用して、色合いも茶色にしました。
「General Curvature」は、沢地形をより強調して表現でき、等高線だけでは見えない水道(みずみち)が表現できます。
最近、大雨や融雪時に土砂崩れが起きる場所は、みずみちの下流が閉塞されている、もしくはみずみちが極端に変形している箇所で起きているように感じます。
Web地図は、羊蹄山がセンターに表示されるように設定されていますが、市町村名などの住所で位置を検索することができます。
<QGISでの利用>
QGISのタイルレイヤプラグインで利用したい場合には、次のリンクからtsvファイルをダウンロードし、Windowsの場合、「C:\user\[ユーザー名]\.qgis2\python\plugins\TileLayerPlugin\layers」フォルダに保存してください。
その後、タイルレイヤプラグインで「北海道CS立体図」を選択します。
ある程度ズームイン(ズームレベル8以上)しなければ、地図は表示されません。
プロジェクトの座標系を「WGS 84 / Pseudo Mercator EPSG:3857」にして、オンザフライCRS変換を有効にすると、地図の表示が早くなります。
<地図の二次利用について>
この北海道のCS立体図を利用する(印刷して資料に使用したり、webに公開する)には、「北海道CS立体図(国土地理院承認番号 平28情使、第830号)」と記載してください。出所を明示してあれば、自由に利用できます。作成者や国土地理院の承認は必要ありません。
<地図についてのご意見等>
この地図についてのご意見等があれば、下のメールアドレスに内容を記載してメールしてください。
また、地図画像がうまくアップロードされないで、地図が表示されない部分があるかもしれません。その場合も、ズームレベルとタイル座標を確認して、下のメールアドレスにご連絡ください。
qgisshitumonアットgmail.com (アットは「@」に置き換えてください)
よろしくお願いします。