参考:https://blog.csdn.net/zsc201825/article/details/89359995

以Landsat8某景影像为例:原图(底图)是假彩色的,上面单波段图像为裁剪的9景影像。

代码如下:


from osgeo import gdal
import math# 读取要裁剪的原始遥感影像
in_ds = gdal.Open("D:\ProfessionalProfile\DataRelevant\L134036_20170808.tif")
print("open tif file succeed")
width = in_ds.RasterXSize  # 获取数据宽度
height = in_ds.RasterYSize  # 获取数据高度
outbandsize = in_ds.RasterCount  # 获取数据波段数
# outbandsize = in_ds.GetRasterBand
im_geotrans = in_ds.GetGeoTransform()  # 获取仿射矩阵信息
im_proj = in_ds.GetProjection()  # 获取投影信息
datatype = in_ds.GetRasterBand(1).DataType
im_data = in_ds.ReadAsArray()  # 获取数据# 读取原图中的每个波段
for i in range(1,outbandsize+1):locals()['in_band' + str(i)] =in_ds.GetRasterBand(i)# 定义切图的起始点坐标,自己选定即可。
offset_x = 0
offset_y = 0# 定义切图的大小(矩形框)
block_xsize = 2000  # 行
block_ysize = 2000  # 列k = 0
# ‘//’: 除法结果向下取整;‘/’: 除法结果为浮点数。
for i in range( width // block_xsize):for j in range( height // block_xsize):# # 从每个波段中切需要的矩形框内的数据(注意读取的矩形框不能超过原图大小)for x in range(1, outbandsize + 1):locals()['out_band' + str(x)] = locals()['in_band'+str(x)].ReadAsArray(i * block_xsize, j * block_xsize, block_xsize, block_ysize)# print(out_band7)k += 1# 获取Tif的驱动,为创建切出来的图文件做准备gtif_driver = gdal.GetDriverByName("GTiff")# 创建切出来的要存的文件(3代表3个不都按,最后一个参数为数据类型,跟原文件一致)out_ds = gtif_driver.Create(str(k) + 'Clip.tif', block_xsize, block_ysize, outbandsize, datatype)print("create new tif file succeed")# 获取原图的原点坐标信息ori_transform = in_ds.GetGeoTransform()if ori_transform:print(ori_transform)print("Origin = ({}, {})".format(ori_transform[0], ori_transform[3]))print("Pixel Size = ({}, {})".format(ori_transform[1], ori_transform[5]))# 读取原图仿射变换参数值top_left_x = ori_transform[0]  # 左上角x坐标w_e_pixel_resolution = ori_transform[1]  # 东西方向像素分辨率top_left_y = ori_transform[3]  # 左上角y坐标n_s_pixel_resolution = ori_transform[5]  # 南北方向像素分辨率# 根据反射变换参数计算新图的原点坐标top_left_x = top_left_x + i * block_xsize * w_e_pixel_resolutiontop_left_y = top_left_y + j * block_xsize * n_s_pixel_resolution# 将计算后的值组装为一个元组,以方便设置dst_transform = (top_left_x, ori_transform[1], ori_transform[2], top_left_y, ori_transform[4], ori_transform[5])# 设置裁剪出来图的原点坐标out_ds.SetGeoTransform(dst_transform)# 设置SRS属性(投影信息)out_ds.SetProjection(in_ds.GetProjection())# # 写入目标文件for y in range(1, outbandsize + 1):out_ds.GetRasterBand(y).WriteArray( locals()['out_band' + str(y)] )# 将缓存写入磁盘out_ds.FlushCache()print("FlushCache succeed")# del out_dsprint("End!")

将一副遥感影像裁剪为多幅图像相关推荐

  1. Python遥感影像SAR分割裁剪多张小影像

    利用python,把SAR遥感影像裁剪分割多张小影像,tif分割png格式,分割后没有定位信息. import numpy as np from osgeo import gdal from osge ...

  2. 批量处理|基于ENVI的遥感影像批量裁剪工具

    遥感影像裁剪的目的是将研究之外的区域去除,常用的方法是按照行政区划边界或者自然区划边界进行影像裁剪,在基础数据生产中,还经常要进行标准分幅裁剪. ENVI软件支持规则裁剪(矩形范围)和不规则裁剪(任意 ...

  3. 利用ArcGIS Python批量拼接裁剪遥感影像(arcpy batch processing)

    本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪. 1.运行环境:ArcGIS10.1 (安装传送门).Python IDLE 2.数据来源:地理空 ...

  4. 遥感影像去背景 之 数据裁剪

    遥感影像去背景 之 数据裁剪 之前,在 ENVI 软件中做了处理以后,会出现背景颜色,影响了后续制图. 于是尝试了在 Arcgis 软件中把背景改为No date形式 但是感觉存在误差,需要的图像与背 ...

  5. python/gdal处理遥感影像(读取、投影转换、裁剪、建立图像金字塔等)

    python/gdal处理遥感影像(读取.投影转换.裁剪.建立图像金字塔等) gdal库简单介绍 python使用gdal 一.安装python环境 二.安装gdal库 三.使用gdal处理遥感影像 ...

  6. 【ENVI】遥感影像的导入与裁剪

    1. 流程图 2.导入 (1)通过MTL文本头文件导入.(这里以拖入法作为演示) ①选中并将头文件拖入ENVI中,结果如图所示. (3)通过分别导入Landsat8的第2-7波段,进行波段组合. ①点 ...

  7. 基于ArcGIS的遥感影像批量裁剪

    处理遥感影像的同学,尤其是长时间序列的遥感影像,经常需要对遥感影像,按某一区域进行批量的裁剪. 本文使用ArcGIS 自带的Python 函数,采用Shapefile 文件,对某一文件下所有的影像按照 ...

  8. AI解译遥感影像,商汤的“黑科技”了解一下

    6月14日-15日,中国空间信息产业最前沿.最权威的盛会"WGDC 2018地理信息开发者大会"在北京举行.全球领先的人工智能平台公司商汤科技SenseTime亮相大会,展示了前沿 ...

  9. arcgis 属性表 汇总_Arcgis中遥感影像地理配准、矢量化与地图制作

    目的: 将遥感图像进行地理配准.矢量化,并且制作地图. 要求: 对的遥感图像进行地理配准: 矢量化建筑物.绿地.道路.水体等主要地物要素: 对各类地物要素进行符号化设置并对其名称进行标注: 添加指北针 ...

  10. COG云原生优化遥感影像,瓦片切分的应用实践

    摘要:云上遥感影像文件Cloud optimized GeoTIFF(COG)格式的详细介绍,大量数据上云面临的挑战,并分享了获得云原生影像最佳性能的实践经验. 本文分享自华为云社区<COG云原 ...

最新文章

  1. @aspect注解类不生效_springboot:@Transactional注解 VS @Service注解
  2. 分享一些基于BCH开发的应用
  3. 成功解决ValueError: setting an array element with a sequence.
  4. unity 里调试native code
  5. mac mysql密码错误_解决mac 下mysql安装后root用户登录密码错误问题
  6. asp.net截取字符串方法
  7. selenium问题记录
  8. Kafka配置4--Windows下配置Kafka的SSL证书
  9. Python安装包时出现的问题及解决方案
  10. 移动通讯市场发展概况及预测
  11. 新概念英语第三册单词
  12. android 旋转木马菜单,AndroidCarrouselLayout
  13. linux内核audit,linux下的audit服务
  14. Gabor变换(2)
  15. Qt 多文本框设置行距和
  16. 微信小程序实现素材旋转——非canvas
  17. python爬去新浪微博_Python爬虫爬取新浪微博内容示例【基于代理IP】
  18. web安全所需过滤的特殊字符
  19. 如何防止SQL注入攻击?
  20. 工业互联网的关键技术:边缘计算与预测性维护结合

热门文章

  1. c语言getchar的作用,c=getchar()!='\n'到底什么用呢
  2. java sun包无法引用_关于java包的问题,自己创建一个包,里面放了源文件,却包外无法引用:具体见问题补充...
  3. (秒杀项目) 4.10 项目面试项目常见问题
  4. mysql存储脚本实例_Mysql存储过程中游标的用法实例
  5. c++如何实现对硬盘的操作_Python 小技巧:如何实现操作系统兼容性打包?
  6. mysql集群 自增_为什么我们要从MySQL迁移到TiDB?
  7. C++编写程序:输入三角形的三边,判断三角形的类型。
  8. 免安装mysql5.7.22_windows环境下安装MySQL5.7.22免安装版
  9. SpringBoot整合MyBatis后台分页前端BootstrapTable添加删除查看编辑搜索数据(二)
  10. 论文笔记_S2D.43_2018-CVPR_单张RGB-D图像的深度补全