遥感影响行列数不一致问题

两幅影像,若是行列数不一致,先将两幅影像进行重采样,使分辨率相同,然后找出两幅影像中行列数较少的那幅,以此为标准,对另一幅影像进行规则裁剪,详细步骤如下:

1    打开影像

2     影像另存为 ENVI Standard,在New File Builder对话框中,选中Select input file列表中的裁剪影像,单击Spatial Subset,

        在这个对话框中,单击img按钮,弹出subset by img对话框,设定与行列数较少那幅一样的行列数,单击ok即可。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python的GDAL库来实现这个目标。以下是一个示例代码,可以将一个tif格式的遥感影像行列变为1024x1024: ```python from osgeo import gdal # 打开遥感影像 ds = gdal.Open('your_image.tif') # 获取遥感影像的行列和波段 rows = ds.RasterYSize cols = ds.RasterXSize bands = ds.RasterCount # 获取遥感影像的投影和地理变换信息 proj = ds.GetProjection() trans = ds.GetGeoTransform() # 计算每个像素的大小 pixel_size_x = abs(trans[1]) pixel_size_y = abs(trans[5]) # 计算新的列和行 new_cols = 1024 new_rows = 1024 # 计算新的地理变换信息 new_trans = (trans[0], pixel_size_x, trans[2], trans[3], -pixel_size_y, trans[5]) # 创建输出遥感影像 driver = gdal.GetDriverByName('GTiff') out_ds = driver.Create('your_output_image.tif', new_cols, new_rows, bands, gdal.GDT_Float32) # 设置输出遥感影像的投影和地理变换信息 out_ds.SetProjection(proj) out_ds.SetGeoTransform(new_trans) # 读取每个波段的据,并将影像的行列变为1024x1024 for b in range(bands): band = ds.GetRasterBand(b+1) data = band.ReadAsArray(0, 0, cols, rows) new_data = gdal_array.numpy_array(data).astype('float32') new_data = gdal_array.numpy_array(gdal_array.DatasetCopy(src_ds).ReadAsArray(0, 0, new_cols, new_rows)).astype('float32') out_band = out_ds.GetRasterBand(b+1) out_band.WriteArray(new_data) # 关闭据集 ds = None out_ds = None ``` 这个示例代码将遥感影像的行列都变为1024x1024。新的列和行可以根据你的需要进行修改。注意,如果新的列和行与原始影像的宽高比例不同,会导致影像的形状发生变化。如果你需要保持影像的形状不变,需要根据新的列和行计算每个像素的大小,并计算新的地理变换信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值