Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Не удалось загрузить файл gcs.csv в gdal

Автор вопроса: user2353848Ответов: 3

Этот вопрос может повторяться, но я не получил ответа. Я пишу текущий код в 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. Я не могу разобраться, в чем проблема и где она. Пожалуйста, предложите, как это решить.

  • Откуда он знает, что geodetic ссылается на out_srs в вашем коде? beroe 25.09.2014

pythongdal

Ответы

Ответ 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

Ответ 2 · рейтинг 1 · Pranav Pandit

Я смог решить эту проблему, выполнив следующие шаги, чтобы установить переменную GDAL_DATA в окнах.

  1. Найдите папку, в которой хранятся данные gdal.

    \Anaconda2\envs\gdaltest\Library\share\gdal
    
  2. откройте командную строку Windows и выполните следующую команду, указав расположение вашей папки данных gdal.

    set GDAL_DATA=....\....\Library\share\gdal
    

Ответ 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/'

Скрипт больше не ругается.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы