rohi-maya <- "「      」"

ユーザー視点でのGIS操作法のまとめ、地理、歴史に関係するような投稿をします。

QGIS上でWebブラウザの表示

GISを勉強しているとマニュアルをみながら、ソフトウェアを操作したいときがありまます。そんな時に、便利なプラグインとして、Qwebプラグインがあります。このプラグインは、プラグイン>プラグインの管理とインストール>Qwebと検索で入手できます。

Web>Qwebを実行すると、新規にインターネットブラウザ用のウィンドウが表示されます。

f:id:rohi-maya:20200309194211p:plain
1

※ 今のところ文字サイズの変更やデータのダウンロードには対応していません。今後対応すると良いですね。

QGISプラグインのインストールエラー?

ある日、QGISプラグインをインストールしようとしたら、下記のようなエラーがでました。

f:id:rohi-maya:20180903174335p:plain

SSL handshake hailedというエラーですが、通常の方法で、QGISからプラグインがインストールできるようになるまでに、2,3日かかりました。私と同じようにいきなり、「プラグインがインストールできない...」となる人もいるかもなので、その対処法?を載せておきます。

と、その前に、インターネットに接続しておかないと、プラグインは入手できません(念のため)。また、会社や学校によっては、プロキシの問題もあるようです(その場合、違うエラー名になると思います)。

解決方法

プラグインの管理とインストールからではなく、直接プラグインリポジトリから入手する。

手順

  1. プラグインの管理、提供ページであるqgis official plugin repositoryにいく
  2. 必要なプラグインを探し、ダウンロードする(.zip)。
  3. .qgis2というフォルダが自分のPC内にあるので、Macならのユーザーの直下?(Macでは、隠しファイルになっている可能性があります)、WINもユーザーの直下?を探す。解凍したプラグイン.qgis2/python/pluginsへ移動する。
  4. プラグイン>プラグインの管理とインストールで、ダウンロードしたプラグインを検索し、チェックをつける。

これで、OKです!

困った方は、ぜひ試してみてください。

QGISで緯線と経線を表示する

QGISで緯度経度のデータを使うときの方法を紹介します。以下は、GIS実習オープン教材 よくある質問とエラー (c)GIS-OER WG CC-BY SAを参考に作成しました。データはSRTMを使用。

まずは、通常ビューの場合です。ビュー>地図装飾>グリッドを選択

f:id:rohi-maya:20180718231813p:plain

f:id:rohi-maya:20180718232751p:plain

次に、プリントコンポーザーの時です。

f:id:rohi-maya:20180718232804p:plain

どちらの方法も簡単に設定できました。緯度経度を示すラベルの設定をもう少しコンパクトに(度分ではなく、度だけとか)設定できると良いなと思いました。

QGISで複数のフィールドを属性検索する

今回はQGISでの属性検索についてのお話です。

属性検索で、市町村のような属性を検索するときは、'属性テーブルを開き>式を使った地物選択' で以下のような書き方をします。

フィールド名='検索したい市町村名'

ここまでは多くのサイトで紹介されています。では、検索したい市町村が複数あったときはどうしましょう。これはあまり紹介されていません。

わからなかったのであれこれ試してみましたところ、以下のようにすると検索できました。

フィールド名='検索したい市町村名A OR フィールド名='検索したい市町村名B'

ORでつなげるだけという簡単なやり方でした(簡単だからあまり紹介されていないのでは。。。)。

※操作画面の解説はまたあとで載せようと思います。

gvSIGの学習サイト

今回は、FOSS4GのひとつであるgvSIGの学習サイトについて紹介します。gvSIGは、空間検索、ジオプロセシング、ネットワーク分析などが可能なGISソフトウェアです。ちゃんと使ったことがないのでわかりませんが、ベクトルデータを使った人文地理的な解析に強いという印象があります。日本語による解説サイトはあまりないので、あまり使う機会がない人が多いかもしれません(今回紹介するサイトも英語です)。

gvSIGについては、https://live.osgeo.org/ja/overview/gvsig_overview.html が詳しいです。

ちなみに、ソフトウェアのダウンロードは、http://www.gvsig.com/en から行うことができます。 Windows, Mac, Linuxに対応とのことです。

gvSIG blogで学ぼう!

gvSIGに関する様々な情報が掲載されているgvSIG blogには、入門ユーザー向けにgvSIGの使い方を英語で紹介している Free course about crime mapping. GIS for criminology というページがあります。

blog.gvsig.org

教材は、ミゲル・エルナンデス・デ・エルチェ大学(スペイン)の方による数分のレクチャー動画でまとめられ、すべてyoutubeから閲覧できます。 現在16の動画教材があり、gvSIGで可能な解析などを用途別に学ぶことができます。

