エアロトヨタコラムColumn

QGIS

位置情報の無いCSVをQGISから編集できるように読み込む

この記事でわかること

・位置情報の無いCSVをQGISから編集できるように読み込む方法がわかる

この記事は、執筆時の安定版(LTR)であるQGIS Ver3.44で作成しています。

QGISでCSVが編集できない~

QGISでCSVをレイヤとして読み込んだら、属性データを編集できないということはありませんか?
ジオメトリ(位置情報)があるCSVをデータソースマネージャの「CSVテキスト」でポイントレイヤとして読み込んだ場合には、編集モードを利用することができませんが、位置情報の無いCSVを、他のレイヤと結合(またはリレーション)するためのデータとして読み込んだ際には、QGISからデータを編集したい場合もあります。
 

QGISでは、CSVを読み込むのに複数の方法があり、その方法によって編集ができるできない、データ型の設定ができるできないなどありますので、この記事で読み込み方法別の注意点、特徴などを説明していきます。

ドラッグ&ドロップでレイヤに追加

CSVファイルをQGISにドラッグアンドドロップすることでレイヤに追加することができます。
ドラッグ&ドロップの場合は、位置情報が記録されたCSVでも位置情報無しのデータとして読み込まれます。

この場合の特徴は次のとおりです。

QGISから編集→できる
データ型の設定→すべてのフィールドが文字列型になる

[図:レイヤプロパティの「フィールド」画面]

[図:属性テーブル 数値も日付も文字列として読み込まれる]

すべて文字列となってしまうので、数値による計算や日付による並び替えなどは行うことができなくなります。


データソースマネージャ[CSVテキスト]で読み込む

[図:データソースマネージャの画面]

ジオメトリ(位置情報)がないCSVもデータソースマネージャの「CSVテキスト」で読み込むことができます。
CSVテキストの設定で、「ジオメトリ定義」を「ジオメトリなし(属性のみのテーブル)」に指定します。

この場合の特徴は次のとおりです。

QGISから編集→できない
データ型の設定→データソースマネージャで指定できる

[図:レイヤプロパティの「フィールド」画面]

[図:属性テーブル 「編集モード切替え」ボタンがグレーアウトして編集できない]

データソースマネージャでデータ型を指定できるが、ルールに合っていないデータは削除されます
(例えば数値の列にある「ー」や「*」など)


データソースマネージャ[ベクタ]で読み込む

[図:データソースマネージャの画面]

位置情報の無いCSVファイルをベクタとして読み込むことができます。

この場合の特徴は次のとおりです。

QGISから編集→できる
データ型の設定→「AUTODETECT_TYPE」を「はい」にすると、適切なデータ型を設定してくれる

※「AUTODETECT_TYPE」は上の図の赤枠部分

[図:レイヤプロパティの「フィールド」画面]

[図:属性テーブル 数値、日付のデータ型も反映し、編集も可能]

ただし、「AUTODETECT_TYPE」を「はい」にして、フィールドの型を自動判別する場合は、データの入力に関するルールを守る必要があります。
数値の列には数値のみが入力されている必要があります。数値と同じ列に「ー」や「*」など文字が入力されていると、文字列型になってしまいます。
また、日付型の場合は「yyyy-mm-dd」というように、年月日を「‐」で区切り、年は4桁、月と日は2桁にしておく必要があります(例 2026-03-12)。
数値と同じように同じ列に日付以外のデータがあると、こちらも文字列型になってしまいます。
日付時刻型の場合は、「yyyy-mm-dd hh:nn:ss」というように、時刻は「:」で区切り、時間、分、秒は2桁になるようにします。
このような入力ルールをあらかじめ守ったデータを作る必要がありますので気をつけてください。


まとめ

QGISでジオメトリ(位置情報の無い)CSVをQGISで編集可能な状態で読み込む際には、
「データソースマネージャ」の「ベクタ」で読み込む
という方法が良いと思います。

ただし、数値や日付などのデータ型を正しく読み込むためには、ルールに沿ったデータにしなければなりません。
このように編集可能な状態でQGISに読み込めば、こちらの記事にあるように、図形データとリレーションすることで、施設台帳や施設点検データとして、QGISで活用することができます。

ぜひお試しください!


記事編集:喜多耕一

Other Columnその他のコラム

コラム一覧を見る

TOP