QGISで都道府県ごとの河川データをマージする

 国土数値情報の河川データは都道府県ごとに分かれており,一つのシェープファイルに結合したかった.調べてみると QGIS でできそうだったので実行してみた.

QGISのデータ管理ツール

 QGIS の「ベクタ」メニューの「データ管理ツール」から「ベクタレイヤのマージ」を選ぶ.

「ベクタ」「データ管理ツール」「ベクタレイヤのマージ...」
「ベクタ」「データ管理ツール」「ベクタレイヤのマージ…」

「パラメータ」タブ

 入力レイヤ,変換先の座標参照系,出力レイヤをそれぞれ指定していく.

「ベクタレイヤのマージ」「パラメータ」
「ベクタレイヤのマージ」「パラメータ」

入力レイヤを指定

 「入力レイヤ」右側のボタンを押したところ.「ディレクトリを追加」をクリックする.

「入力レイヤ」右側のボタンを押したところ.「ディレクトリの追加」をクリック
「入力レイヤ」右側のボタンを押したところ.「ディレクトリを追加」をクリック

 ダイアログから「フォルダーの選択」を行う.

「入力レイヤ」右側のボタンをクリックして「ディレクトリを選択」
「入力レイヤ」右側のボタンをクリックして「ディレクトリを選択」

 目的のファイルがすべて選択されたら「OK」をクリックする.

目的のファイルがすべて選択されたら「OK」
目的のファイルがすべて選択されたら「OK」

出力レイヤを指定

 次に出力レイヤを指定する.「ファイル名」はフォルダ名とは違う名前にする点に注意が必要である.

「ファイル名」はフォルダ名とは違う名前にする
「ファイル名」はフォルダ名とは違う名前にする

 「ファイルの種類」はSHP files (*.shp)を選択する.

「ファイルの種類」はSHP files (*.shp)を選択
「ファイルの種類」はSHP files (*.shp)を選択

 「入力レイヤ」,「座標参照系」,「出力レイヤ」を指定したら「実行」をクリックする.

「入力レイヤ」,「座標参照系」,「出力レイヤ」を指定したら「実行」
「入力レイヤ」,「座標参照系」,「出力レイヤ」を指定したら「実行」

エラーはログに出力される

 「ログ」にエラーが列挙される.

「ログ」にエラーが列挙される
「ログ」にエラーが列挙される

Shape2SQLでSQL Server 2008 R2 にアップロード

 SQL Server 2008 R2 に国土数値情報の行政区域データをアップロードするに従って出力されたシェープファイルをアップロードしようとしたが,エラーメッセージが出てアップロードが中断する.

Shape2SQLで「System.Data.SqlClient.SqlException: ''付近に不適切な構文があります....で始まる識別子は長すぎます.最大長は128です.文字列...の後で引用符が閉じていません.」
Shape2SQLで「System.Data.SqlClient.SqlException: ”付近に不適切な構文があります.…で始まる識別子は長すぎます.最大長は128です.文字列…の後で引用符が閉じていません.」

 エラーメッセージに該当する列のチェックを外すと,アップロードが成功した.欠落したデータもあるだろうが,とりあえず進めていく.

文字化けした列のチェックを外すとアップロードできた
文字化けした列のチェックを外すとアップロードできた

結果

 結果を示す.図がないのだが,length は NULL であり,layer はレイヤ名,path はファイルパスである.中身の検証はまた後日行うことにする.

SELECT [ID]
      ,[W05_001]
      ,[W05_002]
      ,[W05_003]
      ,[W05_004]
      ,[W05_005]
      ,[W05_006]
      ,[W05_007]
      ,[W05_008]
      ,[W05_009]
      ,[W05_010]
      ,[length]
      ,[layer]
      ,[path]
      ,[geom]
  FROM [InfrastructureDB].[dbo].[Streams]
(132896 行処理されました)

“QGISで都道府県ごとの河川データをマージする” への3件の返信

コメントを残す

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

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