Мне было интересно, есть ли у кого-то опыт получения данных высот из растра без использования ArcGIS , но лучше получить информацию в виде питона list
или dict
?
Я получаю свои данные XY в виде списка кортежей:
xy34 =[perp_obj[j].CalcPnts(float(i.dist), orientation) for j in range (len(perp_obj))]
Я хотел бы пройтись по списку или передать его в функцию или метод класса, чтобы получить соответствующее повышение для xy-пар.
Я провел некоторое исследование по этой теме, и API-интерфейс gdal звучит многообещающе. Может ли кто-нибудь посоветовать мне, как идти о вещах, подводных камнях, пример кода?
GDAL не вариант, так как я не могу редактировать системную переменную пути на машине, на которой я работаю!
Кто-нибудь знает о другом подходе?
Ответы:
Вот более программный способ использования GDAL, чем ответ @ Aragon. Я не проверял это, но в основном это код, который работал для меня в прошлом. Он опирается на привязки Numpy и GDAL, но это все.
источник
mapToPixel()
иpixelToMap()
важный бит, если вы можете создать простой массив (или обычный Python, но они обычно не так эффективны для такого рода вещей) и получить географическую ограничивающую рамку массива.gt
в примере) неверна. Аффинная матрица, используемая в CGAL (см. Gdal.org/gdal_datamodel.html ), обычно является обратимой (в противном случае у вас есть несколько весёлых значений масштабирования). Поэтому, где у нас есть,g = p.A
мы также можем сделатьp = g.A^-1
Numpy.linalg немного тяжелым для наших целей - мы можем свести все к двум простым уравнениям.Проверьте мой ответ здесь ... и прочитайте здесь для получения дополнительной информации. Следующая информация была взята из Geotips:
С gdallocationinfo мы можем запросить высоту в точке:
Вывод вышеуказанной команды имеет вид:
Это означает, что значение высоты при заданном геолокации составляет 1418.
источник
Посмотрите, например, этот код, который основан на GDAL (и Python, без нужды): https://github.com/geometalab/retrieve-height-service
источник
Предоставленный код Python извлекает данные о значении растровой ячейки на основе заданных координат x, y. Это слегка измененная версия примера из этого превосходного источника . Он основан
GDAL
иnumpy
не является частью стандартного дистрибутива Python. Спасибо @Mike Toews за то, что они указали на неофициальные бинарные файлы Windows для пакетов расширения Python, чтобы сделать установку и использование быстрой и простой.источник