2018年10月7日日曜日

qgisソフトで、integerのデータを、どうしてもstring のデータとしか認識しない。その場合の対処方法


この問題、筆者には核心部分が分からない。
 csv のテータを読み込むとき、csvt などで補っている筈なのだが、どうしても、読み込んだデータは、stringになっているのだ。
 原因は、不明だ。

 できないところは、飛ばしていたのだが、数回繰り返すと、この難攻不落の部分に風穴を開けたいと思った。
 で。
 一旦、gis ソフトをストップして、オープンオフィスの表計算ツールで、直接、加工できないか—試みた。

 保存しているファイルの中をオープンオフィスの表計算ツールでみていると、編み目模様の部分がある。
 これを読み込んで見る。あぁ、shift -jis を、採用する。
 csvで読み込んだ、部分の隣接部(空いた列を作らないこと)に列を新規につくって、ここで計算することとした。
 加工した「属性テーブル」は、そのまま、従前の形式で保存すれば、問題はない。

 なるほど。
 効率の良い方法ではないが、今まで、どうしていいのか—見当もつかなかった。
 オープンオフィスの表計算ツールで、string の数字を、integer に変換する方法も上のようなツールで可能かもしれない。

 とりあえず、「風穴」は開いたようだ。

 ★追記
 属性テーブルから、内容をそのままエクセルなどにもっていく方法が書いてあった。
 1.すべてを選択
 2.選択している行を、クリップボードにコピーする

 という2つのボタンがついていた。
 
 まだまだ、見落としが多くて申し訳ない。

 ★追記その2

 表題の問題は、属性テーブルにおいて、フィールド計算機の中で修正すべき問題だった。
 フィールド計算機で 
 toint( ☓☓) として、☓☓のところにstringのデータのフィールドの頭の表示をいれ、ok とすれば、最後尾にinteger のデータとして付け加わる。

 なんというか、ホンのちょいとのことなのだが、そのちょいとのことに気がつくまで、これだけの時間が必要なのだな。

 ★追記その3
 どうやら、度重なる間違いの核心がつかめたようだ。
 原因を箇条書にしてみよう。
 1.指導書に書いてあるcsvt の書き方として、書いてある文章が古かった。
  実際に、テキストないしcsvの内容をみてみると、integer にする行とか行数が違うのだ。改めて、数えてみて、string と integer の数を正確に書かなくてはならないのだ。
 2.対象csvとcsvt (同じ文字だが、アルファベットの大文字、小文字は区別していない)とを並べておき、これを「ベクタレイヤの追加」で読み込む。
 すると、ちゃんと、数字は右側によって、読み込まれている。
 3.メッシュに結合してみると、正確に結合していた。
 ほんのちょいとのことなのだが、その小さな間違いに気がつくまでの長いこと。