16の内容は以下のようになっていて(誤訳があったらすみません...)、上記のページから閲覧できます。

  1. gvSIGの概要(インターフェースや機能の紹介)
  2. データの表示と操作
  3. ナビゲーションと選択ツール
  4. レイヤの作成
  5. データのビジュアライズとプロセッシング
  6. シンボルライブラリの作成
  7. 人口の計算
  8. ロスモ アルゴリズム(犯罪情報系の分析?)
  9. ジオプロセッシング(点パターン分析、平均再近隣距離分析?)
  10. コドラート法による犯罪発生地点の分析
  11. ブロックによる犯罪発生地点の分析
  12. カーネル密度推計
  13. 時系列データの分析
  14. gvSIGでストリートビューを使う
  15. データ分析のための新規スクリプトツール
  16. gvSIGでRを使った犯罪情報の可視化

とても有用な学習サイトですね。私自身もしっかりgvSIGを使ったことがないので、これを機に勉強してみようかなと思っています。その際は、このブログでも紹介しようかなと思ったり....。

ラスターデータのクリップ〜欠損値の作成(ドーナツラスタ?)〜

今回は、ラスターデータのクリップについてQGISで処理する方法を紹介します。といっても、下図の左のような通常のクリップではなく、右のようなクリップです。この手法はラスタデータから池や特定の植生群を切り取りたいときに有効です(少し力技感が否めませんが...。)。

f:id:rohi-maya:20180502001937p:plain

環境

方法

まずざっくりやり方を以下にまとめます。

  1. 切り抜きたいラスタデータと同じ領域のポリゴンを作成する
  2. 作成したポリゴンに取り除きたい池等のシェープファイルを重ねて、ドーナツポリゴンを作成する
  3. 作成したドーナツポリゴンでクリップする

では、やっていきましょう。

1. 切り抜きたいラスタデータと同じ領域のポリゴンを作成する

プラグイン>Pythonコンソールを開く

以下を実行

# 座標値を取得
layer = iface.activeLayer()
extent = layer.extent()
xmin = extent.xMinimum()
xmax = extent.xMaximum()
ymin = extent.yMinimum()
ymax = extent.yMaximum()
print(xmin,ymin,xmax,ymax)

# ポリゴンを作成する
layer =  QgsVectorLayer('Polygon', 'poly' , "memory")
pr = layer.dataProvider() 
poly = QgsFeature()
points = [QgsPoint(xmin,ymin),QgsPoint(xmin,ymax),QgsPoint(xmax,ymax),QgsPoint(xmax,ymin)] 
poly.setGeometry(QgsGeometry.fromPolygon([points]))
pr.addFeatures([poly])
layer.updateExtents()
QgsMapLayerRegistry.instance().addMapLayers([layer])
cLayer = qgis.utils.iface.mapCanvas().currentLayer()
provider = cLayer.dataProvider()

1のコードは以下を参考にしました。

https://gis.stackexchange.com/questions/86812/how-to-draw-polygons-from-the-python-console/86901

https://gis.stackexchange.com/questions/30261/how-to-create-a-new-empty-vector-layer-programmaticallyhttps://gis.stackexchange.com/questions/168333/how-to-extract-coordinates-from-a-raster-in-qgis

f:id:rohi-maya:20180502004402p:plain

作成したポリゴンをレイヤウィンドウで右クリックして、名前をつけて保存から新規レイヤとして保存しておいてください。

上記で上手く行かない場合は、設定>オプション>CRS>オンザフライ再投影を有効にしないにチェックをいれて(QGISを再起動)再度試してみてください。

Macの環境だと座標系のエラーが出るようなので、その場合は以下も試してください。
ベクタ>データマネージメントツール>現在の投影法を定義するから、出力したpolygonを選択し投影法を指定する。

f:id:rohi-maya:20180502010056p:plain

2 作成したポリゴンに取り除きたい池等のシェープファイルを重ねて、ドーナツポリゴンを作成する

あらかじめ用意した取り除きたい池等のシェープファイルを読み込み、ベクタ>空間演算ツール>差分を選択する。 f:id:rohi-maya:20180502010117p:plain

1と同じく、Macの環境だと座標系のエラーが出るようなので、その場合は以下も試してください。
ベクタ>データマネージメントツール>現在の投影法を定義するから、出力したpolygonを選択し投影法を指定する。

3. 作成したドーナツポリゴンでクリップする

ラスタ>抽出>クリッパーから、ドーナツポリゴンを使って以下のような設定でクリップする。 f:id:rohi-maya:20180502010453p:plain

うまくいけばこれで完成します。1、2,3と長々と説明しましたが、もう少し良い方法があるかもです。

ラスタデータのリサンプリング

今回は、QGISのプロセッシング(SAGA GIS)機能を使ってラスタデータのリサンプリングをする方法について紹介します。

環境

  • QGIS2.14

方法

ラスタデータ(投影変換した方がよさそう?)をQGISで読み込んでから、プロセッシング>ツールボックスをクリックします。次に、検索ウィンドウでリサンプリングと入力し、リサンプリングをクリックする。あとは、リサンプリングメソッドやセルサイズを用途に応じて指定して、処理を実行すればOKです。

f:id:rohi-maya:20180425001621p:plain

プロセッシング機能では、リサンプリング以外にSAGAのいろいろな機能が使えます(SAGAだけじゃないけど)。うーん便利だ。 時間があればSAGA GISについてもまとめてみようかな(日本語レビューも少ないし)....。