gdal.Translate отсутствует система пространственной привязки - PullRequest
1 голос
/ 21 апреля 2020

Я пытаюсь преобразовать много файлов 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? Или мне просто нужен один из них?

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

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: Получен нулевой указатель.

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

...