语言pyhton3.6

工具gdal 2.3.3

一.BIP BSQ BIL

BIP的存储格式为波段按像元交叉格式;BSQ的存储格式为波段顺序格式;BIL的存储格式为波段按行交叉格式。

内存(多用于读tif)和磁盘(多用于写tif)是如何存储的:多维向量最终存储在一块假设1~n...的空间

1 2 3 ... ... n ...

BIP是按像元保存,即先保存第一个波段的第一个像元,之后保存第二波段的第一个像元,依次保存;BSQ是按波段保存,也就是一个波段保存后接着保存第二个波段;BIL(band interleaved by line format)是按行保存,就是保存第一个波段的第一行后接着保存第二个波段的第一行,依次类推。

参考:https://www.cnblogs.com/gisyang/p/4650475.html

二.BIP、BSQ转换

方式1:借助gdal_translate工具。

srcpath = r"***"
despath = r"***"
#toBSQ
gdal.Translate(despath , srcpath , creationOptions=["INTERLEAVE=BAND"])#toBIP
gdal.Translate(despath , srcpath , creationOptions=["INTERLEAVE=PIXEL"])

方式2:利用gdal读入内存再通过create函数转换

# testdataset = gdal.Open(despath)
if dataset == None:print(despath + "文件无法打开")
im_width = dataset.RasterXSize  # 栅格矩阵的列数
im_height = dataset.RasterYSize  # 栅格矩阵的行数
im_bands = dataset.RasterCount  # 波段数
im_geotrans = dataset.GetGeoTransform()  # 获取仿射矩阵信息
im_pro = dataset.GetProjection()
im_data = dataset.ReadAsArray(0, 0, im_width, im_height)  # 获取数据
# band1 = dataset.GetRasterBand(1)
# band2 = dataset.GetRasterBand(2)
# band3 = dataset.GetRasterBand(3)
# band4 = dataset.GetRasterBand(4)
# im_data1 = band1.ReadAsArray(0, 0, im_width, im_height)  # 获取数据
# im_data2 = band2.ReadAsArray(0, 0, im_width, im_height)  # 获取数据
# im_data3 = band3.ReadAsArray(0, 0, im_width, im_height)  # 获取数据
# im_data4 = band4.ReadAsArray(0, 0, im_width, im_height)  # 获取数据driver = gdal.GetDriverByName("GTiff")
datatype = gdal.GDT_UInt16dataset = driver.Create(despath + "_combine.tif", im_width, im_height, im_bands, datatype,options=["INTERLEAVE=BAND"])
if (dataset != None and im_geotrans != None and im_pro != None):dataset.SetGeoTransform(im_geotrans)  # 写入仿射变换参数dataset.SetProjection(im_pro)  # 写入投影
for i in range(im_bands):dataset.GetRasterBand(i+1).WriteArray(im_data[i])
# dataset.GetRasterBand(1).WriteArray(im_data1)
# dataset.GetRasterBand(2).WriteArray(im_data2)
# dataset.GetRasterBand(3).WriteArray(im_data3)
# dataset.GetRasterBand(4).WriteArray(im_data4)
del dataset

gdal默认读写tif的数据格式均为BIP,但是也可以读取BSQ格式,二者结果相同。

参考https://blog.csdn.net/t46414704152abc/article/details/77482747

python使用gdal读写BIP、BSQ数据格式tif及相互转换相关推荐

  1. python使用gdal将shp文件转为TIF

    python使用gdal将shp文件转为TIF 方法一 # 缺少获取shp文件坐标系的步骤 def vector2raster(inputfilePath, outputfile, resp):sf ...

  2. python使用gdal读取tif经纬度

    python使用gdal读取tif经纬度 前言 一.tif是什么? 二.使用gdal读取经纬度 1.引入库 2.读取坐标 总结 前言 博主作为一个GIS开发者,开发过程中不免遇到一些处理tif的问题和 ...

  3. python不使用GDAL实现批量nc转tif

    python不使用GDAL实现批量nc转tif import xarray as xr import numpy as np import cartopy.crs as ccrs import rio ...

  4. python的gdal库说明_GDAL库学习笔记(一): GDAL库介绍

    可能你不玩GIS,不懂这个库到底有什么用,或者和python有什么关系.但是你要玩GIS,RS,你就应当知道这个库的价值.就算你不玩GIS,我想这个库对你也应该有致命的吸引力.为什么?看下面的介绍吧! ...

  5. gdal读写图像分块处理

    转自赵文原文 gdal读写图像分块处理(精华版) Review: 用gdal,感觉还不如直接用C++底层函数对遥感数据进行处理.因为gdal进行太多封装,如果你仅仅只是Geotif等格式进行处理,IO ...

  6. Python使用GDAL矢量裁剪栅格,设置背景值为空白(已解决)

    一.使用gdal.Warp gdalwarp 实用程序是一种图像拼接.重投影和扭曲实用程序.该程序可以重新投影到任何支持的投影.如果图像是带有控制信息的"原始"图像,也可以存储原始 ...

  7. 利用Python和GDAL把MODIS的HDF格式表观反射率产品MOD09A1转换为TIFF格式并重投影到与LANDSAT8-OLI一致

    解释 1.MOD09A1是表观反射率产品,是HDF格式并且投影和常用的Landsat数据不一致.为了统一反演时使用,想要将该产品转换为TIFF格式并重投影.特别是要批量的进行转换和重投影. 2.采用P ...

  8. python txt文件读写(追加、覆盖)

    python txt文件读写(追加.覆盖) 读取文件每一行 # 读取文件每一行 with open(r"C:\Users\xiahuadong\Desktop\数字人代码\文件行数.txt& ...

  9. python安装gdal包_python安装gdal的两种方法

    1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件  链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...

  10. 以下不是python文件读写方法的是-使用Python进行二进制文件读写的简单方法(推荐)...

    总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块. python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据 ...

最新文章

  1. 【技术贴】虚拟机 VMware win7 win8网卡驱动下载 解决虚拟机不识别网卡没有本地连接...
  2. js面试必考:this
  3. ubuntu下 mysql数据 自执行备份
  4. Hibernate学习4—关联关系一对多映射2
  5. 进程间通信--命名管道(fifo)
  6. 了不起!靠技术脱贫,他们只用了短短两年!
  7. 剑指offer——面试题59:对称的二叉树
  8. java swing入门教程_java swing基础(菜鸟教程学习)
  9. Java之spring新手教程(包教包会)
  10. Livereload介绍
  11. h3c无线认证服务器,H3C无线路由器配置样例之无认证接入
  12. N 个Android 视频教程免费下载
  13. 给已经创建的容器暴漏端口 添加新的端口
  14. 人工智能学期心得体会
  15. 超级计算机在海洋信息系统中应用
  16. Java的GUI编程---Swing介绍
  17. sourcetree怎么搜索_sourceTree的使用
  18. 千锋云计算毕业设计论文:论文选题开题报告二
  19. 增值税发票二维码协议
  20. 井下人员定位系统建立数字化矿山

热门文章

  1. SPSS提示“列表中不允许存在字符串变量”的解决方法
  2. 电脑显示屏字体发虚、重影、部分清晰部分不清晰解决办法
  3. dreamweaver html模版,dw网页设计模板
  4. 华师大计算机在线测试,华东师大:180道心理测试题面试免费师范生
  5. python 用泽勒算法计算该天是星期几
  6. 前端应届简历应该怎么写?
  7. 【JZOJ5336】【NOIP2017提高A组模拟8.24】提米树
  8. linux三星电脑开机怎么进入页面,三星Samsung笔记本怎么开机进入BIOS
  9. 后台任务列表 App 界面模糊处理
  10. c语言写流水灯程序,用汇编和C语言 写流水灯程序