如何使用GDAL设置GeoTIFF文件的"波段描述"选项/标签(gdalwarp/gdal_translate)

Gen*_*ers 4 gdal geotiff

有人知道如何使用GDAL更改或设置GeoTIFF文件的"描述"选项/标签吗?

要指定我的意思,这是一个gdalinfo从GeoTIFF文件返回并带有"Description"的示例:

 Band 1 Block=64x64 Type=UInt16, ColorInterp=Undefined
 Description = AVHRR Channel 1:  0.58  micrometers -- 0.68 micrometers
 Min=0.000 Max=814.000 
 Minimum=0.000, Maximum=814.000, Mean=113.177, StdDev=152.897
 Metadata:
    LAYER_TYPE=athematic
    STATISTICS_MAXIMUM=814
    STATISTICS_MEAN=113.17657236931
    STATISTICS_MINIMUM=0
    STATISTICS_STDDEV=152.89720574652
Run Code Online (Sandbox Code Playgroud)

在该示例中,您可以看到:描述= AVHRR通道1:0.58微米 - 0.68微米

如何使用GDAL设置此参数?

小智 6

在Python中,您可以像这样设置波段描述:

from osgeo import gdal, osr
import numpy

# Define output image name, size and projection info:
OutputImage = 'test.tif'
SizeX = 20
SizeY = 20
CellSize = 1
X_Min = 563220.0
Y_Max = 699110.0
N_Bands = 10
srs = osr.SpatialReference()
srs.ImportFromEPSG(2157)
srs = srs.ExportToWkt()
GeoTransform = (X_Min, CellSize, 0, Y_Max, 0, -CellSize)

# Create the output image:
Driver = gdal.GetDriverByName('GTiff')
Raster = Driver.Create(OutputImage, SizeX, SizeY, N_Bands, 2) # Datatype = 2 same as gdal.GDT_UInt16
Raster.SetProjection(srs)
Raster.SetGeoTransform(GeoTransform)

# Iterate over each band
for band in range(N_Bands):
    BandNumber = band + 1
    BandName = 'SomeBandName '+ str(BandNumber).zfill(3)
    RasterBand = Raster.GetRasterBand(BandNumber)
    RasterBand.SetNoDataValue(0)
    RasterBand.SetDescription(BandName) # This sets the band name!
    RasterBand.WriteArray(numpy.ones((SizeX, SizeY)))

# close the output image
Raster = None
print("Done.")
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不确定ArcGIS或QGIS是否能够读取波段描述.但是,Tuiview中的乐队名称清晰可见: 在此输入图像描述