gdal.Translate отсутствующую систему пространственной привязки
Я пытаюсь преобразовать много файлов xyz в растр, используя gdal.Translate в Spyder. Но я столкнулся с несколькими проблемами.
Сначала я пытаюсь преобразовать только один файл 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 в 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') Первая часть пошла не так.