【QGIS】選択地物の属性を一括編集

取り急ぎメモです。

例えば、あるエリアの建物やポイントを選択して、選択された地物の属性だけ変更したいときの手順です。
※画像とか詳しい内容は後ほど。

  1. 変更対象の地物を選択
  2. 属性テーブル→フィールド演算
  3. 既存カラムを更新を選択
  4. 変更したいカラムを選択
  5. 演算スペースに一括入力したい文字や数値を入力。※文字の場合、ダブルコーテーション(" ")ではなく。シングルコーテーション(' ')で囲むこと!
  6. 選択フィーチャーだけに適用のチェックボックスにチェックを忘れずに!
  7. OKを押したら念願の一括更新!


初歩的でシンプルな作業ですが、ちゃんと手順を踏まないと全然できません。(私はひたすらダブルコーテーションで文字を囲っていたのでできませんでした。イライラ)

これで地物の編集もグッと楽になりますね!

【QGIS】ポイントデータに座標(x, y)を追加する

よくやる作業なのですが一向に体に染み込みませんのでやり方を記録します。
実は以前の記事で似たようなことしてます。
demacassette2.hateblo.jp

この時も今起きている問題と同じことが起きていました。

ポイントデータの座標列を追加する機能は、
ベクタ→ジオメトリーツール→ジオメトリカラムの出力/追加
で問題ないのですが、出力の際に注意点がありました。

この画面の時です!

f:id:demacassette:20150313031350p:plain

欲しい座標を出力するための注意点

あらかじめ出力したい座標系のCRSに設定しておく!

プロジェクト プロパティ → CRS
→ 出したい座標系のCRSに設定(例えば日本測地系”Tokyo”,世界測地系”WGS 84”)

そして

これで解決です。この注意点を怠ると、いつまで経っても自分が欲する座標が出てきません。
(例えばXCORDが6000、YCORDが-13460とか。これは、プロジェクト座標が本来出したい座標系と違ったことが原因)
これはおそらく相当初歩的な設定だと思いますが、意外と忘れがちかもしれません。


とりあえず備忘録までに。修正あればあとからします。

【QGIS】複数のシェープファイルを一つにまとめる

政府統計の総合窓口 なんかのデータを使って地理情報的に分析する場合、政府系のデータは各市区町村別でファイルが区分けされているので、かなり煩わしいですよね。

政府系データに限らず、エリア別でシェープファイルを作っていた場合、「これまとめた方がハンドリングいいよね?」ってなことになります。

そんなときは、シェープファイル1, シェープファイル2, シェープファイル3,.....を一つのシェープファイルとして結合してしまいましょ!

 

(参考) 08.いくつかのshapeファイルを一つにまとめる - QGIS入門

   ありがたや。。。

 

この際に注意しないといけないのは、結合するシェープファイルに格納されている情報がすべて揃っていることです。これは感覚的に当たり前なのですが、この機能は「情報が同じでエリアのみ違うというシェープファイル」が対象なのです。

 

◼︎データマネジメントツール複数シェープファイルを1つに結合する

f:id:demacassette:20151119014443p:plain

QGISで使う機能は、これです。

が、この機能を実行する前に、

  1. 結合したいシェープファイルをまとめるためのフォルダを作成
  2. 結合したいシェープファイル(.shp, .dbf, .shx, .phjなどのセット)を同じフォルダに移動する

準備ができたら、「複数シェープファイルを1つに結合する」を実行

すると、こんな画面が出ます。

f:id:demacassette:20151119014935p:plain

ここで、シェープファイルのタイプを選びます。

 入力ディレクトリ→準備1のフォルダを指定

 出力ディレクトリ→任意のフォルダを指定

これでOKを押して実行します。

 

すると、ばらばらだったシェープファイルが1つに結合されます。

 

最近の政府の統計窓口では、GIS的使い方ができるよう行政境界データも提供されています。

地図で見る統計(統計GIS)

 

この辺の扱い方は、別途記録することとします。

 

 

【QGIS】ラベルの編集 〜大阪都構想住民投票を題材に〜

いつも忘れがちなラベルの編集について記録します。

題材は前回同様、超今更感がありますが「大阪都構想に関する住民投票結果」です。

目指すグラフィックは以下の通り。

f:id:demacassette:20150710235030p:plain

図中のa,b,c,dは以下の表のように分類した結果です。

f:id:demacassette:20150710235746p:plain

さて、この分類方法は本論ではありませんが、個人的に知りたかったことをやってみたまでです。世間では、『高齢者が多いほど反対に流れた』みたいな論調がありましたので、それを数値的に確認してみたかったのです。この図表から考えるに、確かに高齢者が多いほど、反対票が投じられたように見えます。しかしながら、天王寺区や旭区のように例外も存在しました。一部のネット論調によれば、大阪市は南部より北部の方が裕福な人が多いということも影響したのではないか?とも言われています。確かに、反対票を投じるということは、現状から悪くなることを恐れるという意識(現状維持バイアス?)が働いた結果とも考えられますので、地区ごとの経済力の差も影響したと思われます。また、高齢者が多いほど投票率も上がる傾向にありますので、『高齢者=反対票』という傾向があるのなら、高齢者が多い地区が反対多数になったというのもうなずけますね。

以上、個人的見解でした。

 

ここから、QGISでのデータ処理方法の記録です。

  1. ベクタレイヤにデータレイヤを結合する。
    大阪市ポリゴンにエクセルデータを結合)
  2. 分類に基づきスタイルを調整(分類a~dに配色)
  3. 表示させるラベルを設定 ←今回はここ!

ラベルの設定は、レイヤのプロパティ→ラベルです。

f:id:demacassette:20150711000637p:plain

このように、表示させたい列のタイトルを設定してあげます。素直に今回の分類でラベルを表示すると以下になります。

f:id:demacassette:20150711000806p:plain

・・・ちょっとこれでは味気ないですよね。確かに分類名はわかりますが、どうせなら区名と合わせて表示してみます。設定方法は先ほどのラベルの設定画面の演算ボタンを押します。

f:id:demacassette:20150711001423p:plain

すると、演算画面が出てきます。これはラベルに限らず、属性テーブルでも同じような処理ができます。

f:id:demacassette:20150711001522p:plain

ここでは上記のように、フィールドA, 記号, フィールドBを結合させて表示してみます。

このとき、

・フィールドにあたる部分はダブルコーテーション " "

・記号にあたる部分はシングルコーテーション ' '

で囲みます。

・結合する演算子は、「 || 」で、この演算子の前後は結合されて表示される

・改行コードは、「\n」 (バックスラッシュと"n")

です。改行コードは、プログラミングとかやってる人はよく出てくるコードですが、今更ながらMacキーボードでバックスラッシュを打つ方法がわからなかったので、焦りました。

(参考) Macにおけるバックスラッシュ(\)の入力方法 - Qiita

お、なるほど。option + ¥ で \ が打てます!

これで、再度表示した結果がこちらです。

f:id:demacassette:20150710235030p:plain

なんとなく、見やすくなったと思ってます。このようにして、目的に応じたラベルの設定はいくらでも可能です。

 

以上、参考までに。

 

 

QGIS記事一覧

【QGIS】ベクタレイヤにcsvデータを結合したいが文字列扱いになって困る

 以前、時代遅れながら大阪都構想についてGISで表示しました。

demacassette2.hateblo.jp

 その続編をかなり今更ながらやろうと思い、必要なデータを作ったものの、やはりcsvデータをすべて文字列で読み込むことが許せなくなってきました。いよいよ正攻法の解決法を探ってみたのですが、どうもうまく行きません。

 

正攻法の解決法は以下のようです。

  1. 結合したいデータテーブルをcsv形式で作成
  2. 結合データのデータ属性(整数、少数、文字列)を定義するcsvtファイルを作成
  3. 上記二つを同じフォルダ(ディレクトリ)に保存し、データテーブルをQGISにインポート

これだけのようです。ソースは以下の参考サイトから。

属性テーブルの検索と操作 — GeoPacific.org

属性データにCSVまたはDBFファイルを結合したい - QGIS逆引辞典Wiki

データの読み込みと表示、エクスポート — GeoPacific.org

 

これ、何回やってもうまくいきませんね。

f:id:demacassette:20150623235717p:plain

すべて文字列扱いで読み込んでいるので、左寄せになっている。数値で読み込んでいれば、右寄せになるはずなのである。

OSが悪いのかな?ちなみに、使用機器は以下

f:id:demacassette:20150623235817p:plain

あ、こんな情報出しても大丈夫なのかな?関係ないけど、新しいMacbookはかっこいいわぁー。Apple - MacBook

 

解決策が見つかったら、続編書きます。。。

こまったな。