QGISで属性テーブルの構造を編集する

 国土数値情報の河川データをダウンロードして SQL Server 2008 R2 にアップロードできなかった話や,国土数値情報の河川データの属性テーブルを編集してみたでは,国土数値情報のデータファイル自体に問題がありそうだと指摘した.

 今回は QGIS で属性テーブルの構造を変更する方法を記述する.

誤った方法

 最初に間違いの方法を述べておく.

レイヤを右クリックして「属性テーブルを開く」

 レイヤを右クリックして「属性テーブルを開く」.

レイヤを右クリックして「属性テーブルを開く」
レイヤを右クリックして「属性テーブルを開く」

 属性テーブルの列名を右クリックして「列の整理…」と進む.

属性テーブルの列名を右クリックして「列の整理...」
属性テーブルの列名を右クリックして「列の整理…」

ドラッグ・アンド・ドロップで列の順序を変更

 ドラッグ・アンド・ドロップで列の順序を変更できるのだが,これはレイヤの元になったファイルのフィールドの順序を入れ替えているのではなく,テーブルの見た目の順序を変更しているだけである.

 また,列名をダブルクリックしたり右クリックしたりしても,列名を編集することはできない.

ドラッグ・アンド・ドロップで列の順序を変更
ドラッグ・アンド・ドロップで列の順序を変更

正しい方法は「プロセシング」「ツールボックス」にある

 「プロセシング」メニューから「ツールボックス」と進む.

「プロセシング」メニューから「ツールボックス」
「プロセシング」メニューから「ツールボックス」

「ベクタテーブル」「属性のリファクタリング」

 「ベクタテーブル」の「属性のリファクタリング」と進む.ダブルクリックすると次のダイアログが開く.

「ベクタテーブル」「属性のリファクタリング」
「ベクタテーブル」「属性のリファクタリング」

「属性のリファクタリング」ダイアログ

 「属性のリファクタリング」ダイアログが開く.「入力ラスタ」に目的とするレイヤ名が表示されていることを確認する.目的のレイヤでなければ,クリックして選択し直す.ちなみに,このメニュー名は「入力ベクタ」か「入力レイヤ」が正しい名称だと思う.

「属性のリファクタリング」ダイアログ
「属性のリファクタリング」ダイアログ

 順序を入れ替えるには目的の列名をクリックして「選択属性を下へ」ボタンをクリックする.

順序を入れ替えるには目的の列名をクリックして「選択属性を下へ」ボタンをクリック
順序を入れ替えるには目的の列名をクリックして「選択属性を下へ」ボタンをクリック

 列名をダブルクリックすると編集できるようになる.河川のコード体系は W05 で始まる 7 桁の 10 個の列名である.W05_001 からはじめて W05_010 までキーボードで入力する.

列名を編集するにはダブルクリック
列名を編集するにはダブルクリック

ログ

 「実行」をクリックすると編集した内容がログに出力される.

「実行」をクリックすると編集した内容がログに出力される
「実行」をクリックすると編集した内容がログに出力される

リファクタリングの結果は「再構成レイヤ」

 リファクタリングの結果は「再構成レイヤ」として表示される.これはメモリ上にのみ存在するレイヤであり,アプリケーションを終了すると失われるため,「エクスポート」してシェープファイルに保存する必要がある.

リファクタリングの結果は「再構成レイヤ」
リファクタリングの結果は「再構成レイヤ」

レイヤのプロパティ

 レイヤのプロパティを確認すると,編集したとおりになっている.「_河川名」と「_WaterSyst」の列名は,別項で示すが,csv ファイルを結合したテーブルのフィールドである.列名が 10 文字で切れているのは シェープファイルの仕様である.

レイヤのプロパティ
レイヤのプロパティ

まとめ

 QGIS においてレイヤの属性テーブルの構造を変更する方法について述べた.

 プロセシングツールボックスのベクタテーブルから属性のリファクタリングを行うことで可能となる.

 結果は再構成レイヤに出力される.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください