Re: [OSGeoJapan-discuss] QGIS 属性データの結合について

Bravo-Astro mnara-260116 @ kamakuranet.ne.jp
2010年 10月 17日 (日) 04:28:01 EDT


山本様、Osgeoの皆様
Bravo-Astroです。私も、この6月属性データの結合に関し、メーリングリストで質問しました。
当時は、QGISのバージョンは1.4でしたが、岩崎様のfToolsを使用するというアドバイスに従ったところ、約20000件の結合がうまく行きました。
岩崎様に教えていただいたQGISでのfToolsの選択は次の通りです。
「ベクタ→データマネージメントツール→属性を結合する
を選ぶとツールが出ています。ただし,shpファイルとcsvファイルを結合するこ
とは出来なくて,csvファイルをdbfファイルに変換する必要があります。」

以下は、私の最終の6月12日のメールです。

IWASAKI様、今木様、Osgeoの皆様
fToolsを使用してのマージは、アドバイスに従ったところ出来ました。
以下詳細です。
次の今木さんのホームページの記載に習ってdbfファイルの日本語を英数字に変更し、 


エクセル2003でのdbfフォーマットでセーブ後、マージしたところうまく行きました。 


http://www.geopacific.org/opensourcegis/qgis/qgis-plug-ins

(注)現在は、QGISは1.5になっていますので、英数字に変換する必要は無いと思いますが、
出力のshpファイルのファイル名とpathは、英数字で指定するのが良いと思います。
          Bravo-Astro

----- Original Message ----- 
From: "Nobusuke Iwasaki" <wata909 @ gmail.com>
To: "Yoichi Kayama" <yoichi.kayama @ gmail.com>
Cc: <osgeojapan-discuss @ lists.osgeo.org>
Sent: Sunday, October 17, 2010 12:23 AM
Subject: Re: [OSGeoJapan-discuss] QGIS 属性データの結合について


> 山本さん,嘉山さん
>
> 岩崎ともうします。
> s
> 嘉山さんのおっしゃるとおり,90000件のデータを扱うのであれば,PostGIS/PostgreSQLを利用するのが効率がよいと思います。
> ただ,これまでデータベースやSQL文章等を扱ったことがない場合,実際にこの手段が実行可能かというと,なかなか難しいと思います。
> ですので,とにかくQGISでやる場合について,いくつかコメントを。
>
> ○カラム名に日本語が入っていないか
> shpファイルの場合,嘉山さんの指摘されているように属性テーブルは.dbfというファイルに格納されています。
> これが特にカラム名に日本語などの2バイト文字が入っていた場合,結合が余り上手くいかなかった気がします(うろ覚えですが・・・)。
> まず,カラム名に日本語が入っていたら,英語やローマ字に変えてみると,上手くいくかもしれません。
>
> ○QGISのバージョンを上げてみる
> バージョン1.05を使われているとのことですが,最新のバージョンは1.5になります。 
> 
> 9万件のデータは行ったことがないのですが,三次メッシュ(地物にして12,000)で結合させたときは何とか動きました。
>
> ○ファイルの分割について
> csvファイルを分割して行われたということですが,これはカラム毎にまとめたのでしょうか,ライン毎にまとめたのでしょうか。9万は無理でも地物が1万程度であればQGIS+Shpでも何とか結合してくれるので,csvではなくshpの方を複数に分割し,それに対応する様にcsvをライン毎に分割して作業を行い,その上でまた一つに戻すという方法もあると思います。
>
> 以上,参考になれば幸いです。
>
>
>
> 2010年10月15日19:33 Yoichi Kayama <yoichi.kayama @ gmail.com>:
>> 山本様
>>
>> はじめまして。
>> 嘉山と申します。
>>
>> シェープファイルで重い処理をやるのはちょっと苦しいと思います。
>>
>> http://help.arcgis.com/ja/arcgisdesktop/10.0/help/index.html#//002t0000000m000000.htm
>>
>> 上記にあるようにシェープファイルの属性データベースであるdbase自体が結構古い技術の
>> ものです。このファイル形式は公開されているため、いろいろなGIS間でデータ交換のために
>> よく利用はされています。しかし90000件の結合処理に実用的に利用できるものではない
>> と思います。
>>
>> 手じかなところではPostGIS/PostgreSQLのデータベースを構築すれば、そこに
>> シェープファイルの内容を1個の表として格納することができます。
>>
>> CSVファイルも1個の表として格納できます。
>>
>> PostgreSQLのSQLで表の結合を行うことはできます。
>> ですからシェープファイルから作成した表とCSVファイルから作成した表をSQLで結合
>> することができればPostgreSQLのSQLでご希望の処理ができるかもしれません。
>> ただし、この時インデックスをちゃんとつくるかどうかで速度がえらく違うと思います。
>>
>> PostGIS/PostgreSQLに格納された空間情報付のテーブルはQGISのレイヤとして
>> 利用することが可能です。
>> またPostGIS/PostgreSQLの空間情報付テーブルの内容をシェープファイルに変換
>> することも可能です。最終的に必要なものが属性が結合されたシェープファイルである
>> ならそういった方法があります。ただ90000レコードのシェープファイルよりは
>> 90000レコードのPostGIS/PostgreSQLのテーブルのほうがアプリケーションプログラム
>> の側からすると使いやすいと思います。
>>
>>
>> 2010年10月15日16:17 山本 健太 <k-yamamoto @ matsumoto-forest.jp>:
>>> はじめまして
>>>
>>> 最近QGISを使い始めたのですがデータの結合がうまく出来ず困っております。使
>>> 用マシンはWinXPでQGISのバージョンは1.05です。シェープファイルにcsvの属性
>>> データを結合したいのですが、csvのデータが約90,000件あって結合処理で1週間
>>> かけて結局フリーズで失敗。次にcsvを30に分割して順番に結合してみようと思
>>> いました。最初の一つ目は無事結合できた(仮にA.shp)のですが、その次A.shpに
>>> 二つ目のcsvを結合しようとすると途中まではうまくいくのですが最後に「以下
>>> の出力shapefileが出力されました〜これを新しいレイヤとしてTOCに追加します
>>> か  はい・いいえ」とメッセージが表示され「はい」を選択するとロードエ
>>> ラーがでて失敗してしまいます。操作手順が良くないのか、もしくは他に方法が
>>> あるかどうか、拙い説明で申し訳ございませんがご教授のほどよろしくお願いい
>>> たします。
>>>
>>> 山本
>>>
>>> _______________________________________________
>>> OSGeoJapan-discuss mailing list
>>> OSGeoJapan-discuss @ lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>>
>>>
>>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> OSGeoJapan-discuss @ lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>
>>
>


--------------------------------------------------------------------------------


> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> 



OSGeoJapan-discuss メーリングリストの案内