goo blog サービス終了のお知らせ 

雑記

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

DraftSight

2012-10-23 21:14:25 | QGIS_他のソフト
ちょっと前にちらっと書いたんですが。
DraftSightという無料のCADソフトがあるのですが、これがちょっとしたときに非常に便利。

私はCAD屋さんではないので、CADでそんな大した作業をするわけではないのですが、
たまにCADの図面をGISに持っていきたい時があって、しかもその図面がDWGしかなかったりするわけです。
DXFでよこせと最初から言っているにも関わらず、なぜDWGで寄越すのだ…とがっくりしながら
「DXFに変換してから寄越せ」ともう一度連絡する羽目に。
割とイラッとするわけです。

まあ商用GISを使っているのなら、DWGだろうが平気で読み込むんですが
QGISの場合はDXF2Shapeを使ってDXFからshapeファイルに変換することになるので
DWGを送りつけられてもいかんともしようがなかったわけです。

そこにDraftSight登場。なんとDWGが読み書きできます。DWGからDXFへの変換もばっちりです。
まあAutoCADに慣れていると「なんだ?」と思うことはそれなりにあるんですが(私が会社で使っているのは2011LTです)
コマンド全開でがっつり使おうとするんじゃなければなんとかなるんじゃないでしょうか。
印刷するとか、DWG図面をQGISで読み込めるように変換するとか、ちょろっと書き足すとか、その程度なら十分使えます。

ちなみになぜ無料で使えるかというと、SolidWorksという3DCADを作っている会社が、
3DCADの販売促進のために2DCADであるDraftSightを無料で提供している、ということで
週に何通かという頻度で販促メールが来ます。
まあでも毎日毎日来るわけでもないので、別に気になるほどではないです。

DraftSightのダウンロードはこちらから

QGIS1.8.0の文字コードがなー…

2012-06-30 14:15:41 | QGIS_他のソフト
Shift-JISのデータをUTF-8に変換しようと色々と努力してみたけど、結局

 DBFをOpenOffice.org(私はフォークのLibreOfficeを使ってますが)で開ける
→全選択してコピー
→保存時に文字コードが指定できるテキストエディタ(私はTeraPadを使ってます)に張りつけ
→文字コードをUTF-8に指定して保存
→OpenOffice.orgのCalcでタブ区切りで読み込む
→DBFで保存

が、今のところ確実で一番早いなー。
DBFをOpenOffice.orgで開けて新規ファイルにコピー→ペーストして文字コード指定してDBFで保存だとデータが壊れるし。
CSVだとデータの中にカンマが入ってたらぼろぼろになるし。
Rもなんだか難しい感じ。やっぱり一回文字コードを変換して外に出さないとだめなのか?

ちなみにEXCELでやろうとすると属性が消えるので、手間がかかったり意図したようにならなかったり。

しかしなー。OpenOffice.orgは扱える件数が多くないんだよなー。
植生図とかだとつらいかも。

QGIS1.8.0が出ました。が…(その2)

2012-06-26 23:09:20 | QGIS_他のソフト
QGIS1.8.0で国土数値情報とかをそのまま読み込むと文字化けてくる件ですが。

「DBF Explorer」でDBFファイルを読み込んで、カラムを足すとか何かの作業をして上書き保存すると
普通にShift_JISで認識してくれました。
カラム名を2バイト文字にしたカラムを追加すると、相変わらずカラム名は文字化けますが
中身はちゃんと読み書きできてます。
DBF Explorerでカラムを追加すると、カラム名も2バイト文字にできます。

DBFで文字コードを宣言するような何かを、QGIS1.8.0は当然のことにしているのにデータの側に欠けているとか
そういうことなんでしょうか。
DBF Explorerがそれを追加してくれるとか。
なんかそういう気がしてきた。

でもなー。dBaseIIIって書いてあるんだよね、DBF Explorerのサイトに。
大丈夫なのか?
いろいろと謎は深まるなー。

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なせいか。
もうちょっと考えてみます。