goo blog サービス終了のお知らせ 

雑記

QGIS関連はサイト(https://sites.google.com/site/qgisnoiriguchi/)で

使ってみたらとっても便利

2016-02-10 22:14:43 | QGIS_使い方
新しい機能が付いたとか知ってても基本的に進んで使う方ではないんだけども
QGIS2.12には、自力でデータを整備する類の人間にはとっても便利な機能がついていた。

属性テーブルの条件付書式
 (感動のあまりフォント拡大)
Excelとかの条件付き書式みたいなことができます。いや、便利ですわ。

e-Statの国勢調査を使ってやってみます。


属性テーブルの右上にあるアイコン ↓ をクリックすると


こんなの ↓ が出てきます。


「フィールド」で書式を変えたいカラムを選択するか、1データまるごと書式変更するなら「行全体」を選択して「新ルール」をクリック。


こんな画面 ↓ になるので、条件と書式を指定。ここでは該当するカラムの内容が2000より大きいものを色付け。


ちなみに「条件」の右側のE(「3」の逆向きみたいなの)を押すと、フィールド計算機なんかでおなじみの画面が出てきます。

これで細かく条件を指定することもできます。

下の方にある「終了」を押すと確定します。
最初に押したアイコンをもう一度押すと書式の編集画面が閉じます。

残念なのは、データを選択すると条件付き書式が見えなくなることですな。



でもデータ整備にはものすごく便利。
そんな数字になるはずない、というところを色付けして確認するのに使ったんだけど、サクサクできました。
別のカラムや周辺のデータも見つつ修正作業をしたかったんだけど、
属性テーブルのフィルタを使うと該当するものしかヒットしないし
描画範囲の地物を表示にするとどのデータ見てたのか一瞬分からなくなるし、という状態で
結局一つのレイヤで属性テーブルを2つ開いて、フィルタかけた方で該当するものを選択して、拡大表示して
それを描画範囲のデータを表示した方で周辺の確認して、とかやってたんだけど
これがあればばっちりだ!

実際2日くらいかかるかと見ていた作業が半日で終わった。
2月だってのに早く帰ってきちゃったよ。

Illustratorねぇ…

2012-09-22 12:13:40 | QGIS_使い方
なんかサイトの方に、検索で「Illustrator QGIS」とかで検索をかけてきてる人が結構いるんですが。

イラレからQGISにデータを持っていくのは、画像に書き出してGeoreferenceを使って位置を合わせるか、
そうじゃなければ「PlugX-Shape」とかを使うかくらいしか思いつかない。
範囲が広くないとか、そんなに精度が高くなくてもいいとかであれば、

イラレで、ベース図とshapeにしたいものの色を変えて画像に書き出す。
ある程度高解像度にして、ベース図はRGBのどれか一色にしておく。
      ↓
georeferenceで位置を合わせてGeoTiffにする
      ↓
出来上がったラスタデータを、ラスタ計算機を使って、shapeにしたい地物だけにする
      ↓
QGISの「GDAL Tools Plugin」を使ってベクタデータに変換
      ↓
「ジオメトリを簡素化」を使う

とかでも。
なぜ「ジオメトリの簡素化」を使うかというと、画像のピクセルのカドをいちいち拾うのでデータサイズが大きくなりすぎるからです。
自動的にポリゴンになるので、ジオメトリ変換でラインにして余計なところを消したり
ポリゴンの重心をとってポイントデータにしたりできます。
ま、力技ですね。


あと、「PlugX-Shape」は色々と便利だし、商用GISソフトよりは安いので、
そういう作業を頻繁にやる人は、Illustratorを持っているなら買ってもいいかもしれません。
でも座標参照系の変換はあまり精度が高くない気がするので、変換をQGISとか商用GISソフトとかでやってからの方がいいです。



QGISで作ったデータをイラレに読み込みたい場合は

1.色とかを気にしないで、QGISで作った地物だけ書き出していじりたいなら、そのレイヤをDXFに書き出してイラレで開く
2.見た目を気にするなら、コンポーザマネージャを使って表示させてPDFに書き出して、イラレに読み込んで加工

とかになるかと。
Illustrator CS以降で扱えるSVGに書き出しというのもコンポーザマネージャから選択できますけど、
地物を個別に書き出してくれるわけではないようだし、エラーも多い(ベース図飛んだり)のでお勧めしません。
私は2.を使うことが多いですね。文字は全部アウトライン化されますが、オブジェクトには分かれてくれるので。



と、こんな小ネタ。

測地系とか座標系とか(7-2)~変換2~

2012-06-21 21:04:00 | QGIS_使い方
さて、実際にQGISを使ってのCRS変換の作業に入りましょう。

1.【重要!】QGISのマッププロジェクトのCRS設定

まず最初にマッププロジェクトのCRSを、変換したいshapeファイルのもともとのCRSに合わせる必要があります。
これができていないと出来上がったファイルが他とうまく合いませんから注意してください。
国土数値情報のデータはすべて「JGD2000」で作成されていますから、マップのCRSを「JGD2000」にします。

QGISを立ち上げ、「設定」→「プロジェクトのプロパティ」を選択します。


こういう画面↓になります。「最近利用した座標参照系」は、表示されている内容がそれぞれ違うはずです。


真ん中あたりの「Search」のところで、権限を「全ての」、検索を「名称」にして、その下の四角に「JGD2000」と入力します。その後、「Find」を押します。


そうすると、JGD2000を含む座標参照系が順番に表示されていきます。
「Find」を押していくとどんどん次を検索します。
最後には先頭に戻りますが、勢い余って目当てのものを通り過ぎないように注意してください。

JGD2000とだけ書いてある座標参照系を選択し「OK」を押します。


これでマッププロジェクトのCRSが設定できました。


2. shapeファイル読み込み

マップのCRSが設定できたらshapeファイルを読み込みます。
メニューの「レイヤ」→「ベクタレイヤの追加」を選択するか、
アイコンから「ベクタレイヤの追加」をクリックしてください。

または


ソースタイプは「ファイル」、エンコーディングは「SHIFT-JIS」を選択してください。
エンコーディングを選択し損ねると文字化けします。
後でもなおせますが、いきなり文字化けして表示されると心臓に悪いのでここで選択しておきます。

「変換元データ」の「ブラウズ」をクリックします。


そうするとこんな↓画面になります。


表示させるshapeファイルを選択し、「開く」を押すと前の画面に戻るので、「Open」を押します。
設定にもよりますが、その時こんな↓ウィンドウが出る時があります。


prjファイルがついていないshapeファイルだから(この辺の話は「大雑把な話」で出てきました)
CRSを指定しろと言ってきています。
ここでは国土数値情報の四国のデータを使いましたが、
国土数値情報のCRSはJGD2000なので、「JGD2000」を選択し、「OK」を出すと、こうなります。


四国ですね。当たり前ですが。
スケールバーが0.4度になっているのが分かるでしょうか。

3.変換

準備ができたので変換をかけます。
今回は平面直角座標系にします。四国地方はIV系です。
「レイヤ」パネルのshapeファイル名を選択し、右クリックして「名前を付けて保存」を選択します。


そうすると、こんなの↓が出ます。


「形式」は「ESRI Shapefile」を選択してください。
「名前を付けて保存」の右側の「ブラウズ」を押して、変換後のファイルの保存場所とファイル名を指定してください。
※変換前のファイルと同じ名前は付けられません。
エンコーディングは元のファイルに合わせてください。ここでは「SHIFT-JIS」を選択します。

そして!
「CRS」の右側の「ブラウズ」を押すとこんなのが出てきます。


先ほども書きましたが四国は平面直角座標IV系になりますので、「JGD2000 / Japan Plane Rectangular CS IV」を選択し、OKを出します。

元の画面に戻りますので、OKを。

これで変換が出来ました。


変換したファイルをQGISに読み込みます。
CRSが変わりましたので、マッププロジェクトのCRSを新しくします。
CRSの違うファイルを、表示だけは矛盾なく混在させることもできるのですが、今はそれをやっても意味がないので、
新規にマッププロジェクトを作り、CRSを平面直角座標IV系にしておきます。

そこに変換したshapeファイルを読み込むと、こう↓なります。


なんとなく見た目が縦に伸びて、スケールバーが70kmになっているのが分かると思います。

これが70000度とか0.4mとかになっていたらどこかの段階でCRSの設定が間違っています。
70000度になっていたら、おそらく読み込むときのマッププロジェクトの設定の間違いですし
0.4mになっていたら変換自体に失敗しています。
確認してみましょう。


測地系とか座標系とか(7-1)~変換~

2012-06-21 20:41:22 | QGIS_使い方
ざっくりとはいえ理論的な話が続いて脳みそが腐りそうになった人もいるでしょうし、
理論はすっ飛ばしてここに来た人もいるかもしれませんが、
とりあえず理論の話は把握したものという前提で、
実際にQGISを使う上でのCRSの扱いについて説明していきます。

国交省や国土地理院がオンラインで提供しているGISデータはJGD2000で作成されており、指定がなければ十進緯度経度です。
国勢調査のデータは平面直角座標もあわせて提供しています。(Tokyo Detamのデータも提供しています)
表示するだけなら十進緯度経度でもかまわないのですが、
距離を計測する、バッファを作る、データを面積按分するなどの演算処理をする場合は、
十進緯度経度ではいろいろと不都合があります。

たとえば半径500mのバッファを描きたいときに、半径を「500」とすると、JGD2000の地図単位は「度」ですから、
地球を周回してしまうような大きさのバッファが出来上がるか、あるいはエラーが起こります。
では500mを「度」で換算すれば、と思うかもしれませんが、北海道と沖縄では500mに相当する「度」が違いますし、
そもそも緯度と経度で別々にパラメータを設定しなければなりません。これは非常に面倒です。

ということで、特定の場所から500mを設定するパラメータを毎回作るよりは、
すでにGISで設定してあるパラメータを使い、JGD2000の地図の方を単位がメートルである平面直角座標等に変換するほうが簡単です。

さて、座標系の変換をQGISで行うときの手順を説明していきます。
データをダウンロードしてshapeファイルに変換するところまでは
それぞれのデータのダウンロードサイトに説明がありますので今回は割愛します。
この辺のこともいずれもう少し詳しく書きますが、今回は測地系・座標系の変換のみで。