2019年2月10日日曜日

qgis でcsvデータを正しく読み込ませる方法


なにか、大上段にかまえてしまった。
 いや、筆者は、qgis に特に詳しいという訳ではない。
 
 でも、表題のごとく、csvデータを読み込ませても、qgisが正しく認識しないのだ。
 いつも、これで困っていた。
 どこに問題点があるのか--その解決への方向性すら見当がつかないのだ。
 そんな状態の中で、アレコレやってみた。 
 それで、こんな工夫をしてみたら、たまたまうまくいった—とでも見てほしい。

 あぁ、qgis は、2.18を使っている。
 全体の流れから。
 1.国土数値情報のある市の人口をgis に読ませることを考える。

 2.dlしたデータは、テキストであるから、メモ帳でよみこみ、.csvと文字を付け加えて保存する。
 3.オープンオフィスのcalc でこのcsvを読み込む。(オープンオフィスはqgisと相性がいいようだ)

 これからの流れは、qgis の「ベクタレイヤの追加」で「csv」 を指定して、同名のcsvtと共に読み込ませるというだけだ。
 
 4.問題が生じる原因は、このcsvデータをqgisに読み込ませる前に工夫が必要だということなのだ。
 4-1.工夫1—csvtの文には、csvのカラムをみて、文字列型は”string” 整数型は”integer” 少数点型は、”real”とカラムの数と同じだけ記入する。
 ” ” の一つが抜けていても、読み込みがおかしくなる。間は「,」とし、小数点などと間違えないこと。また、一続きの文章とすること。

 4-2.工夫2-csvについて
 integer と指定したカラムに、文字があればおかしいだろう。指定した型と異なるものを排除し、整理する。なお、空白の部分に * という表示がなされているが、csvを読み込みデータをみると、空白へ変化している。
 それから、カラムの一番上の文字については、”” で挟んでやる。つまり、”総人口”という表示にする。

 4-3
 以上の準備をしてqgis に読み込ませてみる。
 セルの中で、文字列は左側に、整数型は右側によっているか確認する。
 (keycodeがある場合、結合する本体の型に合わせること)
 仮に、文字が左、整数が右となっていない場合は、qgis に読み込ませる準備の作業がどこかおかしいのだ。
 上でかいたように、(”” の片側が抜けている)とか、(csvt が一行の文章になっていない、半角の隙間があっても誤動作をおこす)--とかの理由がある。
 qgis に読み込ませる前のデータの整理という部分が、筆者が見当もつかなかった「qgisの誤認識」の理由であったのだろう。