Hatena::ブログ(Diary)

Bravo-Astroの備忘録

2012-03-10

csvtファイル

久しぶりの更新になってしまいました。
今日は、佐々木さんの質問に2月20日、今木さんが回答されている内容の補足です。
QGISプラグインの属性結合でcsvファイルをdbfに結合したとき、何もしないと整数や少数がすべて文字になってしまいます。回避策としては「csvtファイルを作成すればよい。」ですが、その詳細を以下に示します。
以下は開発者のcsvtファイルの説明の英語のサイトです。
http://planet.qgis.org/planet/user/4/tag/ogr/
2011.3.7の記事がそれです。
何もしないで「属性結合」(Join attributes)するとcharacter(文字)になってします。(属性テーブルを開くと数字がCITYNAMEと同じく欄の左よりに配置されているので文字だと分かります。)
f:id:Bravo-Astro:20120310132805j:image
以下に回避策を記します。
csvファイルと同じ名称で拡張子のみがcsvtである1行のファイルを作ります。csvtの中身は次のとおりです。
総務省鎌倉市国勢調査のデータで説明します。
f:id:Bravo-Astro:20120310131956j:image
左から順に、整数整数、文字、文字、文字、整数整数整数整数整数なので、csvtファイルは次のようになります。
f:id:Bravo-Astro:20120310131955j:image
小数点つき数値ががある場合はrealを使用します。)
後は、通常の属性結合の手順で結合するだけです。
f:id:Bravo-Astro:20120310133153j:image
すると次の属性ファイルを持つshpファイルが出来ます。
f:id:Bravo-Astro:20120310133441j:image
数字が欄の右になっていることが分かります。
もちろん、数が少ない場合は、次のように属性ファイルの編集の整数化機能を使って整数化してもよいです。
属性ファイルを開きf:id:Bravo-Astro:20120310133808j:image:right
により編集モードにし、フィールド計算機をf:id:Bravo-Astro:20120310133807j:image:right
によりオープンし、新規フィールドを作り、フィールド計算式にT0000026(65歳以上の女性人数)を整数化する式を入力します。
f:id:Bravo-Astro:20120310134146j:image
すると次図を得ます。
f:id:Bravo-Astro:20120310134317j:image:left新規フィールドabove_65_femail欄のの人数が欄の右側に表示されるので整数化されたことが分かります。

トラックバック - http://d.hatena.ne.jp/Bravo-Astro/20120310/1331355187