【GDAL-Python】5-在Python中使用GDAL将栅格数据分割成相等的部分

1-介绍

1.1 主要内容

(1)在本教程中,使用GDAL将栅格数据拆分为几个相等的部分

(2)拆分手段: gdal.Warp或者 gdal.Translate

(3)关键流程:
1)找出较小瓦片的xmin、ymin、xmax和ymax坐标,(这里是以xmin等指的是地理坐标范围
2) gdal.Warp或者 gdal.Translate进行裁剪

1.2 裁剪要点

(1)裁剪示意如下,主要找到每个小块的地理坐标范围xmin、ymin、xmax和ymax;
注意gt = dem.GetGeoTransform()中表示原始图像xmin = gt[0],ymax = gt[3],(ymin,xmin)是值的左上角坐标。
在这里插入图片描述
(2)gdal.Warp或者 gdal.Translate进行裁剪

  • gdal.Warp(“dem”+str(i)+str(j)+“.tif”, dem, outputBounds = (xmin, ymin, xmax, ymax), dstNodata = -9999)
  • gdal.Translate(“dem_translate”+str(i)+str(j)+“.tif”, dem, projWin = (xmin, ymax, xmax, ymin), xRes = res, yRes = -res)

2-代码实现

2.1 数据介绍

(1)原始数据信息:选用了1个波段的WordView3全色影像,影像分辨率为0.31米,影像元数据如下图:
在这里插入图片描述
(2)原始影像在QGIS显示效果:
在这里插入图片描述

2.2 代码实现

(1)计算裁剪分片
(2)进行裁剪

from osgeo import gdal

dem = gdal.Open(r"GDAL_testing_data\JAX_IMG1_PAN.TIF")
gt = dem.GetGeoTransform()

# ================================1.获取原始图像左上角的地理坐标===============================================
xmin = gt[0]+0*gt[1]+0*gt[2]#g[0-2]分别是x方向分辨率
ymin = gt[3]+0*gt[4]+0*gt[5]
res = gt[1]# 影像分辨率,注意x方向为正,y方向分辨率为负,但数值上x,y方向上一致


# ================================2.计算原始图像地理坐标范围长度和宽度========================================
xlen = res * dem.RasterXSize
ylen = res * dem.RasterYSize
print(f'xlen={
     
     xlen},ylen={
     
     ylen}')

# ================================3.设置x,y方向上的分块数=============================================
xdiv 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值