QGISで国土数値情報のシェープファイルを修正する

 QGIS の扱いは慣れないと難しい.特に地物を保存する際のエクスポートには難渋した.慣れてしまえばどうということはないのだが,慣れるまでが難しい.

北海道の河川の流路のシェープファイルを修正する

 まず北海道のデータを修正する.

ベクタレイヤを追加

 QGIS を起動し,「レイヤ」メニューから「レイヤを追加」「ベクタレイヤを追加…」と進む.

「レイヤ」「レイヤを追加」「ベクタレイヤを追加...」
「レイヤ」「レイヤを追加」「ベクタレイヤを追加…」

 データソースマネージャでソースのベクタデータセットを指定する.赤で印したボタンをクリックしてダイアログを開く.

データソースマネージャでソースのベクタデータセットを指定
データソースマネージャでソースのベクタデータセットを指定

 「OGRがサポートするベクタデータセットを開く」ダイアログで北海道の河川流路データである W05-09_01-g_Stream.shp を選択し「開く」ボタンをクリックする.

OGRがサポートするベクタデータセットを開く
OGRがサポートするベクタデータセットを開く

 ソースにフルパス付きのファイル名が指定されるので「追加」ボタンをクリックする.

ソースにフルパス付きのファイル名を指定
ソースにフルパス付きのファイル名を指定

プロパティの確認

 レイヤのプロパティを確認してみよう.レイヤパネルのレイヤを右クリックして「プロパティ」へ進む.

レイヤパネルのレイヤを右クリックして「プロパティ」
レイヤパネルのレイヤを右クリックして「プロパティ」

 「情報」を下にスクロールして「属性」を確認する.フィールド名が日本語であり,フィールドの順序も他と異なる.始点 ID および終点 ID はそれぞれ 9 番目および 10 番目に来るべきものである.

レイヤプロパティの「情報」「属性」
レイヤプロパティの「情報」「属性」

テーブル構造の修正には「属性のリファクタリング」

 今回の修正にはフィールドの順序の変更やフィールド名の修正が含まれる.この場合,プロセシングツールボックスによる修正が必要となる.

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

「プロセシング」「ツールボックス」
「プロセシング」「ツールボックス」

 「プロセシングツールボックス」パネルが開く.「ベクタテーブル」「属性のリファクタリング」と進む.

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

 始点 ID および終点 ID をクリックして選択し,「選択属性を下へ」ボタンを押して順序を入れ替える.

「選択属性を下へ」
「選択属性を下へ」

 始点 ID と終点 ID を本来の順序に修正したところである.

始点IDと終点IDを本来の順序に修正
始点IDと終点IDを本来の順序に修正

 次はフィールドの名前を修正する.ダブルクリックするとセルにカーソルが入り,キーボードからタイプして修正できる.

属性の名前を修正
属性の名前を修正

 「実行」ボタンをクリックするとログに結果が出力される.

「実行」するとログに結果が出力される
「実行」するとログに結果が出力される

 結果は「再構成レイヤ」に表示される.

結果は「再構成レイヤ」として表示される
結果は「再構成レイヤ」として表示される

再構成レイヤをエクスポートして地物を保存する

 さて,ここからが躓いたところである.再構成レイヤを右クリックして「エクスポート」「地物の保存…」と進む.

再構成レイヤを右クリックして「エクスポート」「地物の保存...」
再構成レイヤを右クリックして「エクスポート」「地物の保存…」

 下図をよく見てほしい.「ファイル名」には直接カーソルが入り,キーボードからファイル名を入力できてしまうので間違えた.

ベクタレイヤを名前を付けて保存...
ベクタレイヤを名前を付けて保存…

 そのままOKをクリックすると,エラーとなる.

ベクタファイルへのエクスポートが失敗しました.エラー:レイヤの作成に失敗しました
ベクタファイルへのエクスポートが失敗しました.エラー:レイヤの作成に失敗しました

 正しい方法は,右側のボタンをクリックして「名前をつけてレイヤを保存」ダイアログを出すことである.

ベクタレイヤを名前を付けて保存...
ベクタレイヤを名前を付けて保存…

 「名前をつけてレイヤを保存」ダイアログでファイル名をタイプして「保存」をクリックする.

「名前をつけてレイヤを保存」ダイアログでファイル名をタイプして「保存」
「名前をつけてレイヤを保存」ダイアログでファイル名をタイプして「保存」

 フルパス付きのファイル名が「ファイル名」に入る.この手順を飛ばすと先程のエラーに見舞われる.

フルパス付きのファイル名
フルパス付きのファイル名

 再構成レイヤはもはや不要なので「削除」する.

再構成レイヤを右クリックして「レイヤの削除...」
再構成レイヤを右クリックして「レイヤの削除…」

茨城県の河川の流路のシェープファイルを修正する

 茨城県の場合は 11 番目に余分なフィールドが存在することだった.フィールドの削除も「属性のリファクタリング」を行う.

OGRがサポートするベクタデータセットを開く
OGRがサポートするベクタデータセットを開く
属性のリファクタリング
属性のリファクタリング
「選択属性を削除」
「選択属性を削除」
余分な属性が削除され本来の状態となった
余分な属性が削除され本来の状態となった

 実行をクリックして編集を終了する.

エクスポートでの失敗

 エクスポートでの失敗は,ファイル名の競合などで起きやすいようだ.あらかじめ修正元のレイヤをパネルから削除した上で,エクスプローラで元のファイルを物理削除してしまうのが確実なのかもしれない.

元のファイルを物理削除
元のファイルを物理削除

 「名前を付けてレイヤを保存」ダイアログでファイル名をタイプして「保存」する.

名前をつけてレイヤを保存
名前をつけてレイヤを保存

 示唆に富むエラー画面である.

ベクタファイルへのエクスポートが失敗しました.エラー:データソースの作成に失敗しました
ベクタファイルへのエクスポートが失敗しました.エラー:データソースの作成に失敗しました
「ベクタレイヤを別名で保存」ファイルを開く際にエラー:ファイルにレイヤがなく,開く際にエラーが発生しました.ファイルとパーミッションを確認してください
「ベクタレイヤを別名で保存」ファイルを開く際にエラー:ファイルにレイヤがなく,開く際にエラーが発生しました.ファイルとパーミッションを確認してください

座標参照系

 属性のリファクタリングの際,座標参照系が強制的に指定されるため,.prj ファイルが作成される.後でまとめて変更するので,ここで削除してしまっても良いだろう.

座標参照系を指定するとprjファイルが作成される
座標参照系を指定するとprjファイルが作成される

まとめ

 国土交通省の国土数値情報にある河川データを QGIS を用いて修正した.

 修正済みのデータなら Shape2SQL で SQL Server にアップロードできるかもしれないが,まだ試していない.

 次の課題はすべての都道府県のシェープファイルを一つにまとめることである.

コメントを残す

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

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