java版GDAL学习之路—影像重采样

该博客详细介绍了如何利用GDAL库在Java中实现栅格影像的重采样过程。首先,通过GDAL加载原始栅格并获取其关键信息,包括投影、分辨率和仿射变换参数。然后,基于重采样因子创建新的栅格数据集,并设置相应的参数。最后,使用gdal.ReprojectImage()函数以三次样条插值法进行重采样,生成新的栅格文件。

整体思路

对栅格影像进行重采样用到的主要方法是gdal的内置方法gdal.ReprojectImage(),采样后的数据需要新生成一个栅格数据集进行保存
思路:

  1. 载入原始栅格,读取相关信息

    包括投影信息,仿射变换六参数,波段信息,数据类型,驱动名称,影像分辨率,影像宽、高等
    
  2. 新建输出栅格数据集

    根据获取到的原始栅格的相关信息,以及重采样的因子(采样前分辨率/采样后分辨率),新建一个栅格数据集。
    在这一步,需要先根据重采样的因子计算出重采样后的栅格的尺寸大小,再进行Creat
    Creat之后给新建的栅格数据设定投影信息和六参数信息,这里的六参数需要写入重采样后的分辨率
    
  3. 进行重采样

    gdal.ReprojectImage(dataset, outDataset, src_projection, dst_projection, gdalconstConstants.GRA_Cubic);
    dataset:输入数据集(要进行重采样的栅格)
    outDataset:输出数据集(重采样后的栅格)
    src_projection:源空间信息(输入数据集的空间信息)
    dst_projection:转换后的空间信息(如果只进行重采样,不进行重投影,则dst_projection=src_projection)
    gdalconstConstants.GRA_Cubic:重采样的方式(GRA_NearestNeighbour=0,GRA_Bilinear=1,GRA_Cubic=2,GRA_CubicSpline=3,GRA_Lanczos=4)
    

代码实现

/**
     * 图像重采样
     * @param inFilePath 输入栅格的路径
     * @param outFilePath 重采样后生成的栅格的路径
     * @param pixel 重采样的分辨率
     * @return
     */
    public static int resample(String inFilePath, String outFilePath,double pixel) {
   
   
        //载入原始栅格
        System.out.println("载入原始栅格");
        Dataset dataset = gdal.Open(inFilePath, gdalconstConstants.GA_ReadOnly);
        String projection = 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值