如何使用gdal导入tif?

时间:2014-11-17 02:18:19

标签: python dataset gdal

如何使用gdal导入tif?

我正在尝试以Python中的可用格式获取我的tif文件,因此我可以分析数据。但是,每次导入它时,我都会得到一个空列表。这是我的代码:

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`

它始终打印一个空列表,但不会抛出错误。我检查了其他问题,例如[this](Create shapefile from tif file using GDAL)可能是什么问题?

1 个答案:

答案 0 :(得分: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是1-balded栅格的2D数组,或者是多频段的3D数组。


rasterio的替代方案如下:

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

其中data始终是3D数组,第一个维度为band index。