0


GDAL(Python version)jpg 转 geotiff

问题来源

工作中需求方提出将遥感瓦片图像拼接后转存为tiff图像。即,如何将jpg转为geotiff?作为小白的我开始了研究,以下文章中如有不对的地方,欢迎评论区进行批评指正。

创建文件

GDAL 中有两种方法创建文件,分别是CreateCopy() 和 Create()。从字面意思上理解,一个是从现有的数据源进行拷贝复制,另一个则是显式地写入元数据和栅格数据。需要注意的是,所有创建文件的的驱动程序都支持CreateCopy(),而只有少数驱动程序支持Create()。

CreateCopy()

该方法从现有源数据中拷贝信息。可以传递特定格式的创建选项,可以报告复制进度。

Python代码:

src_ds = gdal.Open(src_filename)
dst_ds = driver.CreateCopy(dst_filename, src_ds, strict=0)# Once we're done, close properly the dataset
dst_ds =None
src_ds =None

CreateCopy()方法返回一个可写的数据集,必须正确关闭它才能完成数据集的写入并将其刷新到磁盘。strict参数 表示是否严格执行拷贝,为0的时候表示不会出现致命错误。

更复杂的情况可能涉及传递创建选项和使用预定义的进度监视器

src_ds = gdal.Open(src_filename)
dst_ds = driver.CreateCopy(dst_filename, src_ds, strict=0,
                        options=["TILED=YES","COMPRESS=PACKBITS"])# Once we're done, close properly the dataset
dst_ds =None
src_ds =None

Create()

对于不只是从现有文件复制到新文件的情况,Create()方法采用与CreateCopy()类似的选项列表,但必须显式提供图像大小、带区数和带区类型。

dst_ds = driver.Create(dst_filename, xsize=512, ysize=512,
                    bands=1, eType=gdal.GDT_Byte)

这里的参数bands含义栅格图像Bands理解
成功创建数据集后,必须将所有适当的元数据和栅格数据写入文件,根据使用情况不同选择不同数据,以下是简单的一个例子。

from osgeo import osr
import numpy
dst_ds.SetGeoTransform([444720,30,0,3751320,0,-30])
srs = osr.SpatialReference()
srs.SetUTM(11,1)
srs.SetWellKnownGeogCS("NAD27")
dst_ds.SetProjection(srs.ExportToWkt())
raster = numpy.zeros((512,512), dtype=numpy.uint8)
dst_ds.GetRasterBand(1).WriteArray(raster)# Once we're done, close properly the dataset
dst_ds =None

主要

标签: python gdal

本文转载自: https://blog.csdn.net/guiyinan1994/article/details/116976709
版权归原作者 GIS不知道 所有, 如有侵权,请联系我们删除。

“GDAL(Python version)jpg 转 geotiff”的评论:

还没有评论