tropicbirdのブログ

備忘録です。

Anaconda環境でgeopandasを使ってshp(シェープ)ファイルを読み込む際に発生するEPSGに関するエラーの対処方法

はじめに

Anaconda環境でgeopandasを使ってshp(シェープ)ファイルを読み込む際に、たまに以下のようなエラーメッセージが出てshpファイルを読み込めない場合があります。

CRSError: Invalid projection: EPSG:4326: (Internal Proj Error: proj_create: SQLite error on SELECT name, type, coordinate_system_auth_name, coordinate_system_code, datum_auth_name, datum_code, area_of_use_auth_name, area_of_use_code, text_definition, deprecated FROM geodetic_crs WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name)

geopandasはpyprojパッケージを使って座標系・空間参照のデータベース(EPSG database)を参照しているのですが、その参照先が間違っている場合に発生するようです。

解決方法

import pyproj
print(pyproj.datadir.get_data_dir())

の出力が

C:/Users/USERNAME/anaconda3/envs/ENVNAME/lib/site-packages/pyproj/proj_dir/share/proj

の場合、

pyproj.datadir.set_data_dir("C:/Users/USERNAME/anaconda3/envs/ENVNAME/Library/share/proj")

としてpyprojの参照先を現在のAnaconda環境下のLibrary/share/projに変更すると、解決しました。

参考サイト:
CRSError: Invalid projection: EPSG:4326 · Issue #1887 · geopandas/geopandas · GitHub