雑記

QGIS関連はサイト(https://sites.google.com/site/qgisnoiriguchi/)で

QGIS1.8.0が出ました。が…

2012-06-26 19:55:44 | QGIS_他のソフト
QGIS1.8.0がすでにリリースされていました。
私はまだ1.7.3とか言ってるのに…。

1.7.3と1.8.0は(プラグインとかいろいろ面倒なことはあるものの)共存できるので
とりあえずインストールしてみました。
で、国土数値情報の新潟県の行政界とか読みこんでみましたら。



見事に文字化け。
レイヤのプロパティを見たらエンコーディングがなぜか「UTF-8」に。
「shift-JIS」を選択しても変わらず、もう一回プロパティをみたらやっぱり「UTF-8」のまま。

あわててOSGeoJapanのメーリングリストのログを見に行ったら
(登録はなぜかはねられたのでログだけ見てます)
なんだかそういうものらしいということだけは分かった。

変換もまだ簡単にはいかないらしい。むー…
としばらく考えて検索して。
Pythonなんかわからんぞ、とか考えていたら、ふと。
Rで変換できないのか?と思いついた。

んでRで文字コードの変換とかいろいろ検索かけたけど見つからないので、
とりあえず読んで書いてだけやってみようと思い、Rを起動。
(Rは書き出したデータのデフォルトがUTF-8らしいのです)
DBFを読み込むために必要なライブラリ「foreign」はすでに入っているので
元のshapeファイルの名前の頭に「bu_」と入れたデータを作ってから

> library(foreign)
> data<-read.dbf("bu_h17ka15201.dbf")
> write.dbf(data,"h17ka15201.dbf")


としました。DBFを読んでそのまま別名で保存しただけ。

警告メッセージ:
1: In max(nchar(x[!is.na(x)], "b")) :
max の引数に有限な値がありません:-Inf を返します
2: In max(nchar(x[!is.na(x)], "b")) :
max の引数に有限な値がありません:-Inf を返します
3: In max(nchar(x[!is.na(x)], "b")) :
max の引数に有限な値がありません:-Inf を返します


というのが出て、ちょっと怯んでデータを一応確認。
別に落ちたデータもなさそう。ということで無視。
で、QGIS1.8.0に読み込んでみたところ。



なおりましたー。
実はRの文字コードには悩まされたこともあったんですが、
こんなところで役に立つとは。

レイヤのプロパティを見てみたら、
変換前は「UTF-8」になっていたエンコーディングが「system」になっていました。
なので、WindowsXPとWindowsVista以降でデータをやり取りするときにはまた化けるのかも。
このへんはまた確認します。


追記:
2バイト文字入りのカラム名を付けたカラムを追加しただけで
中のデータまで全部文字化けました。
カラム名が2バイト文字でなければデータも平気なんですが…。
やはりうちのマシンがいまだにXPなせいか。
もうちょっと考えてみます。


コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。