在Python中将GeoTIFF转换为JPEG并提取GeoTIFF头信息

7 投票
1 回答
7039 浏览
提问于 2025-04-15 23:11

我正在写一个Python脚本,这个脚本可以读取GeoTIFF文件,并且完成两个任务:把GeoTIFF文件转换成一个静态的JPEG文件(这个JPEG文件会小很多),同时还会创建一个单独的文本文件,里面包含GeoTIFF的头信息。

通过使用Python的GDAL库,我可以让这个脚本打开一个GeoTIFF文件,并打印出一些细节,比如RasterXSize(横向像素大小)、RasterYSize(纵向像素大小)、RasterCount(波段数量)等等。

问题出在保存JPEG文件上。我查阅了driver.CreateCopy()这个方法,但它只会生成一个非常大的空白JPEG文件,根本打不开。

另外,哪个方法可以获取所有的GeoTIFF头信息,以便我保存到文件中呢?

我对GeoTIFF和GDAL都不是很精通,非常感谢大家的帮助!

1 个回答

8

我自己通过搜索解决了这个问题。

要保存不同质量的 .jpg 文件,你需要使用以下代码:

# Assume this retrieves the dataset from a GeoTIFF file.
dataset = getDataSet(tiffFileLocation)      

saveOptions = []
saveOptions.append("QUALITY=75")

# Obtains a JPEG GDAL driver
jpegDriver = gdal.GetDriverByName("JPEG")   

# Create the .JPG file
jpegDriver.CreateCopy("imageFile.jpg", dataset, 0, saveOptions)  

我需要的参数存储在 theDataset.GetGeoTransform()theDataset.GetProjection() 这两个方法里。

特别感谢这个网站:http://adventuresindevelopment.blogspot.com/2008/12/python-gdal-set-jpeg-quality-values-and.html

撰写回答