2014-11-17 2 views
0

Как импортировать 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` 

Он всегда печатает пустой список, но не вызывает ошибки. Я проверил другие вопросы, такие как [это] (Create shapefile from tif file using GDAL) В чем может быть проблема?

ответ

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-массив для 1-полосчатые растров или 3D массив для многодиапазонной.


Альтернативные с rasterio выглядит следующим образом:

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

Где data всегда 3D-массив, с первым параметром в качестве индекса полосы.

Смежные вопросы