Как импортировать tif с помощью gdal?

Как импортировать tif с помощью gdal?

Я пытаюсь получить свой tif-файл в удобном для использования формате в Python, чтобы я мог анализировать данные. Однако каждый раз, когда я его импортирую, я просто получаю пустой список. Вот мой код:

xValues = [447520.0, 432524.0, 451503.0]
yValues = [4631976.0, 4608827.0, 4648114.0]

gdal.AllRegister()
dataset = gdal.Open('final_snow.tif', GA_ReadOnly)

if dataset is None:
    print 'Could not open image'
    sys.exit(1)

data = np.array([gdal.Open(name, gdalconst.GA_ReadOnly).ReadAsArray() for name, descr in       dataset.GetSubDatasets()])
print 'this is data ', data`

Он всегда печатает пустой список, но не выдает ошибку. Я проверил другие вопросы, такие как [этот] (Создать шейп-файл из tif-файла с помощью GDAL) В чем может быть проблема?


person makansij    schedule 17.11.2014    source источник


Ответы (1)


Для osgeo.gdal это должно выглядеть так:

from osgeo import gdal
gdal.UseExceptions()  # not required, but a good idea
dataset = gdal.Open('final_snow.tif', gdal.GA_ReadOnly)
data = dataset.ReadAsArray()

Где data — либо 2D-массив для одноканальных растров, либо 3D-массив для многоканальных.


Альтернатива с rasterio выглядит так:

import rasterio
with rasterio.open('final_snow.tif', 'r') as r:
    data = r.read()

Где data всегда представляет собой трехмерный массив с первым измерением в качестве индекса полосы.

person Mike T    schedule 17.11.2014