gdal.Translate отсутствующую систему пространственной привязки

Я пытаюсь преобразовать много файлов xyz в растр, используя gdal.Translate в Spyder. Но я столкнулся с несколькими проблемами.

  1. Сначала я пытаюсь преобразовать только один файл xyz. Код похож:

    import os
    from osgeo import gdal,osr
    xyz = '1x1m_678494.xyz'
    xyzraster = '1x1m_678494.tif'
    translateoptions = gdal.TranslateOptions(projWin='EPSG:3879')
    gdal.Translate(xyzraster,xyz,options=translateoptions)
    

в результате я могу получить файл tif, но без пространственной привязки. И не было никаких сообщений об ошибках или предупреждениях. Тогда я подумал, что это может относиться к пакету gdal. я обнаружил несколько похожих проблем здесь https://gis.stackexchange.com/questions/142215/gdal-translate-projection-errorhttps://github.com/conda/conda/issues/4050, я установил GDAL_DATA на путь 'C:\Program Files\Anaconda3\Library\share\gdal'. Это не решило мою проблему. проверил, что моя версия gdal - 2.3.3 с python 3.7.3. Я пытаюсь удалить этот gdal и установить последнюю версию gdal 3.0.4 с помощью conda. Но вроде есть несовместимая проблема.

В то же время я обнаружил, что существует также независимая установка для GDAL, http://cartometric.com/blog/2011/10/17/install-gdal-on-windows/. В этом руководстве есть один шаг для установки GDAL_DATA и GDAL_DRIVER_PATH, но пути отличаются от GDAL_DATA, установленного conda. Я очень смущен. Будет ли независимый установленный gdal работать иначе, чем установленный conda gdal? Или мне просто нужен один из них?

  1. Затем я оставил проблему пространственной привязки и попытался преобразовать несколько xyz в geotiff. Но есть и другие проблемы. код похож:

    import os
    import gdal
    import glob
    path = 'D:\\Data\\1m\\'
    gdal.BuildVRT(path+'out.vrt',glob.glob(path+'\\*.xyz'))
    gdal.Translate(path+'out.tif',path+'out.vrt')
    

Ошибка - ValueError: получен нулевой указатель.

Кто-нибудь может мне помочь, пожалуйста?

1 ответ

** gdal.TranslateOptions(projWin=(zip(ulx,uly,lrx,lry)),projWinSRS='EPSG:3879') Первая часть пошла не так.

Другие вопросы по тегам