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