QGISで植生図その1(基本データの作成まで)
※※ QGISのバージョン3に対応させました ※※ → こちら
その3(GPSとの連携)はこちら
(植生図の作成手順)
国土地理院の地図をベースに下図(ベース図面)を配置する。
現場の図面(手書きの植生図等)をその上に配置する。
境界線をひたすら引く。少しはみ出すように。
ラベル(凡例)をポイントデータで入力する。
境界線のデータ(ラインデータ)をポリゴン化する。線で囲われている部分が一気にポリゴンになる。
ポリゴンにラベル(凡例)のポイントデータを属性結合する。
これで大元のshapeファイルはほぼ完成。
引き出し線にも対応 → 詳しくはその2(整形など)を参照
QGISのバージョン
安定版のQGIS2.18を使用しています。
最新バージョンでも同様にできるようです(本人未確認)が、2.18でも何の不満もないので、そのまま使用しています。
参考文献
QGISのバージョン2.18に対応したマニュアル「業務で使う林業QGIS 徹底使いこなしガイド」を大いに参考にしています。これはなかなかいいです。お薦めします。
http://www.ringyou.or.jp/publish/detail_1409.html
http://www.ringyou.or.jp/publish/detail_1409.html
QGISの最新バージョン(Ver.3.6)に対応した「業務で使うQGIS Ver.3 完全使いこなしガイド」でも、いいかと思いますが、私は持っていません。
https://www.qgis.org/ja/site/forusers/download.html
32bit版なら64bitマシンでも使えるそうです。スタンドアロンタイプ。
「TileLayerPlugin」
「Spline」
「QuickMapServices」
「Join multiple lines」
国土地理院のファイルをダウンロード
林業QGISの78ページ参照
(表示)
「web」→「タイルレイヤプラグイン」→「タイルレイヤを追加する」→標準地図を選択して「追加」
QGIS2.18のインストール
(インストール元)https://www.qgis.org/ja/site/forusers/download.html
32bit版なら64bitマシンでも使えるそうです。スタンドアロンタイプ。
プラグインのインストール
「プラグイン」→以下の4つのプラグインをインストール「TileLayerPlugin」
「Spline」
「QuickMapServices」
「Join multiple lines」
豆知識
ファイル名はローマ字半角、短め、最初は数字じゃない方がいいらしい。→ファイル名も項目名も日本語で大丈夫そうです。国土地理院の地図を表示できるようにする
(準備と設定)国土地理院のファイルをダウンロード
林業QGISの78ページ参照
(表示)
「web」→「タイルレイヤプラグイン」→「タイルレイヤを追加する」→標準地図を選択して「追加」
「プロジェクトの設定」の設定でオンザフライをONにしてから地図を表示しようとすると、なぜかエラーが起こり、フリーズする、または、何も表示されないことがある。
オンザフライをONにしておけば、異なる空間参照システムでも、QGISがうまく重ねてくれる。
プロジェクトの空間参照システムを設定
GPSで使っているWGS84(EPSG4326)などの地理座標系では、上下がつぶれたように表示される。面積や距離も正確に測定できない。
投影座標系の平面直角JDG2000(日本は19に分けられている)がいい。
関東なら→9(EPSG2451)
どこを利用するかは国土地理院のWebサイトを参照。
http://www.gsi.go.jp/LAW/heimencho.html
「プロジェクト」→「画像として保存」
自動的に同じファイル名でワールドファイル(位置情報ファイル:jgw)も作成される。
プロジェクトの設定
プロジェクトのプロパティ→オンザフライ→ONオンザフライをONにしておけば、異なる空間参照システムでも、QGISがうまく重ねてくれる。
プロジェクトの空間参照システムを設定
GPSで使っているWGS84(EPSG4326)などの地理座標系では、上下がつぶれたように表示される。面積や距離も正確に測定できない。
投影座標系の平面直角JDG2000(日本は19に分けられている)がいい。
関東なら→9(EPSG2451)
どこを利用するかは国土地理院のWebサイトを参照。
http://www.gsi.go.jp/LAW/heimencho.html
作業用ベース図の書き出しと配置
ベース図は位置をずらすといちいちWEBに読みに行くので、必要なところだけ、作業用ベース図としてjpgで書き出して、ラスタレイヤとして表示させた方が時間の節約になる。プロジェクトの空間参照システムを設定してから書き出さないと、うまく表示できない。
位置情報付きのイメージファイルとして出力するためには「プロジェクト」→「画像として保存」
自動的に同じファイル名でワールドファイル(位置情報ファイル:jgw)も作成される。
「レイヤ」→「レイヤの追加」→「ラスタレイヤの追加」を選び、書き出したファイルを選択する。
「CRSが定義されていません」というメッセージが表示され、何も表示されない時は、そのレイヤで右クリックし、「プロパティ」→「一般情報」→「空間参照システム」をプロジェクトと同じ測地系に変更する。
現場図面の配置
林業QGISの401ページ参照(ラスタファイルの準備)
現場図面のラスタファイルが大きすぎるとジオリファレンサーでまともに表示されないみたい。
上を北にしておいた方がいい。
合わせる点をあらかじめ決めておいて、マークしておくといい。
(操作)
ラスタ→ジオリファレンサー→ジオリファレンサー
GDALジオリファレンサーというプラグインがインストールされていないとメニューに出てこない。
ジオリファレンサーが起動したら、「変換の設定」で変換タイプを設定。
・シンプレートスプライン:移動だけ。合わせる点は1点でいい。
・線形:移動と拡大縮小だけ。新しい画像ファイルは作らない。2点でいい。
・ヘルマート:移動と拡大縮小と回転。ゆがめない。2点でいい。
・多項式:さらに画像をゆがめる。3点以上。
変換タイプは普通ヘルマートでいいが、多項式1なら間違いないか。
「ラスタを開く」をクリック。
変換時の座標参照系はプロジェクトと同じでないとだめかも。
「ポイントの追加」で、元と先で合わせる点を設定。あらかじめ両方とも拡大しておくといい。
「変換の設定」で、出力ファイルのファイル名を設定し、完了時にQGISにロードするにチェック。
「ジオリファレンスの開始」をクリック。
表示されれば成功。
区分線の入力
(範囲線を作る)まずは範囲をポリゴンで作成して、ポリゴンをライン化するといい。
「プロセッシング」→「ツールボックス」→「QGISジオアルゴリズム」→「ベクタジオメトリツール」→「ポリゴンをラインへ」
(区分線を入力する)
「編集モード切替」をクリックして編集モードにする。
「地物の追加」をクリックする。
左クリックで点を書いていって、最後に右クリック。
1つ戻りたい時は「バックスペース」キーを押す。
書いている途中で画面をスクロールしたい時は「スペース」キーを押しながら、ドラッグする。
拡大縮小したい時はマウスのホイールを回す。
入力が終了したら「レイヤ編集内容の保存」をクリック。
「編集モード切替」をクリックして編集モードを終了する。
「ノードツール」をクリックすると、地物の屈曲点の移動ができるようになる。
「高度なデジタイジングツールバー」を表示させると、地物の細かな編集ができる。
ラベルの入力
ポイントで、記録していく。あらかじめ入力するフィールドを作成する。
入力した値は、ラベルとして表示するように設定する。
入力する略号はローマ字が早くて便利(お好きにどうぞ)。
ポイントがダブっても大丈夫。
→このデータは最終的にいらなくなるが、引き出し線を引きたい時はこれを使うことになる。これを使えば便利。
※引き出し線について
ポリゴンからも引き出し線が引けるようですが、操作法がよくわからないので、とりあえずですが、引き出し線の基点にラベルのポイントを使います。ですので、後ほどラベル作成に引き出し線を使いたいのであれば、ラベル入力時のポイント位置も、ある程度気を遣う必要があると思います。
ポリゴン化
ラインをポリゴン化する。「プロセッシング」→「ツールボックス」→「QGISジオアルゴリズム」→「ベクタジオメトリツール」→「ポリゴン化」をダブルクリック
入力レイヤを選んで、「Run」
ある時、「'NoneType' object has no attribute 'isMultipart' See log for more details」というエラーメッセージに遭遇し、ポリゴン化できず。
ググって以下の記事にたどり着いた。
https://gis.stackexchange.com/questions/238637/polygonizer-error-nonetype-object-has-no-attribute-ismultipart-see-log-for
ここに出ている「Nullの長さがある」という部分をたよりに修正し、無事ポリゴン化に成功。
(修正作業手順)
属性テーブルを開く。
編集モードにする(えんぴつアイコンをクリック)。
フィールド計算機ボタンをクリック。
出力フィールド名を入力。
ジオメトリの中の「$length」をクリック。
詳しくは林業QGISの286ページを参照。
長さが「Null」の行を全部消して、保存。
属性の結合
ポリゴンにポイント情報を結合する。「プロセッシング」→「ツールボックス」→「QGISジオアルゴリズム」→「ベクタ一般ツール」→「属性の結合」をダブルクリック、または、
「ベクタ」→「データマネジメントツール」→「属性の結合」をクリック
「対象ベクタレイヤ」にポリゴン、「ベクタレイヤを結合する」にポイントの指定。
「ジオメトリの述語」は「含む」
「属性値の概要」は普通「交差する全ての地物の属性を総合して利用する」にするが、エラーが起こる場合は「最初に位置する地物の属性をとる」にする。エラーの原因は未解決。
「Run」をクリック。
確認と修正
①ラベル抜けラベルがなかったものは抜けている。ラベルを追加する。
②区分線不良
色塗りしたものとラベルのポイントデータを表示させて、同一ポリゴン内に違う凡例が2つ以上ないか確認。線が切りきれてないことが多い。同一凡例が2つ以上あっても気にしなくていい。
③同一凡例が隣り合わせ
色塗りしたものを表示させて、同一凡例が隣り合っていないか確認。区分線を短くして、同一凡例にする。
④微小ポリゴン
微小ポリゴンが形成されている時は、線を修正する。
修正が終わったら、ポリゴン化から繰り返す。
属性テーブルの編集
(データが大量の場合)属性テーブルを表示させ、全選択してctrl+C
エクセルのから表にペースト。
桐に変換
桐で編集
桐からCSV形式で書き出し(フィールド名もつける)
(""で囲まれていない。ただのカンマ区切り)
エクセルで編集して、エクセルからCSVに書き出しても同じ。
QGISに戻る
「レイヤ」→「レイヤの追加」→「デリミテッドテキストレイヤの追加」
エンコードを「system」にすれば文字化けしないはず。
CSVの表がレイヤパネルに追加される
(CSVからの読み込みだと全てのデータが文字列になるそうです)→うそです。数字は数値として認識されました。
対象のレイヤで→「プロパティ」→「結合」→「+」
画面どおり
リレーション(結合関係)が記憶される。なので、新たに入力しても結合される。結合元の表を消したり、修正すると、結合先でも消えたり、修正される。
照合項目のフィールドタイプが数値と文字列で違っていても、なんと結合されました。
最終的にはシェイプに書き出す。書き出し先ではリレーション(結合関係)はなくなり、結合した表のデータが埋め込まれる。
(データが少ない場合)
属性テーブルを表示させ、編集モードにする。
新たなフィールドを作成する。
現地凡例で並び替える。
ひたすら手入力する。
意外と早くて簡単。これで十分かも。
shapeに保存
最終的にできたものを、「名前をつけて保存する」で、shapeに書き出して保存する。「保存エラー」が起こる時は、多分書き出しフォルダがおかしい。
書き出したら、テンポラリーのレイヤーは消す。
図面の整形・印刷関係はこちら
GPSとのデータ連係はこちら
重要種位置図の作り方は後ほど
2019/1/11
とても参考になりました。ありがとうございました。
返信削除「QGISで植生図」これはなかなかいいです。お薦めします。