GDAL读取geotif并进行处理代码
时间: 2023-12-14 22:39:14 浏览: 36
下面是使用GDAL库读取geotif文件并进行处理的Python代码示例:
```python
from osgeo import gdal
# 打开geotif文件
dataset = gdal.Open('path/to/geotiff.tif')
# 获取地图信息
geotransform = dataset.GetGeoTransform()
projection = dataset.GetProjection()
# 获取图像数据
band = dataset.GetRasterBand(1)
data = band.ReadAsArray()
# 对图像数据进行处理
# ...
# 保存结果到新的geotif文件
driver = gdal.GetDriverByName('GTiff')
out_ds = driver.Create('path/to/output.tif', dataset.RasterXSize, dataset.RasterYSize, 1, band.DataType)
out_ds.SetGeoTransform(geotransform)
out_ds.SetProjection(projection)
out_ds.GetRasterBand(1).WriteArray(data)
out_ds.FlushCache()
```
其中,`gdal.Open()`函数用于打开geotif文件,`GetGeoTransform()`和`GetProjection()`函数分别用于获取地图信息,`GetRasterBand()`函数用于获取图像数据的单个波段,`ReadAsArray()`函数用于将波段数据读取为数组,`GetDriverByName()`函数用于获取输出文件的驱动程序,`Create()`函数用于创建新的geotif文件,`SetGeoTransform()`和`SetProjection()`函数用于设置地图信息,`WriteArray()`函数用于将处理后的数据写入输出文件中。
需要注意的是,如果需要处理多个波段的数据,可以通过循环获取每个波段的数据并进行处理,然后将处理结果写入到新的geotif文件中。