Этот вопрос может повторяться, но я не получил ответа. Я пишу текущий код в python ide.
out_srs = osr.SpatialReference()
**self.out_srs.ImportFromEPSG(4326)**
Он работает нормально, но когда я запускаю его из приложения, возникает следующая ошибка
Примечание. Ошибка в строке, заключенной в 2 звезды -----
"Unable to load EPSG support gcs.csv file check setting GDAL_DATA environment variable which point to gdal library contains EPSG.csv file"
Я сделал это, но я все еще получаю эту ошибку. но этот код запускается отдельно, но не в приложении. Этот код взят из модуля gdal2tile программы gdal. Я использую python 2.7.6 и gdal 1.10.0. Я не могу разобраться, в чем проблема и где она. Пожалуйста, предложите, как это решить.
Ответ 1 · рейтинг 5 · Mike T
GDAL требуется переменная среды с именем GDAL_DATA, указывающая на каталог с различными файлами данных а>, включая gcs.csv. Подробнее об этом здесь.
Чтобы проверить, установлен ли GDAL_DATA и содержит ли он gcs.csv, и если это можно прочитать, используйте следующие фрагменты кода для проверки приложения. Это должно быть рядом с кодом, который вызывает ошибку.
import os
import stat
gdal_data = os.environ['GDAL_DATA']
print('is dir: ' + str(os.path.isdir(gdal_data)))
gcs_csv = os.path.join(gdal_data, 'gcs.csv')
print('is file: ' + str(os.path.isfile(gcs_csv)))
st = os.stat(gcs_csv)
print('is readable: ' + str(bool(st.st_mode & stat.S_IRGRP)))
Пользователи Anaconda / Miniconda
Правильный способ использования Anaconda или Miniconda - активировать среду, в которой установлен GDAL. Например, активируйте базовую среду для Anaconda из Windows cmd.exe:
call %LOCALAPPDATA%\Continuum\anaconda3\Scripts\activate.bat base
Активация среды запускает установку переменных среды, таких как GDAL_DATA (и другие), и часто изменяет префикс командной строки, показывающий имя среды. Эти переменные среды сбрасываются/восстанавливаются при деактивации среды.
conda deactivate
Ответ 3 · Jakub
Это случилось со мной в MacOS Catalina (10.15.5) во время игры с PyQGIS (QGIS 3.12). Только что искал в Mac Finder gcs.csv, который дал несколько результатов:
/usr/local/Cellar/gdal/2.4.2_4/share/gdal/gcs.csv
/Library/Frameworks/UnixImageIO.framework/Versions/F/Resources/epsg_csv/gcs.csv
/Library/Frameworks/GDAL.framework/Versions/2.2/Resources/gdal/gcs.csv
Я придерживаюсь GDAL.Framework и просто добавил эту переменную среды в свой скрипт:
import os
os.environ['GDAL_DATA'] = '/Library/Frameworks/GDAL.framework/Versions/2.2/Resources/gdal/'
Скрипт больше не ругается.