【QGIS】CSVTファイルを使ってデータの型を指定する方法
今回はCSVTファイルを使って、CSVファイルを読み込んだ時に各フィールドのデータの型を指定する方法を説明します。
CSVファイルのみを読み込むと、整数や実数であっても全てのフィールドのデータの型が文字列で指定されてしまいます。
そのため、数字が順番通りに並ばなかったり、フィルターでの絞り込みができないなどの不具合が生じます。
下記の順番で説明します。
1.データの型を指定しないとどうなるか?
2.データの説明
3.CSVTファイルの作成
1.データの型を指定しないとどうなるか?
今回は例としてこちらのCSVファイルを使用し、1行目をそれぞれのフィールド名とします。
このデータをQGISのレイヤパネルにドラッグアンドドロップして、右クリック>プロパティをクリック。
プロパティのフィールドをクリックします。タイプ名の欄が各フィールドの型であり、全て文字データを意味する「String」が記載されています。
この状態でフィルターの処理を行ってみます。
レイヤ名を右クリックしてフィルターをクリック。
面積が1.00(ha)以上の地物を抽出する条件を入力します。
1.フィールドの面積をダブルクリック
2.演算子の不等号をクリック
3.不等号の後に「1.00」と入力
4.テストをクリック
型が不適切であるというエラーが表示されて処理が実行されません。
このように見た目は数字でも文字として認識されてしまうと不具合が起きてしまいます。
2.データの説明
データの型には、「string:文字」以外にも下記の種類があります。
・integer : 整数(少数を含まない数字)
・real : 実数(少数を含む数字)
その他、「time : 時刻」や「date : 日付」など
よって、今回使用するデータの各フィールドそれぞれの型は、
"整数","整数","整数","実数","整数","文字"
です。
次にこのデータの型を指定する「CSVTファイル」を作成します。
3.CSVTファイルの作成
今回はメモ帳でCSVTファイルを作ります。
作り方は下記のように各フィールドの型を並べて記載していきます。
CSVTファイルのルールとして、
・それぞれの型の名前は「"(ダブルクォーテーション)」で囲む
・型の名前の間に「,(コンマ)」を入れる
・型の名前の後ろの()内の数字はデータの長さ(桁数)を意味する。
・real(実数)の場合は(〇.△)の形で記入する。〇はデータの長さ、△は小数点以下の桁数を表す
※桁数は余裕を持って設定するとよいです。
ファイル>名前を付けて保存をクリックし、CSVのデータと同じ場所に保存します。
ファイル名はCSVのファイル名と同じにし、拡張子を「.csvt」にします。
ファイルを種類をすべてのファイルにし、保存をクリック。
同じフォルダに同じ名前の「csv」と「csvt」が作成されました。
先程と同様にQGISのレイヤパネルにCSVのファイルをドラッグアンドドロップして、右クリック>プロパティをクリック。
プロパティのフィールドをクリックします。
タイプ名、長さ、精度が変更されました。
以上で説明は終了です。
※実数(real)の長さを6で設定したのに5になっている原因は不明です。(小数点の分?)
この記事が気に入ったらサポートをしてみませんか?