ogr2ogrコマンドがうまく動かない問題

A8バナー広告

こんなことを書く

  • ShapefileをPost GISデータベースにInsertするためのコマンドがある。ogr2orgという。
  • ogr2ogrコマンドがうまく動かない。
  • バージョン問題だった。

前提

  • 地理情報の入力はShapefile
  • 地理情報の保存先はPost GIS

そもそもogr2ogrとは?

地理情報ファイル形式をよしなに変換してくれるコマンド。

GDALというパッケージ群の一部として存在してる。

今回のようにShapefile -> PostGISにしたいときもogr2ogrコマンドでOK

バージョン問題で困った話

org2ogrコマンドを書いて、実行してみる。エラーが出る。

いまいちエラーの意味をわからない。

とりあえずInsert先のPostGISテーブルを確認してみる。

エラーメッセージの言うとおり、 s.consrc は存在していない。では、そもそも s.consrc ってなんだ?

QGISのエディタでShapefileの中身を確認してみる。

エラーに該当するフィールド名がそもそも存在しない。

結局はバージョンが問題だった

調べてみると、こんな記事があった。

condaでインストールすることがもっとも早いらしい。condaのインストールを試してみる。
バージョンが最新になった。これでOK

これでコマンドが通った。

GDALを自分でインストールした記憶がない。おそらくQGISをインストールした時に、付属してインストールされたのだろう。

(参考までに)構文エラーで困った話

ogr2ogrコマンドの構文をよくわからなかった。それで、何度か失敗した話


エラーが出る。メッセージから判断をすると、どうもPGに接続するためのドライバが問題らしい。

問題は表記法にあった。シングルクオートが抜けていた。あとhostを指定していなかった。

よって、正しい構文は次の通り